Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 2/Scripts/EHZ/Waterfall.txt
1479 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
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
private alias object.value17 : debugMode.currentSelection
13
14
15
// ========================
16
// Function Declarations
17
// ========================
18
19
reserve function Waterfall_DebugDraw
20
reserve function Waterfall_DebugSpawn
21
22
23
// ========================
24
// Static Values
25
// ========================
26
27
private value Waterfall_startDebugID = 0
28
29
30
// ========================
31
// Function Definitions
32
// ========================
33
34
private function Waterfall_DebugDraw
35
temp0 = debugMode[0].currentSelection
36
temp0 -= Waterfall_startDebugID
37
DrawSprite(temp0)
38
end function
39
40
41
private function Waterfall_DebugSpawn
42
temp0 = debugMode[0].currentSelection
43
temp0 -= Waterfall_startDebugID
44
CreateTempObject(TypeName[Waterfall], temp0, object.xpos, object.ypos)
45
object[tempObjectPos].inkEffect = INK_ALPHA
46
object[tempObjectPos].alpha = 0xA0
47
object[tempObjectPos].drawOrder = 5
48
end function
49
50
51
// ========================
52
// Events
53
// ========================
54
55
event ObjectUpdate
56
// Empty :(
57
end event
58
59
60
event ObjectDraw
61
DrawSpriteFX(object.propertyValue, FX_INK, object.xpos, object.ypos)
62
end event
63
64
65
event ObjectStartup
66
CheckCurrentStageFolder("Zone01")
67
if checkResult == true
68
LoadSpriteSheet("EHZ/Objects.gif")
69
70
// Top 1 Frame
71
SpriteFrame(-32, -128, 64, 16, 192, 0)
72
73
// Huge with Top Frame
74
SpriteFrame(-32, -128, 64, 256, 192, 0)
75
76
// Blank 1 Frame
77
SpriteFrame(0, 0, 1, 1, 1, 1)
78
79
// Small Frame
80
SpriteFrame(-32, -32, 64, 64, 192, 16)
81
82
// Blank 2 Frame
83
SpriteFrame(0, 0, 1, 1, 1, 1)
84
85
// Medium Frame
86
SpriteFrame(-32, -64, 64, 160, 192, 16)
87
88
// Top 2 Frame
89
SpriteFrame(-32, -128, 64, 16, 192, 0)
90
91
// Medium Higher with Top Frame
92
SpriteFrame(-32, -128, 64, 192, 192, 0)
93
94
// Medium 2 Frame
95
SpriteFrame(-32, -32, 64, 96, 192, 64)
96
else
97
LoadSpriteSheet("MBZ/Objects.gif")
98
99
// Top 1 Frame
100
SpriteFrame(-32, -128, 64, 16, 1, 435)
101
102
// Huge with Top Frame
103
SpriteFrame(-32, -128, 64, 256, 1, 435)
104
105
// Blank 1 Frame
106
SpriteFrame(0, 0, 1, 1, 1, 1)
107
108
// Small Frame
109
SpriteFrame(-32, -32, 64, 64, 1, 451)
110
111
// Blank 2 Frame
112
SpriteFrame(0, 0, 1, 1, 1, 1)
113
114
// Medium Frame
115
SpriteFrame(-32, -64, 64, 160, 1, 451)
116
117
// Top 2 Frame
118
SpriteFrame(-32, -128, 64, 16, 1, 435)
119
120
// Medium Higher with Top Frame
121
SpriteFrame(-32, -128, 64, 192, 1, 435)
122
123
// Medium 2 Frame
124
SpriteFrame(-32, -32, 64, 96, 1, 499)
125
end if
126
127
// (yeah these names are kinda weird but hey, if that's what they're officially called in S2 3.0.1's leftover dev files then we may as well stick with them)
128
129
foreach (TypeName[Waterfall], arrayPos0, ALL_ENTITIES)
130
object[arrayPos0].inkEffect = INK_ALPHA
131
object[arrayPos0].alpha = 0xA0
132
object[arrayPos0].drawOrder = 5
133
next
134
135
temp0 = 0
136
Waterfall_startDebugID = DebugMode_ObjCount
137
while temp0 < 8
138
SetTableValue(TypeName[Waterfall], DebugMode_ObjCount, DebugMode_TypesTable)
139
SetTableValue(Waterfall_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
140
SetTableValue(Waterfall_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
141
DebugMode_ObjCount++
142
temp0++
143
loop
144
end event
145
146
147
// ========================
148
// Editor Events
149
// ========================
150
151
event RSDKEdit
152
if editor.returnVariable == true
153
switch editor.variableID
154
case EDIT_VAR_PROPVAL // property value
155
checkResult = object.propertyValue
156
checkResult %= 9
157
break
158
159
end switch
160
else
161
switch editor.variableID
162
case EDIT_VAR_PROPVAL // property value
163
object.propertyValue = editor.variableValue
164
object.propertyValue %= 9
165
break
166
167
end switch
168
end if
169
end event
170
171
172
event RSDKDraw
173
object.inkEffect = INK_ALPHA
174
object.alpha = 0xA0
175
DrawSpriteFX(object.propertyValue, FX_INK, object.xpos, object.ypos)
176
end event
177
178
179
event RSDKLoad
180
CheckCurrentStageFolder("Zone01")
181
if checkResult == true
182
LoadSpriteSheet("EHZ/Objects.gif")
183
SpriteFrame(-32, -128, 64, 16, 192, 0)
184
SpriteFrame(-32, -128, 64, 256, 192, 0)
185
SpriteFrame(0, 0, 1, 1, 1, 1)
186
SpriteFrame(-32, -32, 64, 64, 192, 16)
187
SpriteFrame(0, 0, 1, 1, 1, 1)
188
SpriteFrame(-32, -64, 64, 160, 192, 16)
189
SpriteFrame(-32, -128, 64, 16, 192, 0)
190
SpriteFrame(-32, -128, 64, 192, 192, 0)
191
SpriteFrame(-32, -32, 64, 96, 192, 64)
192
else
193
LoadSpriteSheet("MBZ/Objects.gif")
194
SpriteFrame(-32, -128, 64, 16, 1, 435)
195
SpriteFrame(-32, -128, 64, 256, 1, 435)
196
SpriteFrame(0, 0, 1, 1, 1, 1)
197
SpriteFrame(-32, -32, 64, 64, 1, 451)
198
SpriteFrame(0, 0, 1, 1, 1, 1)
199
SpriteFrame(-32, -64, 64, 160, 1, 451)
200
SpriteFrame(-32, -128, 64, 16, 1, 435)
201
SpriteFrame(-32, -128, 64, 192, 1, 435)
202
SpriteFrame(-32, -32, 64, 96, 1, 499)
203
end if
204
205
SetVariableAlias(ALIAS_VAR_PROPVAL, "frameID")
206
end event
207
208