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/TubeCover.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Tube Cover 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.offset.y
14
15
private alias 0 : TUBECOVER_IDLE
16
private alias 1 : TUBECOVER_STARTUP_DELAY
17
private alias 2 : TUBECOVER_STARTUP
18
private alias 3 : TUBECOVER_ACTIVE_DELAY
19
private alias 4 : TUBECOVER_ACTIVE
20
private alias 5 : TUBECOVER_ACTIVATED_DELAY
21
private alias 6 : TUBECOVER_ACTIVATED
22
private alias 7 : TUBECOVER_MOVING_DELAY
23
private alias 8 : TUBECOVER_MOVING
24
private alias 9 : TUBECOVER_FINISHED
25
26
27
// ========================
28
// Events
29
// ========================
30
31
event ObjectUpdate
32
switch object.state
33
case TUBECOVER_IDLE
34
break
35
36
case TUBECOVER_STARTUP
37
temp1 = object.ypos
38
temp1 -= 0x200000
39
CreateTempObject(TypeName[Smoke Puff], 0, object.xpos, temp1)
40
object[tempObjectPos].drawOrder = 5
41
object.state++
42
break
43
44
case TUBECOVER_STARTUP_DELAY
45
case TUBECOVER_ACTIVE_DELAY
46
case TUBECOVER_ACTIVATED_DELAY
47
case TUBECOVER_MOVING_DELAY
48
object.timer++
49
if object.timer == 16
50
object.timer = 0
51
object.state++
52
end if
53
break
54
55
case TUBECOVER_ACTIVE
56
temp0 = object.xpos
57
temp0 -= 0x100000
58
temp1 = object.ypos
59
temp1 -= 0x200000
60
CreateTempObject(TypeName[Smoke Puff], 0, temp0, temp1)
61
object[tempObjectPos].drawOrder = 5
62
temp0 += 0x200000
63
64
CreateTempObject(TypeName[Smoke Puff], 0, temp0, temp1)
65
object[tempObjectPos].drawOrder = 5
66
object.state++
67
break
68
69
case TUBECOVER_ACTIVATED
70
temp0 = object.xpos
71
temp0 -= 0x200000
72
temp1 = object.ypos
73
temp1 -= 0x200000
74
75
CreateTempObject(TypeName[Smoke Puff], 0, temp0, temp1)
76
object[tempObjectPos].drawOrder = 5
77
temp0 += 0x400000
78
79
CreateTempObject(TypeName[Smoke Puff], 0, temp0, temp1)
80
object[tempObjectPos].drawOrder = 5
81
object.state++
82
break
83
84
case TUBECOVER_MOVING
85
object.ypos += object.yvel
86
object.offset.y += object.yvel
87
object.yvel += 0x2800
88
89
object.timer++
90
if object.timer == 60
91
object.state++
92
end if
93
break
94
95
case TUBECOVER_FINISHED
96
break
97
98
end switch
99
100
if object.state == TUBECOVER_STARTUP_DELAY
101
// ???
102
// This prolly did something at one point, or on one platform, and that prolly made this object more than a fancy decoration
103
end if
104
105
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
106
BoxCollisionTest(C_SOLID, object.entityPos, -32, -32, 32, 32, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
107
next
108
end event
109
110
111
event ObjectDraw
112
temp0 = object.ypos
113
temp0 -= object.offset.y
114
DrawSpriteXY(1, object.xpos, temp0)
115
DrawSprite(0)
116
end event
117
118
119
event ObjectStartup
120
LoadSpriteSheet("SBZ/Objects.gif")
121
SpriteFrame(-32, -32, 64, 64, 317, 339)
122
SpriteFrame(-32, -8, 32, 40, 2, 472)
123
124
foreach (TypeName[Tube Cover], arrayPos0, ALL_ENTITIES)
125
object[arrayPos0].drawOrder = 4
126
next
127
end event
128
129
130
// ========================
131
// Editor Events
132
// ========================
133
134
event RSDKDraw
135
DrawSprite(1)
136
DrawSprite(0)
137
end event
138
139
140
event RSDKLoad
141
LoadSpriteSheet("SBZ/Objects.gif")
142
SpriteFrame(-32, -32, 64, 64, 317, 339)
143
SpriteFrame(-32, -8, 32, 40, 2, 472)
144
145
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
146
end event
147
148