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/Enemies/CrabmeatShot.txt
1488 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Crabmeat Shot 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
15
// ========================
16
// Events
17
// ========================
18
19
event ObjectUpdate
20
object.xpos += object.xvel
21
object.ypos += object.yvel
22
object.yvel += 0x3800
23
24
object.frame = object.timer
25
object.frame >>= 1
26
object.timer++
27
object.timer &= 3
28
29
if object.outOfBounds == true
30
object.type = TypeName[Blank Object]
31
end if
32
33
temp0 = object.ypos
34
temp0 >>= 16
35
temp0 -= camera[0].ypos
36
Abs(temp0)
37
if temp0 > 136
38
object.type = TypeName[Blank Object]
39
end if
40
41
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
42
BoxCollisionTest(C_TOUCH, object.entityPos, -6, -6, 6, 6, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
43
if checkResult == true
44
CallFunction(Player_ProjectileHit)
45
end if
46
next
47
end event
48
49
50
event ObjectDraw
51
DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)
52
end event
53
54
55
event ObjectStartup
56
CheckCurrentStageFolder("Zone01")
57
if checkResult == true
58
LoadSpriteSheet("GHZ/Objects.gif")
59
SpriteFrame(-6, -6, 12, 12, 179, 127)
60
SpriteFrame(-6, -6, 12, 12, 179, 140)
61
end if
62
63
CheckCurrentStageFolder("Zone03")
64
if checkResult == true
65
LoadSpriteSheet("SYZ/Objects.gif")
66
SpriteFrame(-6, -6, 12, 12, 227, 1)
67
SpriteFrame(-6, -6, 12, 12, 240, 1)
68
end if
69
70
CheckCurrentStageFolder("Zone07")
71
if checkResult == true
72
LoadSpriteSheet("MBZ/Objects.gif")
73
SpriteFrame(-6, -6, 12, 12, 47, 1)
74
SpriteFrame(-6, -6, 12, 12, 60, 1)
75
end if
76
end event
77
78
79
// ========================
80
// Editor Events
81
// ========================
82
83
event RSDKDraw
84
DrawSprite(0)
85
end event
86
87
88
event RSDKLoad
89
// Make sure we have a fall-back, in case the current folder isn't actually a valid one
90
temp0 = false
91
92
CheckCurrentStageFolder("Zone03")
93
temp0 |= checkResult
94
if checkResult == true
95
LoadSpriteSheet("SYZ/Objects.gif")
96
SpriteFrame(-6, -6, 12, 12, 227, 1)
97
end if
98
99
CheckCurrentStageFolder("Zone07")
100
temp0 |= checkResult
101
if checkResult == true
102
LoadSpriteSheet("MBZ/Objects.gif")
103
SpriteFrame(-6, -6, 12, 12, 47, 1)
104
end if
105
106
if temp0 == false
107
// We use GHZ's sprites as the fallback, "Zone01" (GHZ's folder) will come here too
108
LoadSpriteSheet("GHZ/Objects.gif")
109
SpriteFrame(-6, -6, 12, 12, 179, 127)
110
end if
111
112
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
113
end event
114
115