Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 2/Scripts/Credits/DeathEggFall.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Death Egg Fall Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
// Used in Death Egg Type
13
private alias object.value0 : object.sparkTimer
14
private alias object.value1 : object.dustPuff1Timer
15
private alias object.value2 : object.dustPuff3Timer
16
private alias object.value4 : object.smallDustPuffTimer
17
18
// Used for animating in other types
19
private alias object.value0 : object.timer
20
21
// Types
22
private alias 0 : DEATHEGGFALL_BG
23
private alias 1 : DEATHEGGFALL_DEATHEGG
24
private alias 2 : DEATHEGGFALL_ANGELISLAND
25
private alias 3 : DEATHEGGFALL_CLOUD_WIDE
26
private alias 4 : DEATHEGGFALL_CLOUD_SMALL
27
private alias 5 : DEATHEGGFALL_DUSTPUFF1_1
28
private alias 6 : DEATHEGGFALL_DUSTPUFF1_2
29
private alias 7 : DEATHEGGFALL_DUSTPUFF1_3
30
private alias 8 : DEATHEGGFALL_DUSTPUFF1_4
31
private alias 9 : DEATHEGGFALL_DUSTPUFF2_1
32
private alias 10 : DEATHEGGFALL_DUSTPUFF2_2
33
private alias 11 : DEATHEGGFALL_DUSTPUFF2_3
34
private alias 12 : DEATHEGGFALL_DUSTPUFF2_4
35
private alias 13 : DEATHEGGFALL_SMALLDUSTPUFF1_1
36
private alias 14 : DEATHEGGFALL_SMALLDUSTPUFF1_2
37
private alias 15 : DEATHEGGFALL_SMALLDUSTPUFF1_3
38
private alias 16 : DEATHEGGFALL_SMALLDUSTPUFF1_4
39
private alias 17 : DEATHEGGFALL_SMALLDUSTPUFF2_1
40
private alias 18 : DEATHEGGFALL_SMALLDUSTPUFF2_2
41
private alias 19 : DEATHEGGFALL_SMALLDUSTPUFF2_3
42
private alias 20 : DEATHEGGFALL_SMALLDUSTPUFF2_4
43
private alias 21 : DEATHEGGFALL_SPARK_1
44
private alias 22 : DEATHEGGFALL_SPARK_2
45
private alias 23 : DEATHEGGFALL_SPARK_3
46
private alias 24 : DEATHEGGFALL_SPARK_4
47
private alias 25 : DEATHEGGFALL_SPARK_5
48
private alias 26 : DEATHEGGFALL_SPARK_6
49
private alias 27 : DEATHEGGFALL_DUSTPUFF3_1
50
51
52
// ========================
53
// Events
54
// ========================
55
56
event ObjectUpdate
57
switch object.propertyValue
58
case DEATHEGGFALL_BG
59
break
60
61
case DEATHEGGFALL_DEATHEGG
62
object.xpos += 0x2000
63
object.ypos += 0x2000
64
65
object.sparkTimer++
66
if object.sparkTimer >= 6
67
object.sparkTimer = 0
68
Rand(temp0, 36)
69
temp0 -= 18
70
temp0 <<= 16
71
temp0 += object.xpos
72
Rand(temp1, 36)
73
temp1 -= 18
74
temp1 <<= 16
75
temp1 += object.ypos
76
CreateTempObject(TypeName[Death Egg Fall], DEATHEGGFALL_SPARK_1, temp0, temp1)
77
object[tempObjectPos].drawOrder = 1
78
end if
79
80
object.dustPuff1Timer++
81
if object.dustPuff1Timer >= 24
82
object.dustPuff1Timer = 0
83
Rand(temp0, 36)
84
temp0 -= 18
85
temp0 <<= 16
86
temp0 += object.xpos
87
Rand(temp1, 36)
88
temp1 -= 18
89
temp1 <<= 16
90
temp1 += object.ypos
91
CreateTempObject(TypeName[Death Egg Fall], DEATHEGGFALL_DUSTPUFF1_1, temp0, temp1)
92
object[tempObjectPos].drawOrder = 1
93
94
Rand(temp0, 4)
95
if temp0 == 2
96
object[tempObjectPos].propertyValue = DEATHEGGFALL_DUSTPUFF2_1
97
end if
98
end if
99
100
object.dustPuff3Timer++
101
if object.dustPuff3Timer >= 32
102
object.dustPuff3Timer = 0
103
Rand(temp0, 36)
104
temp0 -= 18
105
temp0 <<= 16
106
temp0 += object.xpos
107
Rand(temp1, 36)
108
temp1 -= 18
109
temp1 <<= 16
110
temp1 += object.ypos
111
CreateTempObject(TypeName[Death Egg Fall], DEATHEGGFALL_DUSTPUFF3_1, temp0, temp1)
112
object[tempObjectPos].drawOrder = 1
113
end if
114
115
object.smallDustPuffTimer++
116
if object.smallDustPuffTimer >= 28
117
object.smallDustPuffTimer = 0
118
Rand(temp0, 36)
119
temp0 -= 18
120
temp0 <<= 16
121
temp0 += object.xpos
122
temp1 = object.ypos
123
temp1 -= 0x120000
124
CreateTempObject(TypeName[Death Egg Fall], DEATHEGGFALL_SMALLDUSTPUFF1_1, temp0, temp1)
125
object[tempObjectPos].drawOrder = 1
126
127
Rand(temp0, 4)
128
if temp0 == 2
129
object[tempObjectPos].propertyValue = DEATHEGGFALL_SMALLDUSTPUFF2_1
130
end if
131
end if
132
break
133
134
case DEATHEGGFALL_ANGELISLAND
135
object.xpos -= 0x2000
136
object.ypos -= 0x2000
137
break
138
139
case DEATHEGGFALL_CLOUD_WIDE
140
object.xpos -= 0x4000
141
object.ypos -= 0x4000
142
break
143
144
case DEATHEGGFALL_CLOUD_SMALL
145
object.xpos -= 0x1000
146
object.ypos -= 0x1000
147
break
148
149
// Dust Puffs
150
case DEATHEGGFALL_DUSTPUFF1_1
151
case DEATHEGGFALL_DUSTPUFF1_2
152
case DEATHEGGFALL_DUSTPUFF1_3
153
case DEATHEGGFALL_DUSTPUFF1_4
154
155
case DEATHEGGFALL_DUSTPUFF2_1
156
case DEATHEGGFALL_DUSTPUFF2_2
157
case DEATHEGGFALL_DUSTPUFF2_3
158
case DEATHEGGFALL_DUSTPUFF2_4
159
160
case DEATHEGGFALL_SMALLDUSTPUFF1_1
161
case DEATHEGGFALL_SMALLDUSTPUFF1_2
162
case DEATHEGGFALL_SMALLDUSTPUFF1_3
163
case DEATHEGGFALL_SMALLDUSTPUFF1_4
164
165
case DEATHEGGFALL_SMALLDUSTPUFF2_1
166
case DEATHEGGFALL_SMALLDUSTPUFF2_2
167
case DEATHEGGFALL_SMALLDUSTPUFF2_3
168
case DEATHEGGFALL_SMALLDUSTPUFF2_4
169
object.animationTimer++
170
if object.animationTimer >= 4
171
object.animationTimer = 0
172
object.propertyValue++
173
object.timer++
174
if object.timer >= 4
175
object.type = TypeName[Blank Object]
176
end if
177
end if
178
object.xpos -= 0x6000
179
object.ypos -= 0x6000
180
break
181
182
// Sparks
183
case DEATHEGGFALL_SPARK_1
184
case DEATHEGGFALL_SPARK_2
185
case DEATHEGGFALL_SPARK_3
186
case DEATHEGGFALL_SPARK_4
187
case DEATHEGGFALL_SPARK_5
188
case DEATHEGGFALL_SPARK_6
189
object.animationTimer ^= 1
190
if object.animationTimer == 0
191
object.propertyValue++
192
object.timer++
193
if object.timer >= 6
194
object.type = TypeName[Blank Object]
195
end if
196
end if
197
object.xpos += 0x1000
198
object.ypos += 0x1000
199
break
200
201
// Dust Puff 3
202
case DEATHEGGFALL_DUSTPUFF3_1
203
object.animationTimer++
204
object.animationTimer &= 15
205
object.direction = object.animationTimer
206
object.direction >>= 2
207
object.xpos -= 0x6000
208
object.ypos -= 0x6000
209
break
210
211
end switch
212
end event
213
214
215
event ObjectDraw
216
DrawSprite(object.propertyValue)
217
end event
218
219
220
event ObjectStartup
221
LoadSpriteSheet("Ending/Fall.gif")
222
223
// Death Egg frames
224
SpriteFrame(-48, -48, 96, 96, 1, 1) // Sky BG - #0
225
SpriteFrame(-21, -21, 42, 42, 163, 1) // Death Egg - #1
226
SpriteFrame(-32, -32, 64, 64, 98, 1) // Angel Island - #2
227
SpriteFrame(-24, -4, 48, 8, 206, 1) // Wide Cloud - #3
228
SpriteFrame(-8, -4, 16, 8, 206, 10) // Small Cloud - #4
229
230
SpriteFrame(-8, -7, 16, 13, 98, 66) // Dust Puff 1 - Frame 1 - #5
231
SpriteFrame(-8, -7, 15, 14, 115, 66) // Dust Puff 1 - Frame 2 - #6
232
SpriteFrame(-8, -7, 15, 14, 131, 66) // Dust Puff 1 - Frame 3 - #7
233
SpriteFrame(-6, -6, 12, 12, 147, 66) // Dust Puff 1 - Frame 4 - #8
234
235
SpriteFrame(-8, -7, 16, 13, 98, 81) // Dust Puff 2 - Frame 1 - #9
236
SpriteFrame(-8, -7, 15, 14, 115, 81) // Dust Puff 2 - Frame 2 - #10
237
SpriteFrame(-8, -7, 15, 14, 131, 81) // Dust Puff 2 - Frame 3 - #11
238
SpriteFrame(-6, -6, 12, 12, 131, 96) // Dust Puff 2 - Frame 4 - #12
239
240
SpriteFrame(-4, -4, 8, 7, 163, 44) // Dust Puff 1 (Small) - Frame 1 - #13
241
SpriteFrame(-4, -4, 8, 7, 172, 44) // Dust Puff 1 (Small) - Frame 2 - #14
242
SpriteFrame(-4, -4, 8, 7, 181, 44) // Dust Puff 1 (Small) - Frame 3 - #15
243
SpriteFrame(-3, -3, 6, 6, 190, 44) // Dust Puff 1 (Small) - Frame 4 - #16
244
245
SpriteFrame(-4, -4, 8, 7, 163, 52) // Dust Puff 2 (Small) - Frame 1 - #17
246
SpriteFrame(-4, -4, 8, 7, 172, 52) // Dust Puff 2 (Small) - Frame 2 - #18
247
SpriteFrame(-4, -4, 8, 7, 181, 52) // Dust Puff 2 (Small) - Frame 3 - #19
248
SpriteFrame(-3, -3, 6, 6, 190, 52) // Dust Puff 2 (Small) - Frame 4 - #20
249
250
SpriteFrame(0, 0, 1, 1, 163, 60) // Sparks - Frame 1 - #21
251
SpriteFrame(0, -1, 1, 2, 165, 60) // Sparks - Frame 2 - #22
252
SpriteFrame(-1, -1, 2, 2, 167, 60) // Sparks - Frame 3 - #23
253
SpriteFrame(-2, -2, 4, 4, 170, 60) // Sparks - Frame 4 - #24
254
SpriteFrame(-2, -2, 4, 4, 175, 60) // Sparks - Frame 5 - #25
255
SpriteFrame(-2, -2, 4, 4, 180, 60) // Sparks - Frame 6 - #26
256
257
SpriteFrame(-3, -3, 6, 6, 223, 10) // Dust Puff 3 - Frame 1 - #27
258
end event
259
260
261
// ========================
262
// Editor Events
263
// ========================
264
265
event RSDKEdit
266
if editor.returnVariable == true
267
switch editor.variableID
268
case EDIT_VAR_PROPVAL // property value
269
checkResult = object.propertyValue
270
break
271
272
case 0 // type
273
checkResult = object.propertyValue
274
break
275
276
end switch
277
else
278
switch editor.variableID
279
case EDIT_VAR_PROPVAL // property value
280
object.propertyValue = editor.variableValue
281
break
282
283
case 0 // type
284
object.propertyValue = editor.variableValue
285
break
286
287
end switch
288
end if
289
end event
290
291
292
event RSDKDraw
293
DrawSprite(object.propertyValue)
294
end event
295
296
297
event RSDKLoad
298
LoadSpriteSheet("Ending/Fall.gif")
299
SpriteFrame(-48, -48, 96, 96, 1, 1) // Sky BG - #0
300
SpriteFrame(-21, -21, 42, 42, 163, 1) // Death Egg - #1
301
SpriteFrame(-32, -32, 64, 64, 98, 1) // Angel Island - #2
302
SpriteFrame(-24, -4, 48, 8, 206, 1) // Wide Cloud - #3
303
SpriteFrame(-8, -4, 16, 8, 206, 10) // Small Cloud - #4
304
305
SpriteFrame(-8, -7, 16, 13, 98, 66) // Dust Puff 1 - Frame 1 - #5
306
SpriteFrame(-8, -7, 15, 14, 115, 66) // Dust Puff 1 - Frame 2 - #6
307
SpriteFrame(-8, -7, 15, 14, 131, 66) // Dust Puff 1 - Frame 3 - #7
308
SpriteFrame(-6, -6, 12, 12, 147, 66) // Dust Puff 1 - Frame 4 - #8
309
310
SpriteFrame(-8, -7, 16, 13, 98, 81) // Dust Puff 2 - Frame 1 - #9
311
SpriteFrame(-8, -7, 15, 14, 115, 81) // Dust Puff 2 - Frame 2 - #10
312
SpriteFrame(-8, -7, 15, 14, 131, 81) // Dust Puff 2 - Frame 3 - #11
313
SpriteFrame(-6, -6, 12, 12, 131, 96) // Dust Puff 2 - Frame 4 - #12
314
315
SpriteFrame(-4, -4, 8, 7, 163, 44) // Dust Puff 1 (Small) - Frame 1 - #13
316
SpriteFrame(-4, -4, 8, 7, 172, 44) // Dust Puff 1 (Small) - Frame 2 - #14
317
SpriteFrame(-4, -4, 8, 7, 181, 44) // Dust Puff 1 (Small) - Frame 3 - #15
318
SpriteFrame(-3, -3, 6, 6, 190, 44) // Dust Puff 1 (Small) - Frame 4 - #16
319
320
SpriteFrame(-4, -4, 8, 7, 163, 52) // Dust Puff 2 (Small) - Frame 1 - #17
321
SpriteFrame(-4, -4, 8, 7, 172, 52) // Dust Puff 2 (Small) - Frame 2 - #18
322
SpriteFrame(-4, -4, 8, 7, 181, 52) // Dust Puff 2 (Small) - Frame 3 - #19
323
SpriteFrame(-3, -3, 6, 6, 190, 52) // Dust Puff 2 (Small) - Frame 4 - #20
324
325
SpriteFrame(0, 0, 1, 1, 163, 60) // Sparks - Frame 1 - #21
326
SpriteFrame(0, -1, 1, 2, 165, 60) // Sparks - Frame 2 - #22
327
SpriteFrame(-1, -1, 2, 2, 167, 60) // Sparks - Frame 3 - #23
328
SpriteFrame(-2, -2, 4, 4, 170, 60) // Sparks - Frame 4 - #24
329
SpriteFrame(-2, -2, 4, 4, 175, 60) // Sparks - Frame 5 - #25
330
SpriteFrame(-2, -2, 4, 4, 180, 60) // Sparks - Frame 6 - #26
331
332
SpriteFrame(-3, -3, 6, 6, 223, 10) // Dust Puff 3 - Frame 1 - #27
333
334
AddEditorVariable("frameID")
335
SetActiveVariable("frameID")
336
AddEnumVariable("Sky BG", DEATHEGGFALL_BG)
337
AddEnumVariable("Death Egg", DEATHEGGFALL_DEATHEGG)
338
AddEnumVariable("Angel Island", DEATHEGGFALL_ANGELISLAND)
339
AddEnumVariable("Cloud (Wide)", DEATHEGGFALL_CLOUD_WIDE)
340
AddEnumVariable("Cloud (Small)", DEATHEGGFALL_CLOUD_SMALL)
341
AddEnumVariable("Dust Puff 1 (Frame 1)", DEATHEGGFALL_DUSTPUFF1_1)
342
AddEnumVariable("Dust Puff 1 (Frame 2)", DEATHEGGFALL_DUSTPUFF1_2)
343
AddEnumVariable("Dust Puff 1 (Frame 3)", DEATHEGGFALL_DUSTPUFF1_3)
344
AddEnumVariable("Dust Puff 1 (Frame 4)", DEATHEGGFALL_DUSTPUFF1_4)
345
AddEnumVariable("Dust Puff 2 (Frame 1)", DEATHEGGFALL_DUSTPUFF2_1)
346
AddEnumVariable("Dust Puff 2 (Frame 2)", DEATHEGGFALL_DUSTPUFF2_2)
347
AddEnumVariable("Dust Puff 2 (Frame 3)", DEATHEGGFALL_DUSTPUFF2_3)
348
AddEnumVariable("Dust Puff 2 (Frame 4)", DEATHEGGFALL_DUSTPUFF2_4)
349
AddEnumVariable("Small Dust Puff 1 (Frame 1)", DEATHEGGFALL_SMALLDUSTPUFF1_1)
350
AddEnumVariable("Small Dust Puff 1 (Frame 2)", DEATHEGGFALL_SMALLDUSTPUFF1_2)
351
AddEnumVariable("Small Dust Puff 1 (Frame 3)", DEATHEGGFALL_SMALLDUSTPUFF1_3)
352
AddEnumVariable("Small Dust Puff 1 (Frame 4)", DEATHEGGFALL_SMALLDUSTPUFF1_4)
353
AddEnumVariable("Small Dust Puff 2 (Frame 1)", DEATHEGGFALL_SMALLDUSTPUFF2_1)
354
AddEnumVariable("Small Dust Puff 2 (Frame 2)", DEATHEGGFALL_SMALLDUSTPUFF2_2)
355
AddEnumVariable("Small Dust Puff 2 (Frame 3)", DEATHEGGFALL_SMALLDUSTPUFF2_3)
356
AddEnumVariable("Small Dust Puff 2 (Frame 4)", DEATHEGGFALL_SMALLDUSTPUFF2_4)
357
AddEnumVariable("Spark (Frame 1)", DEATHEGGFALL_SPARK_1)
358
AddEnumVariable("Spark (Frame 2)", DEATHEGGFALL_SPARK_2)
359
AddEnumVariable("Spark (Frame 3)", DEATHEGGFALL_SPARK_3)
360
AddEnumVariable("Spark (Frame 4)", DEATHEGGFALL_SPARK_4)
361
AddEnumVariable("Spark (Frame 5)", DEATHEGGFALL_SPARK_5)
362
AddEnumVariable("Spark (Frame 6)", DEATHEGGFALL_SPARK_6)
363
AddEnumVariable("Dust Puff 3", DEATHEGGFALL_DUSTPUFF3_1)
364
365
// drawOrder is set from editor as well
366
end event
367
368