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/MPZ/ConveyorBelt.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Conveyor Belt 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.hitbox.left
13
private alias object.value2 : object.hitbox.right
14
15
// Player Aliases
16
private alias object.xpos : player.xpos
17
private alias object.gravity : player.gravity
18
19
20
// ========================
21
// Events
22
// ========================
23
24
event ObjectUpdate
25
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
26
if player[currentPlayer].gravity == GRAVITY_GROUND
27
BoxCollisionTest(C_TOUCH, object.entityPos, object.hitbox.left, -20, object.hitbox.right, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
28
if checkResult == true
29
player[currentPlayer].xpos += object.xvel
30
end if
31
end if
32
next
33
end event
34
35
36
event ObjectStartup
37
foreach (TypeName[Conveyor Belt], arrayPos0, ALL_ENTITIES)
38
object[arrayPos0].hitbox.left = object[arrayPos0].propertyValue
39
object[arrayPos0].hitbox.left <<= 4
40
object[arrayPos0].hitbox.right = object[arrayPos0].hitbox.left
41
FlipSign(object[arrayPos0].hitbox.left)
42
43
// Direction is set from the editor
44
if object[arrayPos0].direction == FLIP_NONE
45
object[arrayPos0].xvel = 0x20000
46
else
47
object[arrayPos0].xvel = -0x20000
48
end if
49
next
50
end event
51
52
53
// ========================
54
// Editor Events
55
// ========================
56
57
event RSDKDraw
58
DrawSprite(0)
59
60
if editor.showGizmos == true
61
editor.drawingOverlay = true
62
63
// Draw the Conveyor Belt's hitbox
64
65
// Right hitbox
66
temp2 = object.propertyValue
67
temp2 <<= 4
68
69
// Left hitbox (just mirrored)
70
temp0 = temp2
71
72
temp1 = 20; temp3 = 0;
73
CallFunction(EditorHelpers_DrawHitbox)
74
75
editor.drawingOverlay = false
76
end if
77
end event
78
79
80
event RSDKLoad
81
LoadSpriteSheet("Global/Display.gif")
82
SpriteFrame(-8, -8, 16, 16, 168, 18) // "trigger" - #0
83
84
SetVariableAlias(ALIAS_VAR_PROPVAL, "size")
85
end event
86
87