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/HPZ/PipeValve.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Pipe Valve 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.value0 : object.timer
13
14
// States
15
private alias 0 : PIPEVALVE_INACTIVE
16
private alias 1 : PIPEVALVE_ACTIVE
17
18
// Player Aliases
19
private alias object.state : player.state
20
private alias object.xpos : player.xpos
21
private alias object.ypos : player.ypos
22
private alias object.xvel : player.xvel
23
private alias object.yvel : player.yvel
24
private alias object.speed : player.speed
25
private alias object.gravity : player.gravity
26
private alias object.animation : player.animation
27
28
private alias object.value1 : player.timer
29
30
31
// ========================
32
// Function Declarations
33
// ========================
34
35
reserve function PipeValve_DebugDraw
36
reserve function PipeValve_DebugSpawn
37
38
39
// ========================
40
// Function Definitions
41
// ========================
42
43
private function PipeValve_DebugDraw
44
DrawSprite(2)
45
DrawSprite(0)
46
end function
47
48
49
private function PipeValve_DebugSpawn
50
CreateTempObject(TypeName[Pipe Valve], 0, object.xpos, object.ypos)
51
object[tempObjectPos].drawOrder = 5
52
end function
53
54
55
// ========================
56
// Events
57
// ========================
58
59
event ObjectUpdate
60
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
61
BoxCollisionTest(C_TOUCH, object.entityPos, -16, -8, 16, 8, currentPlayer, 0, 0, 0, 0)
62
if checkResult == true
63
#platform: USE_STANDALONE
64
player[currentPlayer].state = Player_State_Air
65
#endplatform
66
#platform: USE_ORIGINS
67
player[currentPlayer].state = Player_State_Air_NoDropDash
68
#endplatform
69
player[currentPlayer].gravity = GRAVITY_AIR
70
player[currentPlayer].animation = ANI_WATERSLIDE
71
player[currentPlayer].yvel = -0x100000
72
player[currentPlayer].xpos = object.xpos
73
player[currentPlayer].ypos = object.ypos
74
player[currentPlayer].speed = 0
75
player[currentPlayer].xvel = 0
76
player[currentPlayer].timer = 0
77
78
if object.state == PIPEVALVE_INACTIVE
79
object.state = PIPEVALVE_ACTIVE
80
CreateTempObject(TypeName[Water Geyser], 0, object.xpos, object.ypos)
81
PlaySfx(SfxName[Water Geyser], false)
82
end if
83
end if
84
next
85
86
if object.state == PIPEVALVE_ACTIVE
87
object.timer++
88
if object.timer == 64
89
object.timer = 0
90
object.state = PIPEVALVE_INACTIVE
91
end if
92
93
StopSfx(SfxName[Water Splash])
94
end if
95
96
object.frame = object.timer
97
object.frame >>= 2
98
object.frame &= 1
99
end event
100
101
102
event ObjectDraw
103
DrawSprite(2)
104
DrawSprite(object.frame)
105
end event
106
107
108
event ObjectStartup
109
LoadSpriteSheet("HPZ/Objects.gif")
110
SpriteFrame(-12, -12, 24, 24, 418, 1)
111
SpriteFrame(-12, -12, 24, 24, 418, 26)
112
SpriteFrame(-16, -16, 32, 32, 443, 1)
113
114
foreach (TypeName[Pipe Valve], arrayPos0, ALL_ENTITIES)
115
object[arrayPos0].drawOrder = 5
116
next
117
118
SetTableValue(TypeName[Pipe Valve], DebugMode_ObjCount, DebugMode_TypesTable)
119
SetTableValue(PipeValve_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
120
SetTableValue(PipeValve_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
121
DebugMode_ObjCount++
122
end event
123
124
125
// ========================
126
// Editor Events
127
// ========================
128
129
event RSDKDraw
130
DrawSprite(0)
131
end event
132
133
134
event RSDKLoad
135
LoadSpriteSheet("HPZ/Objects.gif")
136
SpriteFrame(-12, -12, 24, 24, 418, 1)
137
SpriteFrame(-12, -12, 24, 24, 418, 26)
138
SpriteFrame(-16, -16, 32, 32, 443, 1)
139
140
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
141
end event
142
143