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/WFZ/EggmanDispenser.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Eggman Dispenser Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
private alias object.value0 : object.timer
13
private alias object.value8 : object.exploding
14
15
// States
16
private alias 0 : WFZEGGMANDISPENSER_ENTER
17
private alias 1 : WFZEGGMANDISPENSER_DISPENSE
18
private alias 2 : WFZEGGMANDISPENSER_IDLE
19
private alias 14 : WFZEGGMANDISPENSER_DESTROYED
20
21
22
// ========================
23
// Events
24
// ========================
25
26
event ObjectUpdate
27
switch object.state
28
case WFZEGGMANDISPENSER_ENTER
29
object.ypos += 0x4000
30
31
object.timer++
32
if object.timer >= 92
33
object.timer = 0
34
object.drawOrder = 4
35
object.state = WFZEGGMANDISPENSER_DISPENSE
36
end if
37
break
38
39
case WFZEGGMANDISPENSER_DISPENSE
40
object.timer++
41
switch object.timer
42
case 10
43
object[+2].type = TypeName[Eggman Platform]
44
break
45
46
case 138
47
object[+3].type = TypeName[Eggman Platform]
48
break
49
50
case 266
51
object[+4].type = TypeName[Eggman Platform]
52
object.state = WFZEGGMANDISPENSER_IDLE
53
break
54
55
end switch
56
break
57
58
case WFZEGGMANDISPENSER_IDLE
59
break
60
61
case WFZEGGMANDISPENSER_DESTROYED
62
object.timer++
63
if object.timer >= 180
64
object.timer = 0
65
object.type = TypeName[Blank Object]
66
end if
67
break
68
69
end switch
70
71
if object.exploding == true
72
temp0 = oscillation
73
temp0 &= 7
74
if temp0 == 0
75
Rand(temp0, 96)
76
temp0 -= 48
77
temp0 <<= 16
78
temp0 += object.xpos
79
80
Rand(temp1, 48)
81
temp1 -= 24
82
temp1 <<= 16
83
temp1 += object.ypos
84
85
CreateTempObject(TypeName[Explosion], 0, temp0, temp1)
86
object[tempObjectPos].drawOrder = 5
87
PlaySfx(SfxName[Explosion], false)
88
end if
89
end if
90
end event
91
92
93
event ObjectDraw
94
DrawSprite(object.frame)
95
end event
96
97
98
event ObjectStartup
99
CheckCurrentStageFolder("Zone11")
100
if checkResult == true
101
LoadSpriteSheet("SCZ/Objects.gif")
102
SpriteFrame(-32, -8, 64, 16, 311, 82)
103
else
104
LoadSpriteSheet("MBZ/Objects.gif")
105
SpriteFrame(-32, -8, 64, 16, 513, 163)
106
end if
107
end event
108
109
110
// ========================
111
// Editor Events
112
// ========================
113
114
event RSDKDraw
115
DrawSprite(0)
116
end event
117
118
119
event RSDKLoad
120
CheckCurrentStageFolder("Zone11")
121
if checkResult == true
122
LoadSpriteSheet("SCZ/Objects.gif")
123
SpriteFrame(-32, -8, 64, 16, 311, 82)
124
else
125
LoadSpriteSheet("MBZ/Objects.gif")
126
SpriteFrame(-32, -8, 64, 16, 513, 163)
127
end if
128
129
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
130
end event
131
132