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/WFZ/Hatch.txt
1478 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Hatch Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
// HullSeal States
13
private alias 1 : HULL_OPEN
14
15
// Player Aliases
16
private alias object.yvel : player.yvel
17
private alias object.gravity : player.gravity
18
private alias object.animation : player.animation
19
20
private alias object.value25 : player.gravityStrength
21
22
23
// ========================
24
// Events
25
// ========================
26
27
event ObjectUpdate
28
temp1 = false
29
30
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
31
temp0 = player[currentPlayer].yvel
32
33
BoxCollisionTest(C_SOLID, object.entityPos, -16, -8, 16, 8, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
34
switch checkResult
35
case COL_TOP
36
if player[currentPlayer].animation == ANI_JUMPING
37
player[currentPlayer].yvel = temp0
38
if player[currentPlayer].yvel > 0
39
player[currentPlayer].yvel += player[currentPlayer].gravityStrength
40
player[currentPlayer].yvel += player[currentPlayer].gravityStrength
41
FlipSign(player[currentPlayer].yvel)
42
player[currentPlayer].gravity = GRAVITY_AIR
43
end if
44
45
temp1 = true
46
end if
47
break
48
49
case COL_LEFT
50
case COL_RIGHT
51
if player[currentPlayer].gravity == 0
52
if player[currentPlayer].animation == ANI_JUMPING
53
temp1 = true
54
end if
55
end if
56
break
57
58
end switch
59
next
60
61
if temp1 == true
62
PlaySfx(SfxName[Destroy], false)
63
temp0 = object.xpos
64
temp0 >>= 16
65
temp0 -= 160
66
stage.newXBoundary1 = temp0
67
ResetObjectEntity(object.entityPos, TypeName[Smoke Puff], 0, object.xpos, object.ypos)
68
69
object[+1].state = HULL_OPEN
70
object[+1].inkEffect = 2
71
object[+1].alpha = 0x100
72
end if
73
end event
74
75
76
event ObjectDraw
77
DrawSprite(0)
78
end event
79
80
81
event ObjectStartup
82
LoadSpriteSheet("SCZ/Objects.gif")
83
SpriteFrame(-16, -8, 32, 16, 409, 1)
84
end event
85
86
87
// ========================
88
// Editor Events
89
// ========================
90
91
event RSDKDraw
92
DrawSprite(0)
93
end event
94
95
96
event RSDKLoad
97
LoadSpriteSheet("SCZ/Objects.gif")
98
SpriteFrame(-16, -8, 32, 16, 409, 1)
99
100
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
101
end event
102
103