Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R3/Flower.txt
1319 views
1
//-----------------Sonic CD Flower 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
8
// States
9
#alias 0 : FLOWER_SEED_SPAWN
10
#alias 1 : FLOWER_SEED_FALL
11
12
#alias 2 : FLOWER_SEED_PLANTED_1
13
#alias 3 : FLOWER_SEED_PLANTED_2
14
#alias 4 : FLOWER_SEED_PLANTED_3
15
16
#alias 5 : FLOWER_ROOT_GROWTH_1
17
#alias 6 : FLOWER_ROOT_GROWTH_2
18
19
#alias 7 : FLOWER_ANIM_1
20
#alias 8 : FLOWER_ANIM_2
21
#alias 9 : FLOWER_ANIM_3
22
23
// Collision Sides
24
#alias 0 : CSIDE_FLOOR
25
26
27
sub ObjectMain
28
switch Object.State
29
case FLOWER_SEED_SPAWN
30
Object.Frame = 8
31
Object.Timer++
32
if Object.Timer == 20
33
Object.Timer = 0
34
Object.State++
35
end if
36
break
37
38
case FLOWER_SEED_FALL
39
Object.Frame = Object.Timer
40
Object.Frame >>= 2
41
42
Object.Timer++
43
Object.Timer &= 7
44
45
Object.YPos += 0x20000
46
ObjectTileCollision(CSIDE_FLOOR, 0, 8, 0) // Check if it touched the ground
47
if CheckResult == true
48
Object.YPos += 0x80000
49
Object.State++
50
Object.Timer = 0
51
Object.Frame = 2
52
end if
53
break
54
55
case FLOWER_SEED_PLANTED_1
56
Object.Timer++
57
if Object.Timer == 4
58
Object.Timer = 0
59
Object.State++
60
Object.Frame = 3
61
end if
62
break
63
64
case FLOWER_SEED_PLANTED_2
65
Object.Timer++
66
if Object.Timer == 4
67
Object.Timer = 0
68
Object.State++
69
Object.Frame = 2
70
end if
71
break
72
73
case FLOWER_SEED_PLANTED_3
74
Object.Timer++
75
if Object.Timer == 4
76
Object.Timer = 0
77
Object.State++
78
Object.Frame = 3
79
end if
80
break
81
82
case FLOWER_ROOT_GROWTH_1
83
Object.Timer++
84
if Object.Timer == 5
85
Object.Timer = 0
86
Object.State++
87
Object.Frame = 4
88
end if
89
break
90
91
case FLOWER_ROOT_GROWTH_2
92
Object.Timer++
93
if Object.Timer == 4
94
Object.Timer = 0
95
Object.State++
96
Object.Frame = 5
97
end if
98
break
99
100
case FLOWER_ANIM_1
101
Object.Timer++
102
if Object.Timer == 2
103
Object.Timer = 0
104
Object.State++
105
Object.Frame = 6
106
end if
107
break
108
109
case FLOWER_ANIM_2
110
Object.Timer++
111
if Object.Timer == 20
112
Object.Timer = 0
113
Object.State++
114
Object.Frame = 7
115
end if
116
break
117
118
case FLOWER_ANIM_3
119
Object.Timer++
120
if Object.Timer == 20
121
Object.Timer = 0
122
Object.State--
123
Object.Frame = 6
124
end if
125
break
126
127
end switch
128
end sub
129
130
131
sub ObjectDraw
132
DrawSprite(Object.Frame)
133
end sub
134
135
136
sub ObjectStartup
137
LoadSpriteSheet("R3/Objects2.gif")
138
139
SpriteFrame(-4, -8, 8, 16, 246, 25) // #0 - Seed Frame 0
140
SpriteFrame(-4, -8, 8, 16, 246, 42) // #1 - Seed Frame 1
141
142
SpriteFrame(-8, -16, 16, 16, 147, 67) // #2 - Planted Seed Frame 0
143
SpriteFrame(-8, -16, 16, 16, 164, 67) // #3 - Planted Seed Frame 1
144
145
SpriteFrame(-8, -16, 16, 16, 1, 50) // #4 - Flower Growth Frame 0
146
SpriteFrame(-12, -24, 24, 24, 1, 25) // #5 - Flower Growth Frame 1
147
148
SpriteFrame(-12, -48, 24, 48, 1, 1) // #6 - Flower Frame 0
149
SpriteFrame(-12, -48, 24, 48, 26, 1) // #7 - Flower Frame 1
150
151
SpriteFrame(0, 0, 0, 0, 0, 0) // #8 - Cheat Sprite
152
end sub
153
154
155
// ========================
156
// Editor Subs
157
// ========================
158
159
sub RSDKDraw
160
DrawSprite(0)
161
end sub
162
163
164
sub RSDKLoad
165
LoadSpriteSheet("R3/Objects2.gif")
166
167
SpriteFrame(-4, -8, 8, 16, 246, 25) // #0 - Seed
168
169
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
170
end sub
171
172