Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/TAttack/BGAnimation.txt
1319 views
1
//----------------Sonic CD BG Animation Script----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value1 : Object.VLLYOffset // Vertical Line Left
7
#alias Object.Value2 : Object.VLRYOffset // Vertical Line Right
8
#alias Object.Value3 : Object.ArrowXOffset
9
10
// Menu Control Aliases
11
#alias Object[0].State : MenuControl.State
12
#alias Object[0].Value3 : MenuControl.SavedRound // This is used AFTER you play in time attack
13
#alias Object[0].Value7 : MenuControl.SSUnlocked
14
15
// Large Icon / Special Large Icon Aliases
16
#alias Object[40].XPos : Object.LIconXPos
17
18
// Menu Control States
19
// *SM = Sub Menu
20
#alias 0 : MENUCONTROL_SETUP
21
#alias 1 : MENUCONTROL_FADEIN
22
#alias 2 : MENUCONTROL_CONTROLS
23
#alias 3 : MENUCONTROL_BLANK
24
#alias 4 : MENUCONTROL_RETURN_TO_MENU
25
#alias 5 : MENUCONTROL_ENTER_SM
26
#alias 6 : MENUCONTROL_CALL_RECORD_MENU
27
#alias 7 : MENUCONTROL_SM_CONTROLS
28
#alias 8 : MENUCONTROL_SM_SCROLL_DOWN
29
#alias 9 : MENUCONTROL_SM_SCROLL_UP
30
#alias 10 : MENUCONTROL_SM_CONFIRMED
31
#alias 11 : MENUCONTROL_SM_LOAD_LEVEL
32
#alias 12 : MENUCONTROL_SM_LEVEL_RETURN
33
#alias 13 : MENUCONTROL_SM_COMFIRMED_LEAVE
34
#alias 14 : MENUCONTROL_SM_EXIT
35
#alias 15 : MENUCONTROL_SM_RECORD_BEATED
36
#alias 16 : MENUCONTROL_SCROLL_DOWN
37
#alias 17 : MENUCONTROL_SCROLLING_1
38
#alias 18 : MENUCONTROL_SCROLL_UP
39
#alias 19 : MENUCONTROL_SCROLLING_2
40
41
42
sub ObjectMain
43
Object.VLLYOffset--
44
if Object.VLLYOffset < -31
45
Object.VLLYOffset += 32
46
end if
47
48
Object.VLRYOffset++
49
if Object.VLRYOffset > -1
50
Object.VLRYOffset -= 32
51
end if
52
53
Object.ArrowXOffset++
54
if Object.ArrowXOffset > -1
55
Object.ArrowXOffset -= 96
56
end if
57
end sub
58
59
60
sub ObjectDraw
61
if Object.DrawOrder == 3
62
DrawRect(0, 0, 2, Screen.YSize, 0, 0, 0, 255)
63
TempValue0 = Screen.CenterX
64
TempValue0 -= 32
65
DrawRect(0, 160, TempValue0, 2, 0, 0, 0, 255)
66
TempValue0 += 48
67
68
switch MenuControl.State
69
case MENUCONTROL_SETUP
70
case MENUCONTROL_FADEIN
71
case MENUCONTROL_CONTROLS
72
case MENUCONTROL_BLANK
73
case MENUCONTROL_RETURN_TO_MENU
74
case MENUCONTROL_ENTER_SM
75
case MENUCONTROL_SM_EXIT
76
case MENUCONTROL_SCROLL_DOWN
77
case MENUCONTROL_SCROLLING_1
78
case MENUCONTROL_SCROLL_UP
79
case MENUCONTROL_SCROLLING_2
80
DrawRect(TempValue0, 0, Screen.CenterX, Screen.YSize, 224, 0, 0, 255)
81
DrawRect(TempValue0, 175, Screen.CenterX, 38, 0, 0, 96, 255)
82
DrawRect(TempValue0, 31, Screen.CenterX, 9, 0, 0, 0, 255)
83
break
84
85
case MENUCONTROL_CALL_RECORD_MENU
86
case MENUCONTROL_SM_CONTROLS
87
case MENUCONTROL_SM_SCROLL_DOWN
88
case MENUCONTROL_SM_SCROLL_UP
89
case MENUCONTROL_SM_CONFIRMED
90
case MENUCONTROL_SM_LOAD_LEVEL
91
case MENUCONTROL_SM_LEVEL_RETURN
92
case MENUCONTROL_SM_COMFIRMED_LEAVE
93
case MENUCONTROL_SM_RECORD_BEATED
94
DrawRect(TempValue0, 0, Screen.CenterX, 32, 224, 0, 0, 255)
95
DrawRect(TempValue0, 226, Screen.CenterX, 14, 224, 0, 0, 255)
96
DrawRect(TempValue0, 31, Screen.CenterX, 2, 0, 0, 0, 255)
97
break
98
99
end switch
100
TempValue0 -= 50
101
DrawRect(2, 0, TempValue0, 160, 160, 160, 64, 255)
102
DrawRect(2, 162, TempValue0, 78, 0, 128, 0, 255)
103
104
TempValue1 = Object.ArrowXOffset
105
TempValue1 >>= 1
106
DrawSpriteScreenXY(3, TempValue1, 226)
107
DrawSpriteScreenXY(4, TempValue1, 226)
108
109
TempValue0 += 2
110
TempValue1 = Object.VLLYOffset
111
TempValue1 >>= 1
112
DrawSpriteScreenXY(1, TempValue0, TempValue1)
113
114
TempValue1 = Object.VLRYOffset
115
TempValue1 >>= 1
116
DrawSpriteScreenXY(2, TempValue0, TempValue1)
117
118
SetDrawListEntityRef(Object.EntityNo, 4, Screen[4].DrawListSize)
119
Screen[4].DrawListSize++
120
Object.DrawOrder = 4
121
else
122
DrawRect(0, 213, Screen.XSize, 13, 0, 0, 0, 255)
123
DrawSpriteScreenXY(0, 24, 195)
124
125
TempValue0 = Screen.CenterX
126
TempValue0 += 19
127
DrawSpriteScreenXY(5, TempValue0, 213)
128
129
if MenuControl.SSUnlocked == true
130
TempValue0 = Screen.XSize
131
TempValue0 -= 64
132
TempValue1 = Object.LIconXPos
133
TempValue1 -= -0x480000
134
TempValue1 >>= 17
135
TempValue0 += TempValue1
136
if MenuControl.SavedRound == 8
137
DrawSpriteScreenXY(7, TempValue0, 197)
138
else
139
DrawSpriteScreenXY(6, TempValue0, 197)
140
end if
141
end if
142
Object.DrawOrder = 3
143
end if
144
end sub
145
146
147
sub ObjectStartup
148
LoadSpriteSheet("TAttack/TimeAttack.gif")
149
LoadPalette("TimeAttack.act", 0, 0, 0, 256)
150
151
MatrixTranslateXYZ(MAT_WORLD, 0, 0, 0)
152
MatrixRotateXYZ(MAT_VIEW, 0, 0, 0)
153
154
SpriteFrame(0, 0, 152, 30, 70, 666) // #0 - Time Attack Header
155
SpriteFrame(0, 0, 24, 256, 463, 577) // #1 - BG Vertical Line First Half
156
SpriteFrame(24, 0, 24, 256, 487, 577) // #2 - BG Vertical Line Second Half
157
SpriteFrame(0, 0, 448, 14, 1, 701) // #3 - BG Right Arrow Line
158
SpriteFrame(448, 0, 448, 14, 1, 701) // #4 - BG Left Arrow Line
159
SpriteFrame(0, 0, 104, 13, 358, 687) // #5 - Sonic The Hedgehog CD
160
161
#platform: Standard
162
SpriteFrame(-16, 0, 80, 16, 326, 798) // #6 - Next
163
SpriteFrame(-16, 0, 80, 16, 326, 815) // #7 - Next Highlight
164
#endplatform
165
166
#platform: Mobile
167
SpriteFrame(0, 0, 64, 16, 326, 764) // #6 - Next
168
SpriteFrame(0, 0, 64, 16, 326, 781) // #7 - Next Highlight
169
#endplatform
170
Object[31].Type = TypeName[BGAnimation]
171
end sub
172
173
174
// ========================
175
// Editor Subs
176
// ========================
177
178
sub RSDKDraw
179
DrawSprite(0)
180
end sub
181
182
183
sub RSDKLoad
184
LoadSpriteSheet("Global/Display.gif")
185
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
186
187
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
188
end sub
189
190