Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R4/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.Value0 : Object.Timer
7
#alias Object.Value1 : Object.CurrentPal
8
#alias Object.Value2 : Object.CurrentTile
9
10
// States
11
#alias 0 : BGANIMATION_VULKAN_ERUPT
12
#alias 1 : BGANIMATION_WAIT
13
14
// Priority
15
#alias 1 : PRIORITY_ACTIVE
16
17
18
sub ObjectMain
19
Object.Timer++
20
if Object.State == BGANIMATION_VULKAN_ERUPT
21
if Object.Timer == 5
22
switch Object.Frame
23
case 0
24
case 6
25
Object.CurrentPal = 0
26
break
27
28
case 1
29
Object.CurrentPal = 1
30
break
31
32
case 2
33
Object.CurrentPal = 2
34
break
35
36
case 3
37
Object.CurrentPal = 3
38
break
39
40
case 4
41
Object.CurrentPal = 4
42
break
43
44
case 5
45
Object.CurrentPal = 5
46
break
47
48
end switch
49
end if
50
51
if Object.Timer == 9
52
Object.Timer = 0
53
Object.Frame++
54
if Object.Frame > 6
55
Object.Frame = 0
56
Object.State = BGANIMATION_WAIT
57
end if
58
59
TempValue0 = Object.CurrentTile
60
61
switch Object.Frame
62
case 0
63
Copy16x16Tile(TempValue0, 716)
64
TempValue0++
65
Copy16x16Tile(TempValue0, 716)
66
TempValue0++
67
Copy16x16Tile(TempValue0, 716)
68
TempValue0++
69
Copy16x16Tile(TempValue0, 716)
70
TempValue0++
71
if TempValue0 > 542
72
TempValue0 = 534
73
end if
74
Copy16x16Tile(TempValue0, 716)
75
TempValue0++
76
Copy16x16Tile(TempValue0, 716)
77
TempValue0++
78
Copy16x16Tile(TempValue0, 716)
79
TempValue0++
80
Copy16x16Tile(TempValue0, 716)
81
TempValue0++
82
break
83
84
case 1
85
Copy16x16Tile(TempValue0, 716)
86
TempValue0++
87
Copy16x16Tile(TempValue0, 717)
88
TempValue0++
89
Copy16x16Tile(TempValue0, 718)
90
TempValue0++
91
Copy16x16Tile(TempValue0, 719)
92
TempValue0++
93
if TempValue0 > 542
94
TempValue0 = 534
95
end if
96
Copy16x16Tile(TempValue0, 716)
97
TempValue0++
98
Copy16x16Tile(TempValue0, 717)
99
TempValue0++
100
Copy16x16Tile(TempValue0, 718)
101
TempValue0++
102
Copy16x16Tile(TempValue0, 719)
103
TempValue0++
104
break
105
106
case 2
107
Copy16x16Tile(TempValue0, 720)
108
TempValue0++
109
Copy16x16Tile(TempValue0, 721)
110
TempValue0++
111
Copy16x16Tile(TempValue0, 722)
112
TempValue0++
113
Copy16x16Tile(TempValue0, 723)
114
TempValue0++
115
if TempValue0 > 542
116
TempValue0 = 534
117
end if
118
Copy16x16Tile(TempValue0, 720)
119
TempValue0++
120
Copy16x16Tile(TempValue0, 721)
121
TempValue0++
122
Copy16x16Tile(TempValue0, 722)
123
TempValue0++
124
Copy16x16Tile(TempValue0, 723)
125
TempValue0++
126
break
127
128
case 3
129
Copy16x16Tile(TempValue0, 724)
130
TempValue0++
131
Copy16x16Tile(TempValue0, 725)
132
TempValue0++
133
Copy16x16Tile(TempValue0, 726)
134
TempValue0++
135
Copy16x16Tile(TempValue0, 727)
136
TempValue0++
137
if TempValue0 > 542
138
TempValue0 = 534
139
end if
140
Copy16x16Tile(TempValue0, 724)
141
TempValue0++
142
Copy16x16Tile(TempValue0, 725)
143
TempValue0++
144
Copy16x16Tile(TempValue0, 726)
145
TempValue0++
146
Copy16x16Tile(TempValue0, 727)
147
TempValue0++
148
break
149
150
case 4
151
Copy16x16Tile(TempValue0, 728)
152
TempValue0++
153
Copy16x16Tile(TempValue0, 729)
154
TempValue0++
155
Copy16x16Tile(TempValue0, 730)
156
TempValue0++
157
Copy16x16Tile(TempValue0, 731)
158
TempValue0++
159
if TempValue0 > 542
160
TempValue0 = 534
161
end if
162
Copy16x16Tile(TempValue0, 728)
163
TempValue0++
164
Copy16x16Tile(TempValue0, 729)
165
TempValue0++
166
Copy16x16Tile(TempValue0, 730)
167
TempValue0++
168
Copy16x16Tile(TempValue0, 731)
169
TempValue0++
170
break
171
172
case 5
173
Copy16x16Tile(TempValue0, 732)
174
TempValue0++
175
Copy16x16Tile(TempValue0, 733)
176
TempValue0++
177
Copy16x16Tile(TempValue0, 734)
178
TempValue0++
179
Copy16x16Tile(TempValue0, 735)
180
TempValue0++
181
if TempValue0 > 542
182
TempValue0 = 534
183
end if
184
Copy16x16Tile(TempValue0, 732)
185
TempValue0++
186
Copy16x16Tile(TempValue0, 733)
187
TempValue0++
188
Copy16x16Tile(TempValue0, 734)
189
TempValue0++
190
Copy16x16Tile(TempValue0, 735)
191
TempValue0++
192
break
193
194
case 6
195
Copy16x16Tile(TempValue0, 736)
196
TempValue0++
197
Copy16x16Tile(TempValue0, 737)
198
TempValue0++
199
Copy16x16Tile(TempValue0, 738)
200
TempValue0++
201
Copy16x16Tile(TempValue0, 739)
202
TempValue0++
203
if TempValue0 > 542
204
TempValue0 = 534
205
end if
206
Copy16x16Tile(TempValue0, 736)
207
TempValue0++
208
Copy16x16Tile(TempValue0, 737)
209
TempValue0++
210
Copy16x16Tile(TempValue0, 738)
211
TempValue0++
212
Copy16x16Tile(TempValue0, 739)
213
TempValue0++
214
break
215
216
end switch
217
end if
218
else
219
if Object.Timer == 68
220
Object.Timer = 0
221
222
Object.State = BGANIMATION_VULKAN_ERUPT
223
224
Object.CurrentTile -= 4
225
if Object.CurrentTile < 534
226
Object.CurrentTile = 542
227
end if
228
end if
229
end if
230
end sub
231
232
233
sub ObjectStartup
234
Object[19].Type = TypeName[Blank Object]
235
Object[19].Priority = PRIORITY_ACTIVE
236
Object[19].CurrentTile = 534
237
238
CopyPalette(0, 1)
239
CopyPalette(0, 2)
240
CopyPalette(0, 3)
241
CopyPalette(0, 4)
242
CopyPalette(0, 5)
243
244
TempValue0 = 0
245
TempValue1 = 0
246
TempValue2 = 16
247
while TempValue0 < 6
248
LoadPalette("R41A_PalCycle.act", TempValue0, 176, TempValue1, TempValue2)
249
TempValue0++
250
TempValue1 += 16
251
TempValue2 += 16
252
loop
253
end sub
254
255
256
// ========================
257
// Editor Subs
258
// ========================
259
260
sub RSDKDraw
261
DrawSprite(0)
262
end sub
263
264
265
sub RSDKLoad
266
LoadSpriteSheet("Global/Display.gif")
267
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
268
269
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
270
end sub
271
272
273