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/WreckingBall.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Wrecking Ball 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 : WRECKINGBALL_INACTIVE
16
private alias 1 : WRECKINGBALL_ACTIVE
17
private alias 2 : WRECKINGBALL_EXPLODE
18
19
20
// ========================
21
// Events
22
// ========================
23
24
event ObjectUpdate
25
if object.state == WRECKINGBALL_EXPLODE
26
object.rotation *= 248
27
object.rotation >>= 8
28
object.timer++
29
temp0 = object.timer
30
temp0 &= 7
31
if temp0 == 4
32
Rand(temp0, 32)
33
temp0 -= 16
34
temp0 <<= 16
35
temp0 += object.xpos
36
Rand(temp1, 32)
37
temp1 -= 16
38
temp1 <<= 16
39
temp1 += object.ypos
40
CreateTempObject(TypeName[Explosion], 0, temp0, temp1)
41
end if
42
43
if object.timer == 180
44
object.type = TypeName[Blank Object]
45
end if
46
end if
47
48
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
49
if object.state == WRECKINGBALL_ACTIVE
50
BoxCollisionTest(C_TOUCH, object.entityPos, -22, -22, 22, 22, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
51
if checkResult == true
52
CallFunction(Player_Hit)
53
end if
54
end if
55
next
56
end event
57
58
59
event ObjectDraw
60
// Draw Wrecking ball
61
temp0 = object.rotation
62
temp0 += 8
63
temp0 >>= 4
64
temp0 &= 7
65
temp0++
66
DrawSprite(temp0)
67
68
// Draw Shine Overlay
69
object.inkEffect = INK_ADD
70
object.alpha = 160
71
DrawSpriteFX(0, FX_INK, object.xpos, object.ypos)
72
end event
73
74
75
event ObjectStartup
76
LoadSpriteSheet("GHZ/Objects2.gif")
77
78
SpriteFrame(-24, -24, 48, 48, 1, 77) // Shine Overlay - #0
79
SpriteFrame(-24, -24, 48, 48, 50, 77) // Wrecking Ball - #1
80
SpriteFrame(-24, -24, 48, 48, 148, 126) // Wrecking Ball - #2
81
SpriteFrame(-24, -24, 48, 48, 99, 126) // Wrecking Ball - #3
82
SpriteFrame(-24, -24, 48, 48, 50, 126) // Wrecking Ball - #4
83
SpriteFrame(-24, -24, 48, 48, 1, 126) // Wrecking Ball - #5
84
SpriteFrame(-24, -24, 48, 48, 197, 77) // Wrecking Ball - #6
85
SpriteFrame(-24, -24, 48, 48, 148, 77) // Wrecking Ball - #7
86
SpriteFrame(-24, -24, 48, 48, 99, 77) // Wrecking Ball - #8
87
end event
88
89
90
// ========================
91
// Editor Events
92
// ========================
93
94
event RSDKDraw
95
DrawSprite(1)
96
97
// Draw Shine Overlay
98
object.inkEffect = INK_ADD
99
object.alpha = 160
100
DrawSpriteFX(0, FX_INK, object.xpos, object.ypos)
101
end event
102
103
104
event RSDKLoad
105
LoadSpriteSheet("GHZ/Objects2.gif")
106
SpriteFrame(-24, -24, 48, 48, 1, 77) // Shine Overlay
107
SpriteFrame(-24, -24, 48, 48, 50, 77) // Wrecking Ball
108
109
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
110
end event
111
112