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/Global/MusicEvent.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Music Event 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
14
private alias 0 : MUSICEVENT_FADETOBOSS
15
private alias 1 : MUSICEVENT_FADETOSTAGE
16
private alias 2 : MUSICEVENT_TRANSITION
17
private alias 3 : MUSICEVENT_FADETOBOSS_ACTION // This one and the next are the same as the actual ones in S1, the actual ones this time just do a check for vs.bossAttack to disable music transitions there
18
private alias 4 : MUSICEVENT_FADETOSTAGE_ACTION
19
private alias 5 : MUSICEVENT_FADEOUT
20
21
private alias 0 : MUSICEVENT_FLAG_NOCHANGE
22
private alias 1 : MUSICEVENT_FLAG_SPEEDUP
23
private alias 2 : MUSICEVENT_FLAG_SLOWDOWN
24
25
private alias 25 : SLOT_MUSICEVENT_CHANGE
26
private alias 26 : SLOT_MUSICEVENT_BOSS
27
28
// Track Aliases
29
private alias 0 : TRACK_STAGE
30
private alias 2 : TRACK_INVINCIBLE
31
private alias 4 : TRACK_BOSS
32
33
34
// ========================
35
// Events
36
// ========================
37
38
event ObjectUpdate
39
switch object.propertyValue
40
case MUSICEVENT_FADETOBOSS
41
if vs.bossAttack == false
42
object.propertyValue = MUSICEVENT_FADETOBOSS_ACTION
43
else
44
object.type = TypeName[Blank Object]
45
end if
46
break
47
48
case MUSICEVENT_FADETOSTAGE
49
#platform: USE_ORIGINS
50
if game.playMode == BOOT_PLAYMODE_BOSSRUSH
51
object.propertyValue = MUSICEVENT_FADEOUT
52
else
53
#endplatform
54
if vs.bossAttack == false
55
object.propertyValue = MUSICEVENT_FADETOSTAGE_ACTION
56
if stage.activeList == BONUS_STAGE
57
if stage.listPos > 0 // Checking to see if we're in a non-MBZ Boss Rush stage, this is intended for the 2013 Boss Rush but could work for the Origins Boss Rush too if the above game.playMode check was removed
58
vs.bossAttack = true
59
object.type = TypeName[Blank Object]
60
end if
61
end if
62
else
63
object.type = TypeName[Blank Object]
64
end if
65
#platform: USE_ORIGINS
66
end if
67
#endplatform
68
break
69
70
case MUSICEVENT_TRANSITION
71
if object.timer < 240
72
if music.volume > 0
73
PauseMusic()
74
music.volume = 0
75
end if
76
object.timer++
77
else
78
if music.volume == 0
79
ResumeMusic()
80
switch stage.musicFlag
81
case MUSICEVENT_FLAG_NOCHANGE
82
break
83
84
case MUSICEVENT_FLAG_SPEEDUP
85
CallFunction(SpeedUpMusic)
86
stage.musicFlag = MUSICEVENT_FLAG_NOCHANGE
87
break
88
89
case MUSICEVENT_FLAG_SLOWDOWN
90
CallFunction(SlowDownMusic)
91
stage.musicFlag = MUSICEVENT_FLAG_NOCHANGE
92
break
93
94
end switch
95
96
music.volume = 5
97
else
98
if music.volume < 100
99
music.volume += 5
100
else
101
object.type = TypeName[Blank Object]
102
end if
103
end if
104
end if
105
break
106
107
case MUSICEVENT_FADETOBOSS_ACTION
108
if object.timer < 50
109
object.timer++
110
music.volume -= 2
111
else
112
PlayMusic(TRACK_BOSS)
113
object.type = TypeName[Blank Object]
114
end if
115
break
116
117
case MUSICEVENT_FADETOSTAGE_ACTION
118
if object.timer < 50
119
object.timer++
120
music.volume -= 2
121
else
122
PlayMusic(TRACK_STAGE)
123
object.type = TypeName[Blank Object]
124
end if
125
break
126
127
#platform: USE_ORIGINS
128
case MUSICEVENT_FADEOUT
129
if object.timer < 50
130
object.timer++
131
music.volume -= 2
132
else
133
StopMusic()
134
object.type = TypeName[Blank Object]
135
end if
136
break
137
#endplatform
138
end switch
139
end event
140
141
142
// ========================
143
// Editor Events
144
// ========================
145
146
event RSDKDraw
147
DrawSprite(0)
148
end event
149
150
151
event RSDKLoad
152
LoadSpriteSheet("Global/Display.gif")
153
SpriteFrame(-16, -16, 32, 32, 1, 143)
154
155
// While used by the object, it shouldn't be set by the editor
156
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
157
end event
158
159