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