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/WFZ/EggmanBarrier.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Eggman Barrier 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 : WFZEGGMANBARRIER_ACTIVATE
16
private alias 1 : WFZEGGMANBARRIER_ACTIVE
17
private alias 2 : WFZEGGMANBARRIER_DEACTIVATE
18
19
// Player Aliases
20
private alias object.xpos : player.xpos
21
private alias object.xvel : player.xvel
22
private alias object.speed : player.speed
23
private alias object.collisionLeft : player.collisionLeft
24
private alias object.collisionRight : player.collisionRight
25
26
27
// ========================
28
// Events
29
// ========================
30
31
event ObjectUpdate
32
switch object.state
33
case WFZEGGMANBARRIER_ACTIVATE
34
GetTableValue(temp0, 10, StageSetup_oscillationTable)
35
temp0 >>= 5
36
temp0 += 0x80
37
object.alpha += 4
38
if object.alpha >= temp0
39
object.state = WFZEGGMANBARRIER_ACTIVE
40
end if
41
break
42
43
case WFZEGGMANBARRIER_ACTIVE
44
GetTableValue(object.alpha, 10, StageSetup_oscillationTable)
45
object.alpha >>= 5
46
object.alpha += 0x80
47
48
if object.timer > 0
49
object.timer--
50
if object.timer == 0
51
object.state = WFZEGGMANBARRIER_DEACTIVATE
52
end if
53
end if
54
break
55
56
case WFZEGGMANBARRIER_DEACTIVATE
57
object.alpha -= 4
58
if object.alpha <= 0
59
object.type = TypeName[Blank Object]
60
end if
61
break
62
63
end switch
64
65
if object.propertyValue == 0
66
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
67
temp0 = player[currentPlayer].collisionLeft
68
temp0 <<= 16
69
temp0 += player[currentPlayer].xpos
70
temp1 = object.xpos
71
temp1 += 0x80000
72
if temp0 < temp1
73
player[currentPlayer].xvel = 0
74
player[currentPlayer].speed = 0
75
player[currentPlayer].xpos = temp1
76
temp0 = player[currentPlayer].collisionLeft
77
temp0 <<= 16
78
player[currentPlayer].xpos -= temp0
79
end if
80
next
81
else
82
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
83
temp0 = player[currentPlayer].collisionRight
84
temp0 <<= 16
85
temp0 += player[currentPlayer].xpos
86
temp1 = object.xpos
87
temp1 -= 0x80000
88
if temp0 > temp1
89
player[currentPlayer].xvel = 0
90
player[currentPlayer].speed = 0
91
player[currentPlayer].xpos = temp1
92
temp0 = player[currentPlayer].collisionRight
93
temp0 <<= 16
94
player[currentPlayer].xpos -= temp0
95
end if
96
next
97
end if
98
end event
99
100
101
event ObjectDraw
102
DrawSpriteFX(0, FX_INK, object.xpos, object.ypos)
103
end event
104
105
106
event ObjectStartup
107
CheckCurrentStageFolder("Zone11")
108
if checkResult == true
109
LoadSpriteSheet("SCZ/Objects.gif")
110
SpriteFrame(-8, -64, 16, 128, 294, 1)
111
else
112
LoadSpriteSheet("MBZ/Objects.gif")
113
SpriteFrame(-8, -64, 16, 128, 463, 1)
114
end if
115
end event
116
117
118
// ========================
119
// Editor Events
120
// ========================
121
122
event RSDKEdit
123
if editor.returnVariable == true
124
switch editor.variableID
125
case EDIT_VAR_PROPVAL // property value
126
checkResult = object.propertyValue
127
break
128
129
case 0 // type
130
checkResult = object.propertyValue
131
break
132
133
end switch
134
else
135
switch editor.variableID
136
case EDIT_VAR_PROPVAL // property value
137
object.propertyValue = editor.variableValue
138
break
139
140
case 0 // type
141
object.propertyValue = editor.variableValue
142
break
143
144
end switch
145
end if
146
end event
147
148
149
event RSDKDraw
150
DrawSprite(0)
151
end event
152
153
154
event RSDKLoad
155
CheckCurrentStageFolder("Zone11")
156
if checkResult == true
157
LoadSpriteSheet("SCZ/Objects.gif")
158
SpriteFrame(-8, -64, 16, 128, 294, 1)
159
else
160
LoadSpriteSheet("MBZ/Objects.gif")
161
SpriteFrame(-8, -64, 16, 128, 463, 1)
162
end if
163
164
AddEditorVariable("type")
165
SetActiveVariable("type")
166
AddEnumVariable("Left Barrier", 0)
167
AddEnumVariable("Right Barrier", 1)
168
end event
169
170