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