Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/LBoards/LButton.txt
1319 views
1
//--------------Sonic CD Leaderboards Button Script-----------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
//------------------Only exist in WP7 Versions----------------//
5
6
// Aliases
7
#alias Object.Value1 : Object.ButtonPressed
8
9
// LEntry Aliases
10
#alias Object[32].State : LEntry.State
11
12
// MenuControl Aliases
13
#alias Object[0].State : MenuControl.State
14
15
// LEntry States
16
#alias 1 : LENTRY_MOVE_RIGHT
17
#alias 4 : LENTRY_MOVE_LEFT
18
#alias 7 : LENTRY_MOVE_DOWN
19
#alias 10 : LENTRY_MOVE_UP
20
21
// MenuControl States
22
#alias 2 : MENUCONTROL_CONTROLS
23
#alias 3 : MENUCONTROL_BLANK
24
#alias 4 : MENUCONTROL_EXIT
25
26
// Global SFX
27
#alias 23 : SFX_G_MENUBUTTON
28
#alias 27 : SFX_G_SELECT
29
30
// Property Values
31
#alias 0 : BUTTON_EXIT
32
#alias 1 : BUTTON_ARROW_UP
33
#alias 2 : BUTTON_ARROW_DOWN
34
#alias 3 : BUTTON_ARROW_LEFT
35
#alias 4 : BUTTON_ARROW_RIGHT
36
37
//Engine & CallBacks
38
#alias 2 : MESSAGE_LOSTFOCUS
39
40
41
sub ObjectMain
42
if Engine.Message == MESSAGE_LOSTFOCUS
43
Object.ButtonPressed = 0
44
end if
45
46
TempValue0 = Object.XPos
47
TempValue0 >>= 16
48
49
TempValue1 = TempValue0
50
51
TempValue2 = Object.YPos
52
TempValue2 >>= 16
53
54
TempValue3 = TempValue2
55
switch Object.PropertyValue
56
case BUTTON_EXIT
57
TempValue1 += 64
58
TempValue2 -= 8
59
TempValue3 += 24
60
break
61
62
case BUTTON_ARROW_UP
63
TempValue1 += 48
64
TempValue2 -= 8
65
TempValue3 += 24
66
break
67
68
case BUTTON_ARROW_DOWN
69
TempValue1 += 48
70
TempValue2 -= 8
71
TempValue3 += 24
72
break
73
74
case BUTTON_ARROW_LEFT
75
TempValue0 -= 8
76
TempValue1 += 32
77
TempValue2 -= 8
78
TempValue3 += 40
79
break
80
81
case BUTTON_ARROW_RIGHT
82
TempValue0 -= 8
83
TempValue1 += 32
84
TempValue2 -= 8
85
TempValue3 += 40
86
break
87
88
end switch
89
if MenuControl.State == MENUCONTROL_CONTROLS
90
CheckTouchRect(TempValue0, TempValue2, TempValue1, TempValue3)
91
else
92
CheckResult = -1
93
end if
94
if CheckResult > -1
95
Object.ButtonPressed = 1
96
else
97
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
98
if CheckResult < 0
99
if Object.ButtonPressed == 1
100
switch Object.PropertyValue
101
case BUTTON_EXIT
102
MenuControl.State = MENUCONTROL_EXIT
103
StopMusic()
104
PlaySfx(SFX_G_SELECT, false)
105
break
106
107
case BUTTON_ARROW_UP
108
MenuControl.State = MENUCONTROL_BLANK
109
LEntry.State = LENTRY_MOVE_UP
110
PlaySfx(SFX_G_MENUBUTTON, false)
111
break
112
113
case BUTTON_ARROW_DOWN
114
MenuControl.State = MENUCONTROL_BLANK
115
LEntry.State = LENTRY_MOVE_DOWN
116
PlaySfx(SFX_G_MENUBUTTON, false)
117
break
118
119
case BUTTON_ARROW_LEFT
120
MenuControl.State = MENUCONTROL_BLANK
121
LEntry.State = LENTRY_MOVE_LEFT
122
PlaySfx(SFX_G_MENUBUTTON, false)
123
break
124
125
case BUTTON_ARROW_RIGHT
126
MenuControl.State = MENUCONTROL_BLANK
127
LEntry.State = LENTRY_MOVE_RIGHT
128
PlaySfx(SFX_G_MENUBUTTON, false)
129
break
130
131
end switch
132
Object.ButtonPressed = 0
133
end if
134
else
135
Object.ButtonPressed = 0
136
end if
137
end if
138
end sub
139
140
141
sub ObjectDraw
142
TempValue0 = Object.PropertyValue
143
TempValue0 <<= 1
144
TempValue0 += Object.ButtonPressed
145
DrawSprite(TempValue0)
146
end sub
147
148
149
sub ObjectStartup
150
LoadSpriteSheet("LBoards/Leaderboards.gif")
151
152
SpriteFrame(0, 0, 64, 20, 135, 34) // #0 - Exit
153
SpriteFrame(0, 0, 64, 20, 135, 55) // #1 - Exit Highlight
154
SpriteFrame(0, 0, 48, 20, 200, 34) // #2 - Up Arrow
155
SpriteFrame(0, 0, 48, 20, 200, 55) // #3 - Up Arrow Highlight
156
SpriteFrame(0, 0, 48, 20, 249, 34) // #4 - Down Arrow
157
SpriteFrame(0, 0, 48, 20, 249, 55) // #5 - Down Arrow Highlight
158
SpriteFrame(0, 0, 24, 32, 223, 92) // #6 - Left Arrow
159
SpriteFrame(0, 0, 24, 32, 248, 92) // #7 - Left Arrow Highlight
160
SpriteFrame(0, 0, 24, 32, 273, 92) // #8 - Right Arrow
161
SpriteFrame(0, 0, 24, 32, 298, 92) // #9 - Right Arrow Highlight
162
end sub
163
164
165
// ========================
166
// Editor Subs
167
// ========================
168
169
sub RSDKEdit
170
if Editor.ReturnVariable == true
171
switch Editor.VariableID
172
case EDIT_VAR_PROPVAL // Property Value
173
CheckResult = Object.PropertyValue
174
break
175
case 0 // buttonType
176
CheckResult = Object.PropertyValue
177
break
178
end switch
179
else
180
switch Editor.VariableID
181
case EDIT_VAR_PROPVAL // Property Value
182
Object.PropertyValue = Editor.VariableValue
183
break
184
case 0 // buttonType
185
Object.PropertyValue = Editor.VariableValue
186
break
187
end switch
188
end if
189
end sub
190
191
sub RSDKDraw
192
DrawSprite(Object.PropertyValue)
193
end sub
194
195
196
sub RSDKLoad
197
LoadSpriteSheet("LBoards/Leaderboards.gif")
198
199
SpriteFrame(0, 0, 64, 20, 135, 34) // #0 - Exit
200
SpriteFrame(0, 0, 48, 20, 200, 34) // #2 - Up Arrow
201
SpriteFrame(0, 0, 48, 20, 249, 34) // #4 - Down Arrow
202
SpriteFrame(0, 0, 24, 32, 223, 92) // #6 - Left Arrow
203
SpriteFrame(0, 0, 24, 32, 273, 92) // #8 - Right Arrow
204
205
AddEditorVariable("buttonType")
206
SetActiveVariable("buttonType")
207
AddEnumVariable("Exit Button", 0)
208
AddEnumVariable("Up Arrow", 1)
209
AddEnumVariable("Down Arrow", 2)
210
AddEnumVariable("Left Arrow", 3)
211
AddEnumVariable("Right Arrow", 4)
212
end sub
213
214