Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Menu/TrophiesMenu.txt
1319 views
1
//----------------Sonic CD Trophies Menu Script---------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
//-----This Object is normally only used by WP7 Data files----//
5
6
// Aliases
7
#alias Object.Value0 : Object.Fade
8
#alias Object.Value1 : Object.TrophyTimer
9
#alias Object.Value2 : Object.SelectionPos
10
#alias Object.Value3 : Object.DragEnabled
11
#alias Object.Value4 : Object.TouchYPos
12
#alias Object.Value5 : Object.DragYOffset
13
14
// Object[1] is a blank object only used to share values across the menu objects
15
#alias Object[1].Value0 : Object.DragPos
16
#alias Object[1].Value4 : Object.YOffSet1 //in other scripts this is used to check inputs
17
#alias Object[1].Value5 : Object.YOffSet2
18
#alias Object[1].Value6 : Object.YOffSet3
19
20
// States
21
#alias 0 : TROPHIES_SETUP
22
#alias 1 : TROPHIES_FADEIN
23
#alias 2 : TROPHIES_CONTROLS
24
#alias 5 : TROPHIES_EXIT
25
26
// Presentation Stage
27
#alias 1 : STAGE_P_MENU
28
29
//Engine & CallBacks
30
#alias 2 : MESSAGE_LOSTFOCUS
31
32
// Soundtrack
33
#alias 0 : OST_JP
34
35
// SFX
36
#alias 26 : SFX_G_OUTTAHERE
37
38
// Priority
39
#alias 1 : PRIORITY_ACTIVE
40
41
// Callbacks & Engine States
42
#alias 0 : CALLBACK_DISPLAYLOGOS
43
#alias 7 : CALLBACK_EXIT_SELECTED
44
45
#alias 5 : ENGINE_ENTER_HIRESMODE
46
#alias 6 : ENGINE_EXIT_HIRESMODE
47
48
49
sub ObjectMain
50
switch Object.State
51
case TROPHIES_SETUP
52
TempValue0 = 256
53
TempValue0 -= Screen.CenterX
54
Screen.XOffset = TempValue0
55
PlayMusic(1)
56
Object.Fade = 384
57
Object.State++
58
SetScreenFade(0, 0, 0, 255)
59
break
60
61
case TROPHIES_FADEIN
62
if Object.Fade > 0
63
Object.Fade -= 8
64
else
65
Object.State++
66
end if
67
SetScreenFade(0, 0, 0, Object.Fade)
68
break
69
70
case TROPHIES_CONTROLS
71
if Options.PhysicalControls == true
72
if KeyDown[0].Down == true
73
Object.SelectionPos += 0x40000
74
if Object.SelectionPos > 0x1800000
75
Object.SelectionPos = 0x1800000
76
end if
77
end if
78
79
if KeyDown[0].Up == true
80
Object.SelectionPos -= 0x40000
81
if Object.SelectionPos < 0
82
Object.SelectionPos = 0
83
end if
84
end if
85
86
CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)
87
if CheckResult > -1
88
Options.PhysicalControls = false
89
end if
90
else
91
CheckTouchRect(0, 48, Screen.XSize, Screen.YSize)
92
if CheckResult > -1
93
ArrayPos0 = CheckResult
94
if Object.DragEnabled == false
95
Object.DragEnabled = true
96
Object.DragPos = Object.SelectionPos
97
Object.DragPos >>= 16
98
99
Object.TouchYPos = TouchScreen[ArrayPos0].YPos
100
else
101
TempValue0 = Object.TouchYPos
102
TempValue0 -= TouchScreen[ArrayPos0].YPos
103
TempValue0 += Object.DragPos
104
105
Object.YOffSet3 = Object.YOffSet2
106
Object.YOffSet2 = Object.YOffSet1
107
Object.YOffSet1 = Object.DragYOffset
108
109
Object.DragYOffset = TempValue0
110
TempValue1 = Object.SelectionPos
111
TempValue1 >>= 16
112
Object.DragYOffset -= TempValue1
113
114
Object.SelectionPos = TempValue0
115
Object.SelectionPos <<= 16
116
end if
117
else
118
if Object.DragEnabled == true
119
Object.DragEnabled = false
120
Object.DragYOffset += Object.YOffSet1
121
Object.DragYOffset += Object.YOffSet2
122
Object.DragYOffset += Object.YOffSet3
123
Object.DragYOffset >>= 2
124
Object.DragYOffset <<= 16
125
end if
126
127
if Object.DragYOffset != 0
128
Object.SelectionPos += Object.DragYOffset
129
if Object.SelectionPos < 0
130
Object.DragYOffset = 0
131
end if
132
133
if Object.SelectionPos > 0x1800000
134
Object.DragYOffset = 0
135
end if
136
137
if Object.DragYOffset > 0
138
Object.DragYOffset -= 0x2000
139
if Object.DragYOffset < 0
140
Object.DragYOffset = 0
141
end if
142
else
143
Object.DragYOffset += 0x2000
144
if Object.DragYOffset > 0
145
Object.DragYOffset = 0
146
end if
147
end if
148
else
149
if Object.SelectionPos < 0
150
Object.SelectionPos *= 224
151
Object.SelectionPos >>= 8
152
end if
153
154
if Object.SelectionPos > 0x1800000
155
Object.SelectionPos -= 0x1800000
156
Object.SelectionPos *= 224
157
Object.SelectionPos >>= 8
158
Object.SelectionPos += 0x1800000
159
end if
160
end if
161
end if
162
if KeyPress[0].Up == true
163
Options.PhysicalControls = true
164
end if
165
166
if KeyPress[0].Down == true
167
Options.PhysicalControls = true
168
end if
169
end if
170
171
if KeyPress[0].ButtonB == true
172
PlaySfx(SFX_G_OUTTAHERE, false)
173
StopMusic()
174
Object.State = TROPHIES_EXIT
175
end if
176
break
177
178
case TROPHIES_EXIT
179
if Object.Fade < 348
180
Object.Fade += 8
181
else
182
Stage.ListPos = STAGE_P_MENU
183
Engine.State = ENGINE_EXIT_HIRESMODE
184
LoadStage()
185
end if
186
SetScreenFade(0, 0, 0, Object.Fade)
187
break
188
189
end switch
190
end sub
191
192
193
sub ObjectDraw
194
Object.TrophyTimer--
195
if Object.TrophyTimer < -31
196
Object.TrophyTimer += 32
197
end if
198
TempValue1 = Object.TrophyTimer
199
TempValue1 >>= 1
200
while TempValue1 < Screen.YSize
201
TempValue0 = Object.TrophyTimer
202
TempValue0 >>= 1
203
while TempValue0 < Screen.XSize
204
DrawSpriteScreenXY(0, TempValue0, TempValue1)
205
TempValue0 += 64
206
loop
207
TempValue1 += 64
208
loop
209
TempValue0 = Screen.XSize
210
TempValue0 -= 16
211
DrawRect(TempValue0, 56, 4, 176, 128, 128, 128, 128)
212
213
TempValue1 = Object.SelectionPos
214
TempValue1 >>= 16
215
if TempValue1 < 0
216
TempValue1 = 0
217
end if
218
if TempValue1 > 384
219
TempValue1 = 384
220
end if
221
TempValue1 *= 160
222
TempValue1 /= 384
223
TempValue1 += 56
224
DrawRect(TempValue0, TempValue1, 4, 16, 0, 0, 0, 255)
225
end sub
226
227
228
sub ObjectStartup
229
LoadSpriteSheet("Menu/Trophies.gif")
230
SpriteFrame(0, 0, 64, 64, 385, 385) // #0 - White Space
231
232
LoadPalette("Trophies.act", 0, 0, 0, 256)
233
LoadPalette("HelpPal1.act", 0, 0, 0, 32)
234
LoadTextFont("Data/Game/HelpText.bin")
235
236
if Options.Soundtrack == OST_JP
237
SetMusicTrack("JP/DAGarden.ogg", 1, 1)
238
else
239
SetMusicTrack("US/DAGarden.ogg", 1, 117382)
240
end if
241
242
Engine.State = ENGINE_ENTER_HIRESMODE
243
Screen.CameraEnabled = false
244
245
Object[0].Type = TypeName[Trophies Menu]
246
Object[0].Priority = PRIORITY_ACTIVE
247
Object[0].DrawOrder = 0
248
249
LoadTextFile(MENU_1, "Data/Game/Trophies.txt", 1)
250
end sub
251
252
253
// ========================
254
// Editor Subs
255
// ========================
256
257
sub RSDKDraw
258
DrawSprite(0)
259
end sub
260
261
262
sub RSDKLoad
263
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
264
SpriteFrame(16, 0, 63, 30, 1, 513) // Options
265
266
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
267
end sub
268
269