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/Waterfall.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Waterfall Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
// Player Aliases
13
private alias object.value17 : debugMode.currentSelection
14
15
16
// ========================
17
// Function Declarations
18
// ========================
19
20
reserve function Waterfall_DebugDraw
21
reserve function Waterfall_DebugSpawn
22
23
24
// ========================
25
// Static Values
26
// ========================
27
28
private value Waterfall_startDebugID = 0
29
30
31
// ========================
32
// Function Definitions
33
// ========================
34
35
private function Waterfall_DebugDraw
36
temp0 = debugMode[0].currentSelection
37
temp0 -= Waterfall_startDebugID
38
39
DrawSpriteFX(temp0, FX_FLIP, object.xpos, object.ypos)
40
end function
41
42
43
private function Waterfall_DebugSpawn
44
temp0 = debugMode[0].currentSelection
45
temp0 -= Waterfall_startDebugID
46
47
CreateTempObject(TypeName[Waterfall], temp0, object.xpos, object.ypos)
48
object[tempObjectPos].direction = object.direction
49
object[tempObjectPos].drawOrder = 4
50
if object[tempObjectPos].propertyValue == 9
51
object[tempObjectPos].frame = 9
52
end if
53
end function
54
55
56
// ========================
57
// Events
58
// ========================
59
60
event ObjectUpdate
61
if object.propertyValue == 9
62
if object.state == 1
63
temp0 = stage.waterLevel
64
temp0 -= 16
65
object.iypos = temp0
66
end if
67
68
object.animationTimer++
69
if object.animationTimer == 6
70
object.animationTimer = 0
71
object.frame++
72
if object.frame == 12
73
object.frame = 9
74
end if
75
end if
76
end if
77
end event
78
79
80
event ObjectDraw
81
if object.propertyValue < 9
82
DrawSpriteFX(object.propertyValue, FX_FLIP, object.xpos, object.ypos)
83
else
84
DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)
85
end if
86
end event
87
88
89
event ObjectStartup
90
LoadSpriteSheet("LZ/Objects.gif")
91
SpriteFrame(-5, -16, 13, 32, 191, 140)
92
SpriteFrame(-10, -4, 22, 12, 61, 38)
93
SpriteFrame(-6, -4, 14, 12, 117, 90)
94
SpriteFrame(0, -4, 8, 12, 132, 90)
95
SpriteFrame(-6, -4, 14, 12, 117, 103)
96
SpriteFrame(0, -4, 8, 12, 132, 103)
97
SpriteFrame(0, -4, 8, 12, 191, 76)
98
SpriteFrame(-8, -16, 16, 32, 240, 223)
99
SpriteFrame(-24, -8, 46, 16, 158, 173)
100
SpriteFrame(-20, -16, 39, 32, 118, 161)
101
SpriteFrame(-22, -12, 41, 28, 117, 194)
102
SpriteFrame(-24, -16, 47, 32, 159, 190)
103
104
foreach (TypeName[Waterfall], arrayPos0, ALL_ENTITIES)
105
object[arrayPos0].drawOrder = 4
106
if object[arrayPos0].propertyValue == 9
107
object[arrayPos0].frame = 9
108
end if
109
next
110
111
temp0 = 0
112
Waterfall_startDebugID = DebugMode_ObjCount
113
while temp0 < 10
114
SetTableValue(TypeName[Waterfall], DebugMode_ObjCount, DebugMode_TypesTable)
115
SetTableValue(Waterfall_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
116
SetTableValue(Waterfall_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
117
DebugMode_ObjCount++
118
temp0++
119
loop
120
end event
121
122
123
// ========================
124
// Editor Events
125
// ========================
126
127
event RSDKEdit
128
if editor.returnVariable == true
129
switch editor.variableID
130
case EDIT_VAR_PROPVAL // property value
131
checkResult = object.propertyValue
132
checkResult %= 10
133
break
134
135
case 0 // frameID
136
checkResult = object.propertyValue
137
checkResult %= 10
138
break
139
140
case 0 // matchSurface
141
checkResult = object.state
142
break
143
144
end switch
145
else
146
switch editor.variableID
147
case EDIT_VAR_PROPVAL // property value
148
object.propertyValue = editor.variableValue
149
object.propertyValue %= 10
150
break
151
152
case 0 // frameID
153
object.propertyValue = editor.variableValue
154
object.propertyValue %= 10
155
break
156
157
case 1 // matchSurface
158
CheckNotEqual(editor.variableValue, false)
159
object.state = checkResult
160
break
161
162
end switch
163
end if
164
end event
165
166
167
event RSDKDraw
168
DrawSpriteFX(object.propertyValue, FX_FLIP, object.xpos, object.ypos)
169
end event
170
171
172
event RSDKLoad
173
LoadSpriteSheet("LZ/Objects.gif")
174
SpriteFrame(-5, -16, 13, 32, 191, 140)
175
SpriteFrame(-10, -4, 22, 12, 61, 38)
176
SpriteFrame(-6, -4, 14, 12, 117, 90)
177
SpriteFrame(0, -4, 8, 12, 132, 90)
178
SpriteFrame(-6, -4, 14, 12, 117, 103)
179
SpriteFrame(0, -4, 8, 12, 132, 103)
180
SpriteFrame(0, -4, 8, 12, 191, 76)
181
SpriteFrame(-8, -16, 16, 32, 240, 223)
182
SpriteFrame(-24, -8, 46, 16, 158, 173)
183
SpriteFrame(-20, -16, 39, 32, 118, 161)
184
SpriteFrame(-22, -12, 41, 28, 117, 194)
185
SpriteFrame(-24, -16, 47, 32, 159, 190)
186
187
AddEditorVariable("frameID")
188
SetActiveVariable("frameID")
189
AddEnumVariable("Frame 0", 0)
190
AddEnumVariable("Frame 1", 1)
191
AddEnumVariable("Frame 2", 2)
192
AddEnumVariable("Frame 3", 3)
193
AddEnumVariable("Frame 4", 4)
194
AddEnumVariable("Frame 5", 5)
195
AddEnumVariable("Frame 6", 6)
196
AddEnumVariable("Frame 7", 7)
197
AddEnumVariable("Frame 8", 8)
198
AddEnumVariable("Splash", 9)
199
200
AddEditorVariable("matchSurface")
201
SetActiveVariable("matchSurface")
202
AddEnumVariable("False", 0)
203
AddEnumVariable("True", 1)
204
end event
205
206