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/CNZ/EggmanClaw.txt
1488 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Eggman Claw 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.parent
13
private alias object.value2 : object.electricityActive
14
private alias object.value3 : object.electricityFrame
15
16
// States
17
private alias 0 : CNZEGGMANCLAW_ACTIVE
18
private alias 1 : CNZEGGMANCLAW_DEBRIS
19
20
// CNZEggman Aliases
21
private alias object.value4 : cnzEggman.invincibilityTimer
22
private alias object.value10 : cnzEggman.isClawWide
23
24
25
// ========================
26
// Events
27
// ========================
28
29
event ObjectUpdate
30
if object.state == CNZEGGMANCLAW_ACTIVE
31
arrayPos0 = object.parent
32
object.xpos = object[arrayPos0].xpos
33
object.ypos = object[arrayPos0].ypos
34
35
if object.electricityActive == true
36
if cnzEggman[arrayPos0].invincibilityTimer < 48
37
if cnzEggman[arrayPos0].isClawWide == false
38
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
39
BoxCollisionTest(C_TOUCH, object.entityPos, -16, 40, 16, 48, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
40
if checkResult == true
41
CallFunction(Player_Hit)
42
end if
43
next
44
else
45
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
46
BoxCollisionTest(C_TOUCH, object.entityPos, -28, 32, 28, 40, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
47
if checkResult == true
48
CallFunction(Player_Hit)
49
end if
50
next
51
end if
52
end if
53
54
object.animationTimer++
55
object.animationTimer %= 6
56
end if
57
else
58
object.xpos += object.xvel
59
object.ypos += object.yvel
60
object.yvel += 0x3800
61
62
if object.outOfBounds == true
63
object.type = TypeName[Blank Object]
64
end if
65
end if
66
end event
67
68
69
event ObjectDraw
70
if object.state == CNZEGGMANCLAW_ACTIVE
71
arrayPos0 = object.parent
72
object.direction = object[arrayPos0].direction
73
74
object.frame = cnzEggman[arrayPos0].isClawWide
75
object.frame <<= 1
76
object.frame += object.propertyValue
77
DrawSpriteFX(object.frame, FX_FLIP, object[arrayPos0].xpos, object[arrayPos0].ypos)
78
79
if object.electricityActive == true
80
object.electricityFrame = cnzEggman[arrayPos0].isClawWide
81
object.electricityFrame *= 3
82
83
temp0 = object.animationTimer
84
temp0 >>= 1
85
object.electricityFrame += temp0
86
object.electricityFrame += 4
87
DrawSpriteFX(object.electricityFrame, FX_FLIP, object[arrayPos0].xpos, object[arrayPos0].ypos)
88
end if
89
else
90
DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)
91
end if
92
end event
93
94
95
event ObjectStartup
96
CheckCurrentStageFolder("Zone04")
97
if checkResult == true
98
LoadSpriteSheet("CNZ/Objects.gif")
99
SpriteFrame(-28, 24, 16, 24, 77, 231) // Claw L (Closed) - #0
100
SpriteFrame(8, 19, 24, 28, 150, 227) // Claw R (Closed) - #1
101
SpriteFrame(-37, 19, 16, 20, 94, 235) // Claw L (Open) - #2
102
SpriteFrame(8, 17, 38, 22, 111, 233) // Claw R (Open) - #3
103
SpriteFrame(-16, 40, 32, 7, 142, 205) // Electricity (Short) - #4
104
SpriteFrame(-16, 40, 32, 7, 142, 213) // Electricity (Short) - #5
105
SpriteFrame(-16, 41, 32, 5, 142, 221) // Electricity (Short) - #6
106
SpriteFrame(-28, 33, 64, 6, 77, 209) // Electricity (Wide) - #7
107
SpriteFrame(-28, 32, 64, 8, 77, 216) // Electricity (Wide) - #8
108
SpriteFrame(-28, 34, 64, 5, 77, 225) // Electricity (Wide) - #9
109
else
110
LoadSpriteSheet("MBZ/Objects.gif")
111
SpriteFrame(-28, 24, 16, 24, 134, 154) // Claw L (Closed) - #0
112
SpriteFrame(8, 19, 24, 28, 207, 154) // Claw R (Closed) - #1
113
SpriteFrame(-37, 19, 16, 20, 151, 154) // Claw L (Open) - #2
114
SpriteFrame(8, 17, 38, 22, 168, 154) // Claw R (Open) - #3
115
SpriteFrame(-16, 40, 32, 7, 167, 130) // Electricity (Short) - #4
116
SpriteFrame(-16, 40, 32, 7, 167, 138) // Electricity (Short) - #5
117
SpriteFrame(-16, 41, 32, 5, 167, 146) // Electricity (Short) - #6
118
SpriteFrame(-28, 33, 64, 6, 167, 108) // Electricity (Wide) - #7
119
SpriteFrame(-28, 32, 64, 8, 167, 115) // Electricity (Wide) - #8
120
SpriteFrame(-28, 34, 64, 5, 167, 124) // Electricity (Wide) - #9
121
end if
122
end event
123
124
125
// ========================
126
// Editor Events
127
// ========================
128
129
event RSDKDraw
130
DrawSprite(0)
131
end event
132
133
134
event RSDKLoad
135
CheckCurrentStageFolder("Zone04")
136
if checkResult == true
137
LoadSpriteSheet("CNZ/Objects.gif")
138
SpriteFrame(-28, 24, 16, 24, 77, 231)
139
else
140
LoadSpriteSheet("MBZ/Objects.gif")
141
SpriteFrame(-28, 24, 16, 24, 134, 154)
142
end if
143
144
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
145
end event
146
147