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/SBZ/CutBridge.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Cutscene Bridge 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
private alias object.value1 : object.delay
14
15
private alias 0 : CUTBRIDGE_ACTIVE
16
private alias 1 : CUTBRIDGE_COLLAPSE
17
private alias 2 : CUTBRIDGE_COLLAPSED
18
private alias 3 : CUTBRIDGE_NONE
19
private alias 4 : CUTBRIDGE_TILEDELAY
20
private alias 5 : CUTBRIDGE_TILEFALL
21
22
// Player Aliases
23
private alias object.state : player.state
24
private alias object.gravity : player.gravity
25
private alias object.animation : player.animation
26
27
28
// ========================
29
// Events
30
// ========================
31
32
event ObjectUpdate
33
stage.newXBoundary1 = 8660
34
stage.newXBoundary1 -= screen.xcenter
35
36
temp0 = 8660
37
temp0 += screen.xcenter
38
39
if stage.newXBoundary2 > temp0
40
stage.newXBoundary2 = temp0
41
temp0 -= screen.xcenter
42
temp0 -= screen.xcenter
43
stage.newXBoundary1 = temp0
44
end if
45
46
object.priority = PRIORITY_ACTIVE
47
switch object.state
48
case CUTBRIDGE_ACTIVE
49
break
50
51
case CUTBRIDGE_COLLAPSE
52
if object.timer > 0
53
object.timer--
54
else
55
temp0 = object.xpos
56
temp0 -= 0x80000
57
temp1 = object.ypos
58
CreateTempObject(TypeName[Cutscene Bridge], 1, temp0, temp1)
59
object[tempObjectPos].state = CUTBRIDGE_TILEDELAY
60
object[tempObjectPos].delay = 2
61
temp0 += 0x100000
62
63
CreateTempObject(TypeName[Cutscene Bridge], 2, temp0, temp1)
64
object[tempObjectPos].state = CUTBRIDGE_TILEDELAY
65
object[tempObjectPos].delay = 3
66
temp0 -= 0x100000
67
temp1 += 0x100000
68
69
CreateTempObject(TypeName[Cutscene Bridge], 3, temp0, temp1)
70
object[tempObjectPos].state = CUTBRIDGE_TILEDELAY
71
object[tempObjectPos].delay = 0
72
temp0 += 0x100000
73
74
CreateTempObject(TypeName[Cutscene Bridge], 4, temp0, temp1)
75
object[tempObjectPos].state = CUTBRIDGE_TILEDELAY
76
object[tempObjectPos].delay = 1
77
78
PlaySfx(SfxName[Block Break], false)
79
object.state++
80
end if
81
break
82
83
case CUTBRIDGE_COLLAPSED
84
if object.timer < 4
85
object.timer++
86
else
87
object.timer = 0
88
object.state++
89
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
90
BoxCollisionTest(C_TOUCH, object.entityPos, -16, -10, 16, 8, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
91
if checkResult == true
92
if player[currentPlayer].gravity == GRAVITY_AIR
93
player[currentPlayer].animation = ANI_HURT
94
player[currentPlayer].state = Player_State_Hurt
95
end if
96
end if
97
next
98
end if
99
break
100
101
case CUTBRIDGE_NONE
102
break
103
104
case CUTBRIDGE_TILEDELAY
105
if object.timer < object.delay
106
object.timer++
107
else
108
object.timer = 0
109
object.state++
110
end if
111
break
112
113
case CUTBRIDGE_TILEFALL
114
object.ypos += object.yvel
115
object.yvel += 0x4000
116
if object.outOfBounds == true
117
object.type = TypeName[Blank Object]
118
end if
119
break
120
121
end switch
122
123
if object.state < CUTBRIDGE_NONE
124
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
125
BoxCollisionTest(C_PLATFORM, object.entityPos, -16, -8, 16, 8, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
126
next
127
end if
128
end event
129
130
131
event ObjectDraw
132
switch object.state
133
default
134
case CUTBRIDGE_COLLAPSED
135
case CUTBRIDGE_NONE
136
break
137
138
case CUTBRIDGE_ACTIVE
139
case CUTBRIDGE_COLLAPSE
140
DrawSprite(0)
141
break
142
143
case CUTBRIDGE_TILEDELAY
144
case CUTBRIDGE_TILEFALL
145
DrawSprite(object.propertyValue)
146
break
147
148
end switch
149
end event
150
151
152
event ObjectStartup
153
LoadSpriteSheet("SBZ/Objects.gif")
154
155
SpriteFrame(-16, -8, 32, 32, 457, 231)
156
SpriteFrame(-8, -8, 16, 16, 457, 231)
157
SpriteFrame(-8, -8, 16, 16, 473, 231)
158
SpriteFrame(-8, -8, 16, 16, 457, 247)
159
SpriteFrame(-8, -8, 16, 16, 473, 247)
160
end event
161
162
163
// ========================
164
// Editor Events
165
// ========================
166
167
event RSDKDraw
168
DrawSprite(0)
169
end event
170
171
172
event RSDKLoad
173
LoadSpriteSheet("SBZ/Objects.gif")
174
SpriteFrame(-16, -8, 32, 32, 457, 231)
175
176
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
177
end event
178
179