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/GrabBar.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Grab Bar 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.grabDelay
13
14
// Player Aliases
15
private alias object.state : player.state
16
private alias object.ypos : player.ypos
17
private alias object.xvel : player.xvel
18
private alias object.yvel : player.yvel
19
private alias object.speed : player.speed
20
private alias object.gravity : player.gravity
21
private alias object.animation : player.animation
22
private alias object.collisionTop : player.collisionTop
23
private alias object.jumpPress : player.jumpPress
24
25
26
// ========================
27
// Events
28
// ========================
29
30
event ObjectUpdate
31
if object.grabDelay > 0
32
object.grabDelay--
33
end if
34
35
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
36
if player[currentPlayer].state != Player_State_Static
37
if object.grabDelay == 0
38
temp0 = player[currentPlayer].collisionTop
39
40
BoxCollisionTest(C_TOUCH, object.entityPos, -24, 0, 24, 8, currentPlayer, -1, temp0, 1, temp0)
41
if checkResult == true
42
if player[currentPlayer].gravity == 1
43
player[currentPlayer].state = Player_State_Static
44
player[currentPlayer].animation = ANI_HANGING
45
player[currentPlayer].speed = 0
46
player[currentPlayer].xvel = 0
47
player[currentPlayer].yvel = 0
48
player[currentPlayer].ypos = player[currentPlayer].collisionTop
49
player[currentPlayer].ypos++
50
FlipSign(player[currentPlayer].ypos)
51
player[currentPlayer].ypos <<= 16
52
player[currentPlayer].ypos += object.ypos
53
PlaySfx(SfxName[Catch], false)
54
end if
55
end if
56
end if
57
else
58
if player[currentPlayer].jumpPress == true
59
#platform: USE_STANDALONE
60
player[currentPlayer].state = Player_State_Air
61
#endplatform
62
#platform: USE_ORIGINS
63
player[currentPlayer].state = Player_State_Air_NoDropDash
64
#endplatform
65
player[currentPlayer].yvel = -0x40000
66
player[currentPlayer].gravity = 1
67
object.grabDelay = 8
68
end if
69
70
if player[currentPlayer].state == Player_State_Static
71
player[currentPlayer].ypos = player[currentPlayer].collisionTop
72
player[currentPlayer].ypos++
73
FlipSign(player[currentPlayer].ypos)
74
player[currentPlayer].ypos <<= 16
75
player[currentPlayer].ypos += object.ypos
76
end if
77
end if
78
next
79
end event
80
81
82
event ObjectDraw
83
// Code?? maybe?? at one point??
84
end event
85
86
87
event ObjectStartup
88
// Code?? maybe?? at one point??
89
end event
90
91
92
// ========================
93
// Editor Events
94
// ========================
95
96
event RSDKDraw
97
DrawSprite(0)
98
end event
99
100
101
event RSDKLoad
102
LoadSpriteSheet("Global/Display.gif")
103
SpriteFrame(-16, -16, 32, 32, 1, 143)
104
105
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
106
end event
107
108