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/MZ/PushOutBlock.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Push Out Block Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
// Player Aliases
13
private alias object.state : player.state
14
private alias object.xpos : player.xpos
15
private alias object.ixpos : player.ixpos
16
private alias object.xvel : player.xvel
17
private alias object.speed : player.speed
18
private alias object.pushing : player.pushing
19
private alias object.collisionLeft : player.collisionLeft
20
private alias object.collisionRight : player.collisionRight
21
22
// ========================
23
// Events
24
// ========================
25
26
event ObjectUpdate
27
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
28
if player[currentPlayer].state != Player_State_LedgePullUp
29
BoxCollisionTest(C_TOUCH, object.entityPos, -16, -12, 16, 12, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
30
if checkResult == true
31
if player[currentPlayer].xpos > object.xpos
32
player[currentPlayer].ixpos = player[currentPlayer].collisionLeft
33
FlipSign(player[currentPlayer].xpos)
34
player[currentPlayer].xpos += 0x100000
35
player[currentPlayer].xpos += object.xpos
36
if player[currentPlayer].xvel < 0
37
player[currentPlayer].pushing = 2
38
player[currentPlayer].xvel = 0
39
player[currentPlayer].speed = 0
40
end if
41
else
42
player[currentPlayer].ixpos = player[currentPlayer].collisionRight
43
FlipSign(player[currentPlayer].xpos)
44
player[currentPlayer].xpos -= 0x100000
45
player[currentPlayer].xpos += object.xpos
46
if player[currentPlayer].xvel > 0
47
player[currentPlayer].pushing = 2
48
player[currentPlayer].xvel = 0
49
player[currentPlayer].speed = 0
50
end if
51
end if
52
end if
53
end if
54
next
55
end event
56
57
58
event RSDKDraw
59
DrawSprite(0)
60
61
if editor.showGizmos == true
62
// Show the object's hitbox
63
64
editor.drawingOverlay = true
65
66
temp0 = object.ixpos; temp0 -= 0x8
67
temp1 = object.iypos; temp1 -= 0x8
68
DrawRectOutline(temp0, temp1, 16, 16, 255, 255, 255, 255)
69
70
editor.drawingOverlay = false
71
end if
72
end event
73
74
75
event RSDKLoad
76
LoadSpriteSheet("MZ/Objects.gif")
77
SpriteFrame(-16, -16, 32, 32, 159, 322)
78
79
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
80
end event
81
82