Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 1/Scripts/LZ/CountdownBubble.txt
1481 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
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
16
private alias 0 : COUNTDOWNBUBBLE_SETUP
17
private alias 1 : COUNTDOWNBUBBLE_FRAME1
18
private alias 2 : COUNTDOWNBUBBLE_FRAME2
19
private alias 3 : COUNTDOWNBUBBLE_FRAME3
20
private alias 4 : COUNTDOWNBUBBLE_FRAME4
21
private alias 5 : COUNTDOWNBUBBLE_FRAME5
22
private alias 6 : COUNTDOWNBUBBLE_FRAME6
23
private alias 7 : COUNTDOWNBUBBLE_FRAME7
24
private alias 8 : COUNTDOWNBUBBLE_FRAME8
25
26
27
// ========================
28
// Events
29
// ========================
30
31
event ObjectUpdate
32
switch object.state
33
case COUNTDOWNBUBBLE_SETUP
34
object.ypos += object.yvel
35
object.timer++
36
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
object.drawPos.x = object.ixpos
53
object.drawPos.x -= screen.xoffset
54
object.drawPos.y = object.iypos
55
object.drawPos.y -= screen.yoffset
56
object.state++
57
end if
58
break
59
60
case COUNTDOWNBUBBLE_FRAME1
61
object.timer++
62
if object.timer == 6
63
object.timer = 0
64
object.frame++
65
object.state++
66
end if
67
break
68
69
case COUNTDOWNBUBBLE_FRAME2
70
object.timer++
71
if object.timer == 6
72
object.timer = 0
73
object.frame++
74
object.state++
75
end if
76
break
77
78
case COUNTDOWNBUBBLE_FRAME3
79
object.timer++
80
if object.timer == 8
81
object.timer = 0
82
object.frame--
83
object.state++
84
end if
85
break
86
87
case COUNTDOWNBUBBLE_FRAME4
88
object.timer++
89
if object.timer == 8
90
object.timer = 0
91
object.frame++
92
object.state++
93
end if
94
break
95
96
case COUNTDOWNBUBBLE_FRAME5
97
object.timer++
98
if object.timer == 8
99
object.timer = 0
100
object.frame--
101
object.state++
102
end if
103
break
104
105
case COUNTDOWNBUBBLE_FRAME6
106
object.timer++
107
if object.timer == 8
108
object.timer = 0
109
object.frame++
110
object.state++
111
end if
112
break
113
114
case COUNTDOWNBUBBLE_FRAME7
115
object.timer++
116
if object.timer == 8
117
object.timer = 0
118
object.frame--
119
object.state++
120
end if
121
break
122
123
case COUNTDOWNBUBBLE_FRAME8
124
object.timer++
125
if object.timer == 9
126
object.type = TypeName[Blank Object]
127
end if
128
break
129
130
end switch
131
end event
132
133
134
event ObjectDraw
135
#platform: USE_ORIGINS
136
if game.playMode == BOOT_PLAYMODE_MIRRORING
137
object.direction = FLIP_X
138
if object.state == COUNTDOWNBUBBLE_SETUP
139
DrawSpriteFX(object.propertyValue, FX_FLIP, object.xpos, object.ypos)
140
else
141
DrawSpriteScreenFX(object.frame, FX_FLIP, object.drawPos.x, object.drawPos.y)
142
end if
143
else
144
if object.state == COUNTDOWNBUBBLE_SETUP
145
DrawSprite(object.frame)
146
else
147
DrawSpriteScreenXY(object.frame, object.drawPos.x, object.drawPos.y)
148
end if
149
end if
150
#endplatform
151
152
#platform: USE_STANDALONE
153
if object.state == COUNTDOWNBUBBLE_SETUP
154
DrawSprite(object.frame)
155
else
156
DrawSpriteScreenXY(object.frame, object.drawPos.x, object.drawPos.y)
157
end if
158
#endplatform
159
end event
160
161
162
event ObjectStartup
163
LoadSpriteSheet("LZ/Objects.gif")
164
165
// Sprite frames
166
SpriteFrame(-2, -2, 4, 4, 61, 1)
167
SpriteFrame(-3, -3, 6, 6, 61, 6)
168
SpriteFrame(-4, -4, 8, 8, 68, 4)
169
SpriteFrame(-6, -6, 12, 12, 77, 0)
170
SpriteFrame(-8, -8, 16, 16, 90, 1)
171
SpriteFrame(-8, -12, 16, 24, 136, 34)
172
SpriteFrame(-8, -10, 16, 20, 204, 1)
173
SpriteFrame(-8, -10, 0, 0, 204, 1)
174
SpriteFrame(-8, -12, 16, 24, 170, 34)
175
SpriteFrame(-8, -10, 16, 20, 221, 1)
176
SpriteFrame(-8, -10, 0, 0, 221, 1)
177
SpriteFrame(-8, -12, 16, 24, 153, 34)
178
SpriteFrame(-8, -10, 16, 20, 238, 1)
179
SpriteFrame(-8, -10, 0, 0, 238, 1)
180
SpriteFrame(-8, -12, 16, 24, 153, 34)
181
SpriteFrame(-8, -10, 16, 20, 187, 22)
182
SpriteFrame(-8, -10, 0, 0, 187, 22)
183
SpriteFrame(-8, -12, 16, 24, 170, 34)
184
SpriteFrame(-8, -10, 16, 20, 204, 22)
185
SpriteFrame(-8, -10, 0, 0, 204, 22)
186
SpriteFrame(-8, -12, 16, 24, 119, 34)
187
SpriteFrame(-8, -10, 16, 20, 187, 1)
188
SpriteFrame(-8, -10, 0, 0, 187, 1)
189
end event
190
191
192
// ========================
193
// Editor Events
194
// ========================
195
196
event RSDKDraw
197
DrawSprite(0)
198
end event
199
200
201
event RSDKLoad
202
LoadSpriteSheet("LZ/Objects.gif")
203
SpriteFrame(-2, -2, 4, 4, 61, 1)
204
205
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
206
end event
207
208