Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R8/SpikeBarrier.txt
1319 views
1
//---------------Sonic CD Spike Barrier Script----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value0 : Object.Timer
7
#alias Object.Value1 : Object.LeftBound
8
#alias Object.Value2 : Object.RightBound
9
10
// States
11
#alias 0 : SPIKEBARRIER_MOVE_LEFT
12
#alias 1 : SPIKEBARRIER_MOVE_RIGHT
13
14
// Collision Plane
15
#alias 0 : COLLISION_PLANE_A
16
17
18
sub ObjectMain
19
if Object.State == SPIKEBARRIER_MOVE_LEFT
20
Object.XPos -= 0x5000
21
if Object.XPos <= Object.LeftBound
22
Object.State = SPIKEBARRIER_MOVE_RIGHT
23
Object.Direction = FACING_RIGHT
24
end if
25
else
26
Object.XPos += 0x5000
27
if Object.XPos >= Object.RightBound
28
Object.State = SPIKEBARRIER_MOVE_LEFT
29
Object.Direction = FACING_LEFT
30
end if
31
end if
32
end sub
33
34
35
sub ObjectPlayerInteraction
36
if Player.CollisionPlane == COLLISION_PLANE_A
37
PlayerObjectCollision(C_TOUCH, -14, -76, 14, 76)
38
if CheckResult == true
39
CallFunction(Player_Hit)
40
end if
41
end if
42
end sub
43
44
45
sub ObjectDraw
46
TempValue0 = Object.Timer
47
TempValue0 >>= 1
48
DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)
49
Object.Timer++
50
Object.Timer &= 3
51
end sub
52
53
54
sub ObjectStartup
55
LoadSpriteSheet("R8/Objects2.gif")
56
57
SpriteFrame(-16, -76, 32, 152, 190, 1) // #0 - Spike Barrier frame 0
58
SpriteFrame(-16, -76, 32, 152, 223, 1) // #1 - Spike Barrier frame 1
59
60
ArrayPos0 = 32
61
while ArrayPos0 < 1056
62
if Object[ArrayPos0].Type == TypeName[Spike Barrier]
63
Object[ArrayPos0].DrawOrder = 4
64
Object[ArrayPos0].RightBound = Object[ArrayPos0].XPos
65
Object[ArrayPos0].LeftBound = Object[ArrayPos0].RightBound
66
Object[ArrayPos0].LeftBound -= 0x800000
67
Object[ArrayPos0].Direction = FACING_LEFT
68
end if
69
ArrayPos0++
70
loop
71
end sub
72
73
74
// ========================
75
// Editor Subs
76
// ========================
77
78
sub RSDKDraw
79
DrawSprite(0)
80
end sub
81
82
83
sub RSDKLoad
84
LoadSpriteSheet("R8/Objects2.gif")
85
SpriteFrame(-16, -76, 32, 152, 190, 1) // #0 - Spike Barrier frame 0
86
87
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
88
end sub
89
90