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/2PVS/2PVSSetup.txt
1483 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: 2P VS Setup 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.timer
13
private alias object.value1 : object.playingMusic
14
15
// States
16
private alias 0 : 2PVSSETUP_SETUP
17
private alias 1 : 2PVSSETUP_FADEIN
18
private alias 2 : 2PVSSETUP_MENUACTIVE
19
private alias 3 : 2PVSSETUP_TOREGULARSTAGE
20
private alias 4 : 2PVSSETUP_TOSPECIALSTAGE
21
22
23
// ========================
24
// Events
25
// ========================
26
27
event ObjectUpdate
28
options.touchControls = false
29
30
switch object.state
31
case 2PVSSETUP_SETUP
32
object.timer = 320
33
SetScreenFade(0x00, 0x00, 0x00, object.timer)
34
stage.debugMode = false
35
#platform: USE_ORIGINS
36
SetScreenCount(1)
37
#endplatform
38
if options.vsMode == false
39
vs.player2Type = -1
40
vs.stageMask = 0
41
vs.match = 0
42
vs.tieBreaker = false
43
player.lives = 3
44
player.lives2 = 3
45
46
SetMusicTrack("Options.ogg", 0, true)
47
ResetObjectEntity(1, TypeName[2P VS Menu 1], 0, 0, 0)
48
else
49
SetMusicTrack("Results.ogg", 0, true)
50
51
if vs.tieBreaker == true
52
ResetObjectEntity(1, TypeName[SS Single Result], 0, 0, 0)
53
else
54
if vs.activeList == REGULAR_STAGE
55
ResetObjectEntity(1, TypeName[Act Results], 0, 0, 0)
56
else
57
ResetObjectEntity(1, TypeName[SS Single Result], 0, 0, 0)
58
end if
59
end if
60
end if
61
object[1].priority = PRIORITY_ACTIVE
62
object.state++
63
break
64
65
case 2PVSSETUP_FADEIN
66
if object.timer > 0
67
object.timer -= 16
68
else
69
if object.playingMusic == false
70
PlayMusic(0)
71
object.playingMusic = true
72
end if
73
74
object.state++
75
end if
76
SetScreenFade(0x00, 0x00, 0x00, object.timer)
77
break
78
79
case 2PVSSETUP_MENUACTIVE
80
break
81
82
case 2PVSSETUP_TOREGULARSTAGE
83
if object.timer < 256
84
music.volume -= 10
85
object.timer += 16
86
SetScreenFade(0x00, 0x00, 0x00, object.timer)
87
else
88
player.score = 0
89
player.score2 = 0
90
vs.totalRings1P = 0
91
vs.totalRings2P = 0
92
vs.items1P = 0
93
vs.items2P = 0
94
vs.dataSent = false
95
StopMusic()
96
LoadStage()
97
SetScreenFade(0x00, 0x00, 0x00, 0xFF)
98
end if
99
break
100
101
case 2PVSSETUP_TOSPECIALSTAGE
102
if object.timer < 768
103
music.volume -= 10
104
object.timer += 8
105
SetScreenFade(0xD0, 0xFF, 0xE0, object.timer)
106
else
107
vs.checkpoint1P = 0
108
vs.checkpoint2P = 0
109
fadeColor = 0xD0
110
fadeColor <<= 16
111
temp0 = 0xFF
112
temp0 <<= 8
113
fadeColor += temp0
114
fadeColor += 0xE0
115
StopMusic()
116
LoadStage()
117
SetScreenFade(0xD0, 0xFF, 0xE0, 255)
118
end if
119
break
120
121
end switch
122
end event
123
124
125
event ObjectStartup
126
LoadSpriteSheet("LevelSelect/Icons.gif")
127
128
// If any 2P VS Setup Objects are in the scene, then start up the 2P Menu
129
foreach (TypeName[2P VS Setup], arrayPos0, ALL_ENTITIES)
130
object[arrayPos0].type = TypeName[Blank Object]
131
ResetObjectEntity(0, TypeName[2P VS Setup], 0, 0, 0)
132
object[0].priority = PRIORITY_ACTIVE
133
next
134
end event
135
136
137
// ========================
138
// Editor Events
139
// ========================
140
141
event RSDKDraw
142
DrawSprite(0)
143
end event
144
145
146
event RSDKLoad
147
LoadSpriteSheet("Global/Display.gif")
148
SpriteFrame(-16, -16, 32, 32, 1, 143)
149
150
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
151
end event
152
153