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/Global/PSwitch_Loop.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Plane Sw L 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.extendTop
13
private alias object.value1 : object.extendBottom
14
15
// Player Aliases
16
private alias object.speed : player.speed
17
private alias object.gravity : player.gravity
18
private alias object.collisionPlane : player.collisionPlane
19
20
21
// ========================
22
// Events
23
// ========================
24
25
event ObjectUpdate
26
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
27
if player[currentPlayer].gravity == GRAVITY_GROUND
28
BoxCollisionTest(C_TOUCH, object.entityPos, -12, object.extendTop, 12, object.extendBottom, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
29
if checkResult == true
30
if player[currentPlayer].speed > 0
31
player[currentPlayer].collisionPlane = 1
32
else
33
player[currentPlayer].collisionPlane = 0
34
end if
35
end if
36
end if
37
next
38
end event
39
40
41
event ObjectStartup
42
foreach (TypeName[Plane Sw L], arrayPos0, ALL_ENTITIES)
43
object[arrayPos0].extendTop = object[arrayPos0].propertyValue
44
object[arrayPos0].extendTop <<= 3
45
object[arrayPos0].extendBottom = object[arrayPos0].extendTop
46
FlipSign(object[arrayPos0].extendTop)
47
object[arrayPos0].extendTop -= 8
48
object[arrayPos0].extendBottom += 8
49
next
50
end event
51
52
53
// ========================
54
// Editor Events
55
// ========================
56
57
event RSDKEdit
58
if editor.returnVariable == true
59
switch editor.variableID
60
case EDIT_VAR_PROPVAL // property value
61
checkResult = object.propertyValue
62
checkResult &= 3
63
break
64
65
case 0 // size
66
checkResult = object.propertyValue
67
checkResult &= 3
68
break
69
70
end switch
71
else
72
switch editor.variableID
73
case EDIT_VAR_PROPVAL // property value
74
object.propertyValue = editor.variableValue
75
object.propertyValue &= 3
76
break
77
78
case 0 // size
79
temp1 = 3
80
Not(temp1)
81
object.propertyValue &= temp1
82
83
temp0 = editor.variableValue
84
temp0 &= 3
85
object.propertyValue = temp0
86
break
87
88
end switch
89
end if
90
end event
91
92
93
event RSDKDraw
94
// Grabbed this and edited it from from S2's debug view, since S1 doesn't have one
95
96
// size
97
temp1 = object.propertyValue
98
temp1 &= 3
99
temp1 += 2
100
101
temp0 = 1
102
temp0 <<= temp1
103
temp1 = temp0
104
temp0 <<= 19
105
FlipSign(temp0)
106
temp0 += object.ypos
107
temp0 += 0x80000
108
109
temp4 = 0
110
while temp4 < temp1
111
DrawSpriteXY(0, object.xpos, temp0)
112
temp0 += 0x100000
113
temp4++
114
loop
115
116
if temp1 == 0
117
DrawSprite(0)
118
end if
119
end event
120
121
122
event RSDKLoad
123
LoadSpriteSheet("Global/Display.gif")
124
SpriteFrame(-8, -8, 16, 16, 222, 239)
125
126
AddEditorVariable("size")
127
SetActiveVariable("size")
128
AddEnumVariable("4 Nodes", 0)
129
AddEnumVariable("8 Nodes", 1)
130
AddEnumVariable("16 Nodes", 2)
131
AddEnumVariable("32 Nodes", 3)
132
end event
133
134