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/GHZ/SpikeLogs.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Spike Logs 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.value1 : object.spikedLog
13
14
15
// ========================
16
// Function Declarations
17
// ========================
18
19
reserve function SpikeLogs_DebugDraw
20
reserve function SpikeLogs_DebugSpawn
21
22
23
// ========================
24
// Function Definitions
25
// ========================
26
27
private function SpikeLogs_DebugDraw
28
DrawSprite(0)
29
end function
30
31
32
private function SpikeLogs_DebugSpawn
33
CreateTempObject(TypeName[Spike Logs], 0, object.xpos, object.ypos)
34
end function
35
36
37
// ========================
38
// Events
39
// ========================
40
41
event ObjectUpdate
42
object.spikedLog = GHZSetup_spikeLogsCounter
43
object.spikedLog >>= 1
44
object.spikedLog &= 7
45
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
46
checkResult = false
47
switch object.spikedLog
48
default
49
break
50
51
case 0
52
BoxCollisionTest(C_TOUCH, object.entityPos, -2, -16, 2, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
53
break
54
55
case 1
56
BoxCollisionTest(C_TOUCH, object.entityPos, 14, -16, 18, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
57
break
58
59
case 2
60
BoxCollisionTest(C_TOUCH, object.entityPos, 30, -16, 34, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
61
break
62
63
case 3
64
BoxCollisionTest(C_TOUCH, object.entityPos, 46, -16, 50, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
65
break
66
67
case 4
68
BoxCollisionTest(C_TOUCH, object.entityPos, 62, -16, 66, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
69
break
70
71
case 5
72
BoxCollisionTest(C_TOUCH, object.entityPos, 78, -16, 82, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
73
break
74
75
case 6
76
BoxCollisionTest(C_TOUCH, object.entityPos, 94, -16, 98, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
77
break
78
79
case 7
80
BoxCollisionTest(C_TOUCH, object.entityPos, 110, -16, 114, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
81
break
82
83
end switch
84
85
if checkResult == true
86
CallFunction(Player_Hit)
87
end if
88
next
89
end event
90
91
92
event ObjectDraw
93
temp0 = 16
94
temp0 -= GHZSetup_spikeLogsCounter
95
temp0 >>= 1
96
temp1 = object.xpos
97
DrawSpriteXY(temp0, temp1, object.ypos)
98
99
temp0++
100
temp1 += 0x100000
101
DrawSpriteXY(temp0, temp1, object.ypos)
102
103
temp0++
104
temp1 += 0x100000
105
DrawSpriteXY(temp0, temp1, object.ypos)
106
107
temp0++
108
temp1 += 0x100000
109
DrawSpriteXY(temp0, temp1, object.ypos)
110
111
temp0++
112
temp1 += 0x100000
113
DrawSpriteXY(temp0, temp1, object.ypos)
114
115
temp0++
116
temp1 += 0x100000
117
DrawSpriteXY(temp0, temp1, object.ypos)
118
119
temp0++
120
temp1 += 0x100000
121
DrawSpriteXY(temp0, temp1, object.ypos)
122
123
temp0++
124
temp1 += 0x100000
125
DrawSpriteXY(temp0, temp1, object.ypos)
126
end event
127
128
129
event ObjectStartup
130
LoadSpriteSheet("GHZ/Objects.gif")
131
132
// Log Frames, with the latter half a duplicate of the first half for ease in drawing the Logs
133
SpriteFrame(-8, -8, 16, 16, 167, 1)
134
SpriteFrame(-8, -8, 16, 19, 115, 18)
135
SpriteFrame(-8, -8, 16, 24, 132, 18)
136
SpriteFrame(-8, -8, 16, 20, 149, 18)
137
SpriteFrame(-8, -8, 0, 0, 149, 18)
138
SpriteFrame(-8, -24, 16, 30, 166, 18)
139
SpriteFrame(-8, -24, 16, 30, 115, 38)
140
SpriteFrame(-8, -24, 16, 30, 132, 43)
141
142
SpriteFrame(-8, -8, 16, 16, 167, 1)
143
SpriteFrame(-8, -8, 16, 19, 115, 18)
144
SpriteFrame(-8, -8, 16, 24, 132, 18)
145
SpriteFrame(-8, -8, 16, 20, 149, 18)
146
SpriteFrame(-8, -8, 0, 0, 149, 18)
147
SpriteFrame(-8, -24, 16, 30, 166, 18)
148
SpriteFrame(-8, -24, 16, 30, 115, 38)
149
SpriteFrame(-8, -24, 16, 30, 132, 43)
150
151
SetTableValue(TypeName[Spike Logs], DebugMode_ObjCount, DebugMode_TypesTable)
152
SetTableValue(SpikeLogs_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
153
SetTableValue(SpikeLogs_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
154
DebugMode_ObjCount++
155
end event
156
157
158
// ========================
159
// Editor Events
160
// ========================
161
162
event RSDKDraw
163
temp0 = 0
164
temp1 = object.xpos
165
166
while temp0 < 8
167
DrawSpriteXY(temp0, temp1, object.ypos)
168
169
temp1 += 0x100000
170
temp0++
171
loop
172
end event
173
174
175
event RSDKLoad
176
LoadSpriteSheet("GHZ/Objects.gif")
177
SpriteFrame(-8, -8, 16, 16, 167, 1)
178
SpriteFrame(-8, -8, 16, 19, 115, 18)
179
SpriteFrame(-8, -8, 16, 24, 132, 18)
180
SpriteFrame(-8, -8, 16, 20, 149, 18)
181
SpriteFrame(-8, -8, 0, 0, 149, 18)
182
SpriteFrame(-8, -24, 16, 30, 166, 18)
183
SpriteFrame(-8, -24, 16, 30, 115, 38)
184
SpriteFrame(-8, -24, 16, 30, 132, 43)
185
186
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
187
end event
188
189