Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/TAttack/LargeIcon.txt
1319 views
1
//-----------------Sonic CD Large Icon Script-----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.PropertyValue : Object.Portrait
7
8
// MenuControl Aliases
9
#alias Object[0].Value0 : MenuControl.Timer
10
#alias Object[0].Value5 : MenuControl.SMCurrentButton
11
#alias Object[0].State : MenuControl.State
12
13
// States
14
#alias 0 : LARGEICON_BLANK
15
#alias 1 : LARGEICON_ENTER_SCREEN
16
#alias 2 : LARGEICON_LEAVE_SCREEN
17
18
// Menu Control States
19
// *SM = Sub Menu
20
#alias 7 : MENUCONTROL_SM_CONTROLS
21
#alias 10 : MENUCONTROL_SM_CONFIRMED
22
#alias 11 : MENUCONTROL_SM_LOAD_LEVEL
23
#alias 13 : MENUCONTROL_SM_COMFIRMED_LEAVE
24
25
// Property Values
26
#alias 0 : PALMTREE_PANIC_LARGE_LARGE_ICON
27
#alias 1 : COLLISION_CHAOS_LARGE_ICON
28
#alias 2 : TIDAL_TEMPEST_LARGE_ICON
29
#alias 3 : QUARTZ_QUADRANT_LARGE_ICON
30
#alias 4 : WACKY_WORKBENCH_LARGE_ICON
31
#alias 5 : STARDUST_SPEEDWAY_LARGE_ICON
32
#alias 6 : METALLIC_MADNESS_LARGE_ICON
33
34
35
sub ObjectMain
36
switch Object.State
37
case LARGEICON_BLANK
38
break
39
case LARGEICON_ENTER_SCREEN
40
TempValue0 = Screen.CenterX
41
TempValue0 -= 72
42
TempValue0 <<= 16
43
if Object.XPos < TempValue0
44
Object.XPos += 0x100000
45
if Object.XPos > TempValue0
46
Object.XPos = TempValue0
47
end if
48
else
49
Object.State = LARGEICON_BLANK
50
end if
51
break
52
53
case LARGEICON_LEAVE_SCREEN
54
if Object.XPos > -0x480000
55
Object.XPos -= 0x100000
56
if Object.XPos < -0x480000
57
Object.XPos = -0x480000
58
end if
59
else
60
Object.State = LARGEICON_BLANK
61
end if
62
break
63
64
end switch
65
end sub
66
67
68
sub ObjectDraw
69
DrawSprite(15)
70
DrawSprite(Object.Portrait)
71
TempValue0 = Screen.CenterX
72
TempValue0 -= 72
73
TempValue0 <<= 16
74
TempValue0 -= Object.XPos
75
TempValue0 >>= 16
76
TempValue0 += Screen.CenterX
77
TempValue0 += 20
78
TempValue1 = TempValue0
79
TempValue1 += 68
80
81
#platform: Mobile
82
switch MenuControl.State
83
default
84
DrawSprite(16)
85
DrawSpriteScreenXY(18, TempValue0, 11)
86
DrawSpriteScreenXY(20, TempValue1, 11)
87
break
88
89
case MENUCONTROL_SM_CONTROLS
90
switch MenuControl.SMCurrentButton
91
default
92
DrawSprite(16)
93
DrawSpriteScreenXY(18, TempValue0, 11)
94
DrawSpriteScreenXY(20, TempValue1, 11)
95
break
96
97
case 0
98
DrawSprite(17)
99
DrawSpriteScreenXY(18, TempValue0, 11)
100
DrawSpriteScreenXY(20, TempValue1, 11)
101
break
102
103
case 1
104
DrawSprite(16)
105
DrawSpriteScreenXY(19, TempValue0, 11)
106
DrawSpriteScreenXY(20, TempValue1, 11)
107
break
108
109
case 2
110
DrawSprite(16)
111
DrawSpriteScreenXY(18, TempValue0, 11)
112
DrawSpriteScreenXY(21, TempValue1, 11)
113
break
114
115
end switch
116
break
117
118
case MENUCONTROL_SM_CONFIRMED
119
TempValue2 = MenuControl.Timer
120
TempValue2 &= 3
121
TempValue2 >>= 1
122
if TempValue2 == 0
123
DrawSpriteScreenXY(21, TempValue1, 11)
124
else
125
DrawSpriteScreenXY(20, TempValue1, 11)
126
end if
127
DrawSprite(16)
128
DrawSpriteScreenXY(18, TempValue0, 11)
129
break
130
131
case MENUCONTROL_SM_LOAD_LEVEL
132
DrawSprite(16)
133
DrawSpriteScreenXY(18, TempValue0, 11)
134
DrawSpriteScreenXY(21, TempValue1, 11)
135
break
136
137
case MENUCONTROL_SM_COMFIRMED_LEAVE
138
TempValue2 = MenuControl.Timer
139
TempValue2 &= 3
140
TempValue2 >>= 1
141
if TempValue2 == 0
142
DrawSprite(17)
143
else
144
DrawSprite(16)
145
end if
146
DrawSpriteScreenXY(18, TempValue0, 11)
147
DrawSpriteScreenXY(20, TempValue1, 11)
148
break
149
150
end switch
151
#endplatform
152
end sub
153
154
155
sub ObjectStartup
156
LoadSpriteSheet("TAttack/TimeAttack.gif")
157
158
SpriteFrame(-64, -72, 128, 144, 0, 0) // #0 - Palmtree Panic Icon
159
SpriteFrame(-64, -72, 128, 144, 256, 0) // #1 - Collision Chaos Icon
160
SpriteFrame(-64, -72, 128, 144, 384, 0) // #2 - Tidal Tempest Icon
161
SpriteFrame(-64, -72, 128, 144, 0, 144) // #3 - Quartz Quadrant Icon
162
SpriteFrame(-64, -72, 128, 144, 128, 144) // #4 - Wacky Workbench Icon
163
SpriteFrame(-64, -72, 128, 144, 256, 144) // #5 - Stardust Speedway Icon
164
SpriteFrame(-64, -72, 128, 144, 384, 144) // #6 - Metallic Madnes Icon
165
SpriteFrame(-64, -72, 128, 144, 0, 288) // #7 - Special Stage 1 Icon (Unused)
166
SpriteFrame(-64, -72, 128, 144, 128, 288) // #8 - Special Stage 2 Icon (Unused)
167
SpriteFrame(-64, -72, 128, 144, 256, 288) // #9 - Special Stage 3 Icon (Unused)
168
SpriteFrame(-64, -72, 128, 144, 384, 288) // #10 - Special Stage 4 Icon (Unused)
169
SpriteFrame(-64, -72, 128, 144, 0, 432) // #11 - Special Stage 5 Icon (Unused)
170
SpriteFrame(-64, -72, 128, 144, 128, 432) // #12 - Special Stage 6 Icon (Unused)
171
SpriteFrame(-64, -72, 128, 144, 256, 432) // #13 - Special Stage 7 Icon (Unused)
172
SpriteFrame(-64, -72, 128, 144, 384, 432) // #14 - Sonic The Hedgehog CD (Unused)
173
SpriteFrame(-67, -75, 134, 150, 306, 873) // #15 - Icon Border
174
SpriteFrame(-67, -95, 64, 20, 280, 680) // #16 - Exit
175
SpriteFrame(-67, -95, 64, 20, 135, 617) // #17 - Exit Highlight
176
SpriteFrame(0, 0, 64, 20, 280, 659) // #18 - Next
177
SpriteFrame(0, 0, 64, 20, 200, 617) // #19 - Next Highlight
178
SpriteFrame(0, 0, 64, 20, 345, 659) // #20 - Go
179
SpriteFrame(0, 0, 64, 20, 265, 617) // #21 - Go Highlight
180
end sub
181
182
183
// ========================
184
// Editor Subs
185
// ========================
186
187
sub RSDKEdit
188
if Editor.ReturnVariable == true
189
switch Editor.VariableID
190
case EDIT_VAR_PROPVAL // Property Value
191
CheckResult = Object.PropertyValue
192
break
193
case 0 // frame
194
CheckResult = Object.PropertyValue
195
break
196
end switch
197
else
198
switch Editor.VariableID
199
case EDIT_VAR_PROPVAL // Property Value
200
Object.PropertyValue = Editor.VariableValue
201
break
202
case 0 // frame
203
Object.PropertyValue = Editor.VariableValue
204
break
205
end switch
206
end if
207
end sub
208
209
210
sub RSDKDraw
211
DrawSprite(15)
212
DrawSprite(Object.PropertyValue)
213
end sub
214
215
216
sub RSDKLoad
217
LoadSpriteSheet("TAttack/TimeAttack.gif")
218
SpriteFrame(-64, -72, 128, 144, 0, 0) // #0 - Palmtree Panic Icon
219
SpriteFrame(-64, -72, 128, 144, 256, 0) // #1 - Collision Chaos Icon
220
SpriteFrame(-64, -72, 128, 144, 384, 0) // #2 - Tidal Tempest Icon
221
SpriteFrame(-64, -72, 128, 144, 0, 144) // #3 - Quartz Quadrant Icon
222
SpriteFrame(-64, -72, 128, 144, 128, 144) // #4 - Wacky Workbench Icon
223
SpriteFrame(-64, -72, 128, 144, 256, 144) // #5 - Stardust Speedway Icon
224
SpriteFrame(-64, -72, 128, 144, 384, 144) // #6 - Metallic Madnes Icon
225
SpriteFrame(-64, -72, 128, 144, 0, 288) // #7 - Special Zone 1 Icon (Unused)
226
SpriteFrame(-64, -72, 128, 144, 128, 288) // #8 - Special Zone 2 Icon (Unused)
227
SpriteFrame(-64, -72, 128, 144, 256, 288) // #9 - Special Zone 3 Icon (Unused)
228
SpriteFrame(-64, -72, 128, 144, 384, 288) // #10 - Special Zone 4 Icon (Unused)
229
SpriteFrame(-64, -72, 128, 144, 0, 432) // #11 - Special Zone 5 Icon (Unused)
230
SpriteFrame(-64, -72, 128, 144, 128, 432) // #12 - Special Zone 6 Icon (Unused)
231
SpriteFrame(-64, -72, 128, 144, 256, 432) // #13 - Special Zone 7 Icon (Unused)
232
SpriteFrame(-64, -72, 128, 144, 384, 432) // #14 - Sonic The Hedgehog CD (Unused)
233
SpriteFrame(-67, -75, 134, 150, 306, 873) // #15 - Icon Border
234
SpriteFrame(-67, -95, 64, 20, 280, 680) // #16 - Exit
235
SpriteFrame(-67, -95, 64, 20, 135, 617) // #17 - Exit Highlight
236
SpriteFrame(0, 0, 64, 20, 280, 659) // #18 - Next
237
SpriteFrame(0, 0, 64, 20, 200, 617) // #19 - Next Highlight
238
SpriteFrame(0, 0, 64, 20, 345, 659) // #20 - Go
239
SpriteFrame(0, 0, 64, 20, 265, 617) // #21 - Go Highlight
240
241
AddEditorVariable("frame")
242
SetActiveVariable("frame")
243
AddEnumVariable("Palmtree Panic", 0)
244
AddEnumVariable("Collision Chaos", 1)
245
AddEnumVariable("Tidal Tempest", 2)
246
AddEnumVariable("Quartz Quadrant", 3)
247
AddEnumVariable("Wacky Workbench", 4)
248
AddEnumVariable("Stardust Speedway", 5)
249
AddEnumVariable("Metallic Madness", 6)
250
AddEnumVariable("Special Zone 1", 7)
251
AddEnumVariable("Special Zone 2", 8)
252
AddEnumVariable("Special Zone 3", 9)
253
AddEnumVariable("Special Zone 4", 10)
254
AddEnumVariable("Special Zone 5", 11)
255
AddEnumVariable("Special Zone 6", 12)
256
AddEnumVariable("Special Zone 7", 13)
257
AddEnumVariable("Sonic CD Icon", 14)
258
end sub
259
260