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/LZ/CorkActivation.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Cork Activation 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.propertyValue : object.corkCount
13
14
private alias object.value0 : object.endSlot
15
private alias object.value1 : object.startSlot
16
17
18
// ========================
19
// Events
20
// ========================
21
22
event ObjectUpdate
23
arrayPos0 = object.startSlot
24
while arrayPos0 < object.endSlot
25
object[arrayPos0].priority = PRIORITY_ACTIVE
26
arrayPos0++
27
loop
28
end event
29
30
31
event ObjectDraw
32
// Even if it's a "Draw" event, there's not really much drawing that actually happens here
33
// Instead, it just does some more managing of priorities
34
// (Keep in mind, when the player's dead Updates aren't ran anymore but Draws are)
35
36
arrayPos0 = object.startSlot
37
while arrayPos0 < object.endSlot
38
if stage.state == STAGE_RUNNING
39
object[arrayPos0].priority = PRIORITY_INACTIVE
40
else
41
object[arrayPos0].priority = PRIORITY_ACTIVE
42
end if
43
arrayPos0++
44
loop
45
end event
46
47
48
event ObjectStartup
49
foreach (TypeName[Cork Activation], arrayPos0, ALL_ENTITIES)
50
object[arrayPos0].priority = PRIORITY_XBOUNDS
51
arrayPos1 = arrayPos0
52
object[arrayPos0].endSlot = object[arrayPos0].corkCount
53
54
temp0 = false
55
while temp0 == false
56
if object[arrayPos1].type == TypeName[Cork]
57
object[arrayPos0].startSlot = arrayPos1
58
temp0 = true
59
else
60
arrayPos1++
61
if arrayPos1 >= 0x420
62
temp0 = true
63
end if
64
end if
65
loop
66
object[arrayPos0].endSlot += object[arrayPos0].startSlot
67
next
68
end event
69
70
71
// ========================
72
// Editor Events
73
// ========================
74
75
event RSDKDraw
76
DrawSprite(0)
77
78
if editor.showGizmos == true
79
editor.drawingOverlay = true
80
81
arrayPos0 = object.entityPos
82
83
GetObjectType(temp0, "Cork")
84
85
checkResult = true
86
while checkResult == true
87
checkNotEqual(object[arrayPos0].type, temp0)
88
arrayPos0 += checkResult
89
90
if arrayPos0 >= 0x420
91
checkResult = false
92
end if
93
loop
94
95
arrayPos1 = arrayPos0
96
arrayPos1 += object.corkCount
97
98
while arrayPos0 < arrayPos1
99
DrawLine(object.xpos, object.ypos, object[arrayPos0].xpos, object[arrayPos0].ypos, 0xFF, 0xFF, 0x00)
100
arrayPos0++
101
loop
102
103
editor.drawingOverlay = false
104
end if
105
end event
106
107
108
event RSDKLoad
109
LoadSpriteSheet("Global/Display.gif")
110
SpriteFrame(-8, -8, 16, 16, 239, 239) // "Trigger" - #0
111
112
SetVariableAlias(ALIAS_VAR_PROPVAL, "corkCount")
113
end event
114
115