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/ARZ/CountdownBubble.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Countdown Bubble 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.value1 : object.drawPos.x
14
private alias object.value2 : object.drawPos.y
15
private alias object.value3 : object.drawScreenID // new to Origins.
16
17
private alias 0 : COUNTDOWNBUBBLE_SETUP
18
private alias 1 : COUNTDOWNBUBBLE_FRAME1
19
private alias 2 : COUNTDOWNBUBBLE_FRAME2
20
private alias 3 : COUNTDOWNBUBBLE_FRAME3
21
private alias 4 : COUNTDOWNBUBBLE_FRAME4
22
private alias 5 : COUNTDOWNBUBBLE_FRAME5
23
private alias 6 : COUNTDOWNBUBBLE_FRAME6
24
private alias 7 : COUNTDOWNBUBBLE_FRAME7
25
private alias 8 : COUNTDOWNBUBBLE_FRAME8
26
27
28
// ========================
29
// Events
30
// ========================
31
32
event ObjectUpdate
33
switch object.state
34
case COUNTDOWNBUBBLE_SETUP
35
object.ypos += object.yvel
36
object.timer++
37
if object.timer > 6
38
object.timer = 0
39
object.frame++
40
end if
41
42
if object.frame < 5
43
Sin(object.xpos, object.angle)
44
object.xpos <<= 9
45
object.xpos += object.drawPos.x
46
object.angle += 4
47
object.angle &= 0x1FF
48
else
49
temp0 = object.propertyValue
50
temp0 *= 3
51
object.frame += temp0
52
#platform: USE_STANDALONE
53
object.drawPos.x = object.ixpos
54
object.drawPos.x -= screen.xoffset
55
object.drawPos.y = object.iypos
56
object.drawPos.y -= screen.yoffset
57
#endplatform
58
object.state++
59
end if
60
break
61
62
case COUNTDOWNBUBBLE_FRAME1
63
object.timer++
64
if object.timer == 6
65
object.timer = 0
66
object.frame++
67
object.state++
68
end if
69
break
70
71
case COUNTDOWNBUBBLE_FRAME2
72
object.timer++
73
if object.timer == 6
74
object.timer = 0
75
object.frame++
76
object.state++
77
end if
78
break
79
80
case COUNTDOWNBUBBLE_FRAME3
81
object.timer++
82
if object.timer == 8
83
object.timer = 0
84
object.frame--
85
object.state++
86
end if
87
break
88
89
case COUNTDOWNBUBBLE_FRAME4
90
object.timer++
91
if object.timer == 8
92
object.timer = 0
93
object.frame++
94
object.state++
95
end if
96
break
97
98
case COUNTDOWNBUBBLE_FRAME5
99
object.timer++
100
if object.timer == 8
101
object.timer = 0
102
object.frame--
103
object.state++
104
end if
105
break
106
107
case COUNTDOWNBUBBLE_FRAME6
108
object.timer++
109
if object.timer == 8
110
object.timer = 0
111
object.frame++
112
object.state++
113
end if
114
break
115
116
case COUNTDOWNBUBBLE_FRAME7
117
object.timer++
118
if object.timer == 8
119
object.timer = 0
120
object.frame--
121
object.state++
122
end if
123
break
124
125
case COUNTDOWNBUBBLE_FRAME8
126
object.timer++
127
if object.timer == 9
128
object.type = TypeName[Blank Object]
129
end if
130
break
131
132
end switch
133
end event
134
135
136
event ObjectDraw
137
#platform: USE_ORIGINS
138
temp0 = screen.currentID
139
if temp0 == object.drawScreenID
140
if object.state == COUNTDOWNBUBBLE_FRAME1
141
if object.timer == 0
142
object.drawPos.x = object.ixpos
143
object.drawPos.x -= screen.xoffset
144
object.drawPos.y = object.iypos
145
object.drawPos.y -= screen.yoffset
146
end if
147
end if
148
if game.playMode == BOOT_PLAYMODE_MIRRORING
149
object.direction = FLIP_X
150
if object.state == COUNTDOWNBUBBLE_SETUP
151
DrawSpriteFX(object.propertyValue, FX_FLIP, object.xpos, object.ypos)
152
else
153
DrawSpriteScreenFX(object.frame, FX_FLIP, object.drawPos.x, object.drawPos.y)
154
end if
155
else
156
if object.state == COUNTDOWNBUBBLE_SETUP
157
DrawSprite(object.frame)
158
else
159
DrawSpriteScreenXY(object.frame, object.drawPos.x, object.drawPos.y)
160
end if
161
end if
162
end if
163
#endplatform
164
165
#platform: USE_STANDALONE
166
if object.state == COUNTDOWNBUBBLE_SETUP
167
DrawSprite(object.frame)
168
else
169
DrawSpriteScreenXY(object.frame, object.drawPos.x, object.drawPos.y)
170
end if
171
#endplatform
172
end event
173
174
175
event ObjectStartup
176
// Likely an oversignt made when copying scripts from CPZ - for some reason the CPZ sheet is loaded despite this being ARZ
177
// The ARZ version of this sheet exists too, but it remains unused because of this
178
LoadSpriteSheet("CPZ/Objects3.gif")
179
180
SpriteFrame(-2, -2, 4, 4, 157, 2)
181
SpriteFrame(-3, -3, 6, 6, 156, 9)
182
SpriteFrame(-4, -4, 8, 8, 155, 17)
183
SpriteFrame(-6, -6, 12, 12, 209, 36)
184
SpriteFrame(-8, -8, 16, 16, 207, 51)
185
SpriteFrame(-8, -12, 16, 24, 1, 22)
186
SpriteFrame(-8, -10, 16, 20, 1, 1)
187
SpriteFrame(0, 0, 1, 1, 1, 1)
188
SpriteFrame(-8, -12, 16, 24, 35, 22)
189
SpriteFrame(-8, -10, 16, 20, 18, 1)
190
SpriteFrame(0, 0, 1, 1, 1, 1)
191
SpriteFrame(-8, -12, 16, 24, 18, 22)
192
SpriteFrame(-8, -10, 16, 20, 35, 1)
193
SpriteFrame(0, 0, 1, 1, 1, 1)
194
SpriteFrame(-8, -12, 16, 24, 18, 22)
195
SpriteFrame(-8, -10, 16, 20, 52, 1)
196
SpriteFrame(0, 0, 1, 1, 1, 1)
197
SpriteFrame(-8, -12, 16, 24, 35, 22)
198
SpriteFrame(-8, -10, 16, 20, 69, 1)
199
SpriteFrame(0, 0, 1, 1, 1, 1)
200
SpriteFrame(-8, -12, 16, 24, 52, 22)
201
SpriteFrame(-8, -10, 16, 20, 86, 1)
202
SpriteFrame(0, 0, 1, 1, 1, 1)
203
end event
204
205
206
// ========================
207
// Editor Events
208
// ========================
209
210
event RSDKDraw
211
DrawSprite(0)
212
end event
213
214
215
event RSDKLoad
216
LoadSpriteSheet("ARZ/Objects3.gif")
217
SpriteFrame(-2, -2, 4, 4, 157, 2)
218
219
// Although used by this object, it's not to be set from the editor
220
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
221
end event
222
223