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/HPlatform.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: H Platform 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.centerPos.x
13
14
// Player Aliases
15
private alias object.xpos : player.xpos
16
17
18
// ========================
19
// Function Declarations
20
// ========================
21
22
reserve function HPlatform_DebugDraw
23
reserve function HPlatform_DebugSpawn
24
25
private function HPlatform_DebugDraw
26
DrawSprite(0)
27
end function
28
29
30
private function HPlatform_DebugSpawn
31
CreateTempObject(TypeName[H Platform], 0, object.xpos, object.ypos)
32
object[tempObjectPos].centerPos.x = object.xpos
33
object[tempObjectPos].propertyValue = object.direction
34
end function
35
36
37
// ========================
38
// Events
39
// ========================
40
41
event ObjectUpdate
42
temp6 = object.xpos
43
GetTableValue(temp0, 6, StageSetup_oscillationTable)
44
if object.propertyValue == 1
45
FlipSign(temp0)
46
temp0 += 0x6000
47
end if
48
temp0 <<= 8
49
object.xpos = object.centerPos.x
50
object.xpos -= temp0
51
52
temp0 = object.xpos
53
temp6 &= 0xFFFF0000
54
temp4 = object.xpos
55
temp4 &= 0xFFFF0000
56
temp4 -= temp6
57
object.xpos = temp6
58
59
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
60
BoxCollisionTest(C_PLATFORM, object.entityPos, -40, -16, 40, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
61
if checkResult == true
62
player[currentPlayer].xpos += temp4
63
end if
64
next
65
object.xpos = temp0
66
end event
67
68
69
event ObjectDraw
70
DrawSprite(0)
71
end event
72
73
74
event ObjectStartup
75
LoadSpriteSheet("MZ/Objects.gif")
76
SpriteFrame(-48, -16, 96, 32, 159, 322)
77
78
foreach (TypeName[H Platform], arrayPos0, ALL_ENTITIES)
79
object[arrayPos0].centerPos.x = object[arrayPos0].xpos
80
next
81
82
SetTableValue(TypeName[H Platform], DebugMode_ObjCount, DebugMode_TypesTable)
83
SetTableValue(HPlatform_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
84
SetTableValue(HPlatform_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
85
DebugMode_ObjCount++
86
end event
87
88
89
// ========================
90
// Editor Events
91
// ========================
92
93
event RSDKEdit
94
if editor.returnVariable == true
95
switch editor.variableID
96
case EDIT_VAR_PROPVAL // property value
97
checkResult = object.propertyValue
98
checkResult &= 1
99
break
100
101
case 0 // startDir
102
checkResult = object.propertyValue
103
checkResult &= 1
104
break
105
106
end switch
107
else
108
switch editor.variableID
109
case EDIT_VAR_PROPVAL // property value
110
object.propertyValue = editor.variableValue
111
object.propertyValue &= 1
112
break
113
114
case 0 // startDir
115
object.propertyValue = editor.variableValue
116
object.propertyValue &= 1
117
break
118
119
end switch
120
end if
121
end event
122
123
124
event RSDKDraw
125
DrawSprite(0)
126
end event
127
128
129
event RSDKLoad
130
LoadSpriteSheet("MZ/Objects.gif")
131
SpriteFrame(-48, -16, 96, 32, 159, 322)
132
133
AddEditorVariable("startDir")
134
SetActiveVariable("startDir")
135
AddEnumVariable("Left", 0)
136
AddEnumVariable("Right", 1)
137
end event
138
139