Skip to content

Commit ec56b27

Browse files
committed
switched STATIC subs to use STATIC variables
this should help with using vWatch, but i'm not sure. i havent had alot of luck with vWatch in general...
1 parent 191dd17 commit ec56b27

File tree

2 files changed

+95
-60
lines changed

2 files changed

+95
-60
lines changed

global.bh

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Dim __image_ScreenBuffer As Long
5959
Dim __image_Cursor As Long
6060

6161
Dim __param_ScreenFont As Long
62-
Dim __param_TBHeight As Unsigned Integer
62+
Dim __param_TBHeight As Unsigned Byte
6363

6464
Dim Shared __inKey As String
6565
Dim Shared __focusedWindow As Integer

wm.bas

+94-59
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Dim win_Launcher
1010
Dim win_Other As Integer
1111
1212
win_Img_Image = LoadImage("images/image.jpg", 32)
13-
SetAlpha 200, , win_Img_Image
13+
'SetAlpha 250, , win_Img_Image
1414
1515
temp = __template_Win
1616
temp.IH = NewImage(temp.W, temp.H, 32)
@@ -71,65 +71,82 @@ Do
7171
If (w(win).NeedsRefresh <> 0) Or (w(win_Launcher).Z = 0) Then
7272
resizeWin win
7373
Dest w(win).IH
74-
Line (0, 0)-Step(100, 16), RGBA32(64, 64, 64, 200), BF
75-
Line (0, 20)-Step(100, 16), RGBA32(64, 64, 64, 200), BF
76-
Line (0, 40)-Step(100, 16), RGBA32(64, 64, 64, 200), BF
77-
Line (0, 60)-Step(100, 16), RGBA32(64, 64, 64, 200), BF
74+
Line (0, 0)-Step(100, 16), &H404040C8, BF
75+
Line (0, 20)-Step(100, 16), &H404040C8, BF
76+
Line (0, 40)-Step(100, 16), &H404040C8, BF
77+
Line (0, 60)-Step(100, 16), &H404040C8, BF
7878
If win_Log Then PrintString (2, 2), "Close log" Else PrintString (2, 2), "Open log"
7979
If win_Cat Then PrintString (2, 22), "Close text editor" Else PrintString (2, 22), "Open text editor"
8080
If win_Img Then PrintString (2, 42), "Close image" Else PrintString (2, 42), "Open image"
8181
If win_Other Then PrintString (2, 62), "Close debug" Else PrintString (2, 62), "Open debug"
8282
End If
83+
8384
If w(win_Launcher).Z = 0 Then
84-
If MouseButton(1) And ((w(win).MX < 100) And (w(win).MX > 0)) Then
85+
If ((w(win).MX < 100) And (w(win).MX > 0)) Then
8586
w(win).NeedsRefresh = True
8687
Select Case w(win).MY
8788
Case 0 TO 16
88-
If win_Log Then
89-
freeWin win_Log
90-
win_Log = 0
89+
If MouseButton(1) Then
90+
If win_Log Then
91+
freeWin win_Log
92+
win_Log = 0
93+
Else
94+
temp = __template_Win
95+
temp.X = 50
96+
temp.IH = NewImage(320, 240, 32)
97+
temp.T = "Log"
98+
temp.FH = __font_Mono
99+
win_Log = newWin(temp)
100+
End If
91101
Else
92-
temp = __template_Win
93-
temp.X = 50
94-
temp.IH = NewImage(320, 240, 32)
95-
temp.T = "Log"
96-
temp.FH = __font_Mono
97-
win_Log = newWin(temp)
102+
Line (0, 0)-(100, 16), &H66666666, BF
98103
End If
99104
100105
Case 20 TO 36
101-
If win_Cat Then
102-
freeWin win_Cat
103-
win_Cat = 0
106+
If MouseButton(1) Then
107+
If win_Cat Then
108+
freeWin win_Cat
109+
win_Cat = 0
110+
Else
111+
temp = __template_Win
112+
temp.X = 200
113+
temp.IH = NewImage(320, 240, 32)
114+
temp.T = "Text editor"
115+
temp.FH = __font_Sans
116+
win_Cat = newWin(temp)
117+
End If
104118
Else
105-
temp = __template_Win
106-
temp.X = 200
107-
temp.IH = NewImage(320, 240, 32)
108-
temp.T = "Text editor"
109-
temp.FH = __font_Sans
110-
win_Cat = newWin(temp)
119+
Line (0, 20)-(100, 36), &H66666666, BF
111120
End If
112121
113122
Case 40 TO 56
114-
If win_Img Then
115-
freeWin win_Img
116-
win_Img = 0
123+
If MouseButton(1) Then
124+
If win_Img Then
125+
freeWin win_Img
126+
win_Img = 0
127+
Else
128+
temp = __template_Win
129+
temp.IH = NewImage(temp.W, temp.H, 32)
130+
temp.T = "Image"
131+
win_Img = newWin(temp)
132+
End If
117133
Else
118-
temp = __template_Win
119-
temp.IH = NewImage(temp.W, temp.H, 32)
120-
temp.T = "Image"
121-
win_Img = newWin(temp)
134+
Line (0, 40)-(100, 56), &H66666666, BF
122135
End If
123136
124137
Case 60 TO 76
125-
If win_Other Then
126-
freeWin win_Other
127-
win_Other = 0
138+
If MouseButton(1) Then
139+
If win_Other Then
140+
freeWin win_Other
141+
win_Other = 0
142+
Else
143+
temp = __template_Win
144+
temp.IH = NewImage(temp.W, temp.H, 32)
145+
temp.FH = __font_Mono
146+
win_Other = newWin(temp)
147+
End If
128148
Else
129-
temp = __template_Win
130-
temp.IH = NewImage(temp.W, temp.H, 32)
131-
temp.FH = __font_Mono
132-
win_Other = newWin(temp)
149+
Line (0, 60)-(100, 76), &H66666666, BF
133150
End If
134151
End Select
135152
End If
@@ -148,6 +165,7 @@ Do
148165
149166
'Window title
150167
w(win).T = "Window " + LTrim$(Str$(win)) + " (" + LTrim$(Str$(w(win).X)) + "," + LTrim$(Str$(w(win).Y)) + ")-(" + LTrim$(Str$(w(win).W + w(win).X)) + "," + LTrim$(Str$(w(win).H + w(win).Y)) + ")"
168+
151169
End Select
152170
Next
153171
upd
@@ -227,7 +245,7 @@ $Checking:On
227245
$Checking:Off
228246
$If LIGHT = TRUE Then
229247
Sub putWin (w As winType)
230-
Shared __param_TBHeight As Unsigned Integer
248+
Shared __param_TBHeight As Unsigned byte
231249
232250
If w.IH = 0 Then Exit Sub 'Make sure the handle isn't invalid to prevent Illegal Function Call errors!
233251
_DontBlend
@@ -243,7 +261,7 @@ $If LIGHT = TRUE Then
243261
End Sub
244262
$Else
245263
Sub putWin (w As winType)
246-
Shared __param_TBHeight As Unsigned Integer
264+
Shared __param_TBHeight As Unsigned Byte
247265
248266
'For speed
249267
Rem RGBA32(0, 0, 0, 10) = &H0A000000
@@ -267,19 +285,26 @@ $Else
267285
268286
If w.Z Then Line (w.X, w.Y)-Step(w.W + 2, w.H + __param_TBHeight + 1), &H40000000, BF 'Dark overlay if not focused
269287
End Sub
288+
289+
Sub putOverlay (w As winType)
290+
Shared __param_TBHeight As Unsigned Byte
291+
Line (w.X, w.Y)-Step(w.W, w.H), &HFF000000, B
292+
PutImage (w.X + 1, w.Y + 1), w.IH
293+
End Sub
270294
$End If
271295
$Checking:On
272296
273297
274298
$Checking:Off
275-
Sub upd Static
299+
Sub upd
276300
Shared w() As winType
277301
Shared winZOrder() As Byte
278302
Shared __image_Background As Long
279303
Shared __image_Screen As Long
280304
Shared __image_ScreenBuffer As Long
281305
Shared __image_Cursor As Long
282306
Shared __param_ScreenFont As Long
307+
'Shared __inKey$
283308
284309
__inKey$ = InKey$
285310
@@ -325,7 +350,7 @@ Sub upd Static
325350
Dim i As Integer
326351
For i = UBound(winZOrder) To LBound(winZOrder) Step -1
327352
If winZOrder(i) <> 0 Then
328-
putWin w(winZOrder(i))
353+
If w(winZOrder(i)).T = "" Then putOverlay w(winZOrder(i)) Else putWin w(winZOrder(i))
329354
End If
330355
Next
331356
@@ -373,11 +398,13 @@ End Function
373398
374399
375400
'$Checking:Off
376-
Sub logP (s As String) Static
401+
Sub logP (s As String)
377402
Shared w() As winType
378403
Shared win_Log As Integer
379404
380-
Dim i As Long, l As String
405+
Static l As String
406+
407+
Dim i As Long
381408
i = Dest
382409
383410
If s <> "" Then l = l + s + " " + Chr$(13) + " "
@@ -394,8 +421,8 @@ End Sub
394421
395422
396423
397-
Function fps% Static
398-
Dim t As Double
424+
Function fps%
425+
Static t As Double
399426
Dim t2 As Double
400427
401428
t2 = Timer(0.0001)
@@ -419,26 +446,29 @@ End Sub
419446
420447
421448
$Checking:Off
422-
Sub updateMouse Static
449+
Sub updateMouse
423450
Shared w() As winType
424451
Shared winZOrder() As Byte
425-
Shared __param_TBHeight As Unsigned Integer
452+
Shared __param_TBHeight As Unsigned Byte
426453
427454
428-
Dim optMenu As Integer, optWin As Integer
429-
Dim mLockX As Single, mLockY As Single 'Or as I like to call it, mmmlocks and mmmlockie
430-
Dim mouseLatch As Bit
455+
Static optMenu As Integer, optWin As Integer
456+
Static mLockX As Single, mLockY As Single 'Or as I like to call it, mmmlocks and mmmlockie
457+
Static mouseLatch As Bit
431458
432459
Dim win As Integer, i As Integer
433460
For win = LBound(winZOrder) To UBound(winZOrder)
434461
i = winZOrder(win)
435462
436463
If i = 0 Then Continue
437464
438-
w(i).MX = MouseX - (w(i).X + 1)
439-
w(i).MY = MouseY - (w(i).Y + __param_TBHeight + 1)
440-
441-
If w(i).T = "" Then Continue
465+
If w(i).T = "" Then
466+
w(i).MX = MouseX - (w(i).X + 1)
467+
w(i).MY = MouseY - (w(i).Y + 1)
468+
Else
469+
w(i).MX = MouseX - (w(i).X + 1)
470+
w(i).MY = MouseY - (w(i).Y + __param_TBHeight + 1)
471+
End If
442472
443473
If mouseIsOver(i) Then
444474
@@ -493,10 +523,15 @@ Sub updateMouse Static
493523
ElseIf MouseButton(2) Then 'Resize (Right click)
494524
w(__focusedWindow).W = w(__focusedWindow).W + (MouseX - mLockX)
495525
w(__focusedWindow).H = w(__focusedWindow).H + (MouseY - mLockY)
496-
497-
ElseIf (w(__focusedWindow).W <> _Width(w(__focusedWindow).IH)) Or (w(__focusedWindow).H <> _Height(w(__focusedWindow).IH)) Then
498-
w(__focusedWindow).NeedsRefresh = True
499-
Else
526+
$If LIGHT = FALSE Then
527+
w(__focusedWindow).NeedsRefresh = True
528+
$End If
529+
530+
$If LIGHT = TRUE Then
531+
ElseIf (w(__focusedWindow).W <> _Width(w(__focusedWindow).IH)) Or (w(__focusedWindow).H <> _Height(w(__focusedWindow).IH)) Then
532+
w(__focusedWindow).NeedsRefresh = True
533+
$End If
534+
'Else
500535
'w(__focusedWindow).NeedsRefresh = False
501536
502537
End If: End If

0 commit comments

Comments
 (0)