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/HTZ/LiftEnd.txt
1478 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Lift End Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Function Declarations
10
// ========================
11
12
reserve function LiftEnd_DebugDraw
13
reserve function LiftEnd_DebugSpawn
14
15
16
// ========================
17
// Function Definitions
18
// ========================
19
20
private function LiftEnd_DebugDraw
21
temp0 = object.direction
22
temp0 &= 1
23
DrawSprite(temp0)
24
end function
25
26
27
private function LiftEnd_DebugSpawn
28
CreateTempObject(TypeName[Lift End], 0, object.xpos, object.ypos)
29
object[tempObjectPos].drawOrder = 4
30
object[tempObjectPos].propertyValue = object.direction
31
object[tempObjectPos].propertyValue &= 1
32
end function
33
34
35
// ========================
36
// Events
37
// ========================
38
39
event ObjectDraw
40
DrawSprite(object.propertyValue)
41
end event
42
43
44
event ObjectStartup
45
CheckCurrentStageFolder("Zone05")
46
if checkResult == true
47
LoadSpriteSheet("HTZ/Objects.gif")
48
49
SpriteFrame(-8, -56, 16, 80, 174, 96) // Start Post - #0
50
SpriteFrame(-8, -54, 16, 78, 174, 177) // End Post - #1
51
SpriteFrame(-8, -24, 16, 16, 126, 123) // Start Ground Cover - #2
52
SpriteFrame(-9, -24, 16, 16, 108, 123) // End Ground Cover - #3
53
else
54
LoadSpriteSheet("MBZ/Objects.gif")
55
56
SpriteFrame(-8, -56, 16, 80, 34, 867) // Start Post - #0
57
SpriteFrame(-8, -54, 16, 78, 51, 869) // End Post - #1
58
59
// An odd set of frames
60
// While understandably empty, since MBZ doesn't have uneven ground to need these anyway,
61
// the data for these frames loosely aligns with HTZ's section of the MBZ sheet
62
SpriteFrame(-8, -24, 0, 0, 92, 888) // Start Ground Cover - #2
63
SpriteFrame(-9, -24, 0, 0, 92, 888) // End Ground Cover - #3
64
end if
65
66
foreach (TypeName[Lift End], arrayPos0, ALL_ENTITIES)
67
object[arrayPos0].drawOrder = 4
68
next
69
70
SetTableValue(TypeName[Lift End], DebugMode_ObjCount, DebugMode_TypesTable)
71
SetTableValue(LiftEnd_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
72
SetTableValue(LiftEnd_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
73
DebugMode_ObjCount++
74
end event
75
76
77
// ========================
78
// Editor Events
79
// ========================
80
81
event RSDKEdit
82
if editor.returnVariable == true
83
switch editor.variableID
84
case EDIT_VAR_PROPVAL // property value
85
checkResult = object.propertyValue
86
break
87
88
case 0 // displaySprite
89
checkResult = object.propertyValue
90
checkResult &= 3
91
break
92
93
end switch
94
else
95
switch editor.variableID
96
case EDIT_VAR_PROPVAL // property value
97
object.propertyValue = editor.variableValue
98
break
99
100
case 0 // displaySprite
101
object.propertyValue = editor.variableValue
102
object.propertyValue &= 3
103
break
104
105
end switch
106
end if
107
end event
108
109
110
event RSDKDraw
111
DrawSprite(object.propertyValue)
112
end event
113
114
115
event RSDKLoad
116
CheckCurrentStageFolder("Zone05")
117
if checkResult == true
118
LoadSpriteSheet("HTZ/Objects.gif")
119
SpriteFrame(-8, -56, 16, 80, 174, 96) // Start Post - #0
120
SpriteFrame(-8, -54, 16, 78, 174, 177) // End Post - #1
121
SpriteFrame(-8, -24, 16, 16, 126, 123) // Start Ground Cover - #2
122
SpriteFrame(-9, -24, 16, 16, 108, 123) // End Ground Cover - #3
123
else
124
LoadSpriteSheet("MBZ/Objects.gif")
125
SpriteFrame(-8, -56, 16, 80, 34, 867) // Start Post - #0
126
SpriteFrame(-8, -54, 16, 78, 51, 869) // End Post - #1
127
128
// May as well keep these last two frames anyway
129
SpriteFrame(-8, -24, 0, 0, 92, 888) // Start Ground Cover - #2
130
SpriteFrame(-9, -24, 0, 0, 92, 888) // End Ground Cover - #3
131
end if
132
133
AddEditorVariable("displaySprite")
134
SetActiveVariable("displaySprite")
135
AddEnumVariable("Start Post", 0)
136
AddEnumVariable("End Post", 1)
137
AddEnumVariable("Start Ground", 2)
138
AddEnumVariable("End Ground", 3)
139
end event
140
141