Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R4/CountdownBubble.txt
1319 views
1
//-------------Sonic CD Countdown Bubble 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.Angle
8
#alias Object.Value2 : Object.XDrawPos
9
#alias Object.Value3 : Object.YVelocity
10
#alias Object.Value4 : Object.YDrawPos
11
12
// States
13
#alias 0 : COUNTDOWNBUBBLE_SETUP
14
#alias 1 : COUNTDOWNBUBBLE_FRAME_1
15
#alias 2 : COUNTDOWNBUBBLE_FRAME_2
16
#alias 3 : COUNTDOWNBUBBLE_FRAME_3
17
#alias 4 : COUNTDOWNBUBBLE_FRAME_4
18
#alias 5 : COUNTDOWNBUBBLE_FRAME_5
19
#alias 6 : COUNTDOWNBUBBLE_FRAME_6
20
#alias 7 : COUNTDOWNBUBBLE_FRAME_7
21
#alias 8 : COUNTDOWNBUBBLE_FRAME_8
22
23
24
sub ObjectMain
25
switch Object.State
26
case COUNTDOWNBUBBLE_SETUP
27
Object.YPos += Object.YVelocity
28
29
Object.Timer++
30
if Object.Timer > 6
31
Object.Timer = 0
32
Object.Frame++
33
end if
34
35
if Object.Frame < 4
36
Sin(Object.XPos, Object.Angle)
37
Object.XPos <<= 9
38
Object.XPos += Object.XDrawPos
39
40
Object.Angle += 4
41
Object.Angle &= 511
42
else
43
TempValue0 = Object.PropertyValue
44
TempValue0 *= 3
45
Object.Frame += TempValue0
46
47
Object.XDrawPos = Object.iXPos
48
Object.XDrawPos -= Screen.XOffset
49
50
Object.YDrawPos = Object.iYPos
51
Object.YDrawPos -= Screen.YOffset
52
53
Object.State++
54
end if
55
break
56
57
case COUNTDOWNBUBBLE_FRAME_1
58
Object.Timer++
59
if Object.Timer == 6
60
Object.Timer = 0
61
Object.Frame++
62
Object.State++
63
end if
64
break
65
66
case COUNTDOWNBUBBLE_FRAME_2
67
Object.Timer++
68
if Object.Timer == 6
69
Object.Timer = 0
70
Object.Frame++
71
Object.State++
72
end if
73
break
74
75
case COUNTDOWNBUBBLE_FRAME_3
76
Object.Timer++
77
if Object.Timer == 8
78
Object.Timer = 0
79
Object.Frame--
80
Object.State++
81
end if
82
break
83
84
case COUNTDOWNBUBBLE_FRAME_4
85
Object.Timer++
86
if Object.Timer == 8
87
Object.Timer = 0
88
Object.Frame++
89
Object.State++
90
end if
91
break
92
93
case COUNTDOWNBUBBLE_FRAME_5
94
Object.Timer++
95
if Object.Timer == 8
96
Object.Timer = 0
97
Object.Frame--
98
Object.State++
99
end if
100
break
101
102
case COUNTDOWNBUBBLE_FRAME_6
103
Object.Timer++
104
if Object.Timer == 8
105
Object.Timer = 0
106
Object.Frame++
107
Object.State++
108
end if
109
break
110
111
case COUNTDOWNBUBBLE_FRAME_7
112
Object.Timer++
113
if Object.Timer == 8
114
Object.Timer = 0
115
Object.Frame--
116
Object.State++
117
end if
118
break
119
120
case COUNTDOWNBUBBLE_FRAME_8
121
Object.Timer++
122
if Object.Timer == 9
123
Object.Type = TypeName[Blank Object]
124
end if
125
break
126
127
end switch
128
end sub
129
130
131
sub ObjectDraw
132
#platform: Use_Origins
133
if game.playMode == BOOT_PLAYMODE_MIRRORING
134
Object.Direction = FACING_LEFT
135
if Object.State == COUNTDOWNBUBBLE_SETUP
136
DrawSpriteFX(Object.Frame, FX_FLIP, Object.XPos, Object.YPos)
137
else
138
DrawSpriteScreenFX(Object.Frame, FX_FLIP, Object.XDrawPos, Object.YDrawPos)
139
end if
140
else
141
if Object.State == COUNTDOWNBUBBLE_SETUP
142
DrawSprite(Object.Frame)
143
else
144
DrawSpriteScreenXY(Object.Frame, Object.XDrawPos, Object.YDrawPos)
145
end if
146
end if
147
#endplatform
148
149
#platform: Use_Standalone
150
if Object.State == COUNTDOWNBUBBLE_SETUP
151
DrawSprite(Object.Frame)
152
else
153
DrawSpriteScreenXY(Object.Frame, Object.XDrawPos, Object.YDrawPos)
154
end if
155
#endplatform
156
end sub
157
158
159
sub ObjectStartup
160
LoadSpriteSheet("R4/Objects2.gif")
161
162
// Small Bubbles
163
SpriteFrame(-4, -4, 8, 8, 35, 135) // #0 - Small Bubble 1
164
SpriteFrame(-4, -4, 8, 8, 44, 135) // #1 - Small Bubble 2
165
SpriteFrame(-4, -4, 8, 8, 53, 135) // #2 - Small Bubble 3
166
167
// Countdown Bubble
168
SpriteFrame(-8, -8, 16, 16, 101, 210) // #3 - Bubble make number
169
170
SpriteFrame(-8, -12, 16, 24, 101, 185) // #4 - Bubble make number 5
171
SpriteFrame(-8, -12, 16, 24, 67, 135) // #5 - Bubble 5
172
SpriteFrame(-8, -12, 0, 0, 67, 135) // #6 - Bubble 5 blink
173
174
SpriteFrame(-8, -12, 16, 24, 84, 210) // #7 - Bubble make number 4
175
SpriteFrame(-8, -12, 16, 24, 84, 135) // #8 - Bubble 4
176
SpriteFrame(-8, -12, 0, 0, 67, 135) // #9 - Bubble 4 blink
177
178
SpriteFrame(-8, -12, 16, 24, 67, 210) // #10 - Bubble make number 3
179
SpriteFrame(-8, -12, 16, 24, 67, 160) // #11 - Bubble 3
180
SpriteFrame(-8, -12, 0, 0, 67, 135) // #12 - Bubble 3 blink
181
182
SpriteFrame(-8, -12, 16, 24, 84, 210) // #13 - Bubble make number 2
183
SpriteFrame(-8, -12, 16, 24, 84, 160) // #14 - Bubble 2
184
SpriteFrame(-8, -12, 0, 0, 67, 135) // #15 - Bubble 2 blink
185
186
SpriteFrame(-8, -12, 16, 24, 84, 210) // #16 - Bubble make number 1
187
SpriteFrame(-8, -12, 16, 24, 67, 185) // #17 - Bubble 1
188
SpriteFrame(-8, -12, 0, 0, 67, 135) // #18 - Bubble 1 blink
189
190
SpriteFrame(-8, -12, 16, 24, 101, 160) // #19 - Bubble make number 0
191
SpriteFrame(-8, -12, 16, 24, 84, 185) // #20 - Bubble 0
192
SpriteFrame(-8, -12, 0, 0, 67, 135) // #21 - Bubble 0 blink
193
end sub
194
195
196
// ========================
197
// Editor Subs
198
// ========================
199
200
sub RSDKDraw
201
DrawSprite(0)
202
end sub
203
204
205
sub RSDKLoad
206
LoadSpriteSheet("Global/Display.gif")
207
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
208
209
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
210
end sub
211
212