mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 10:09:43 +01:00
Don't reset entire musicclass when mounting and unmounting assets
musicclass::init() re-initializes every attribute of musicclass unnecessarily, when initialization should be put in a constructor instead. This is bad, because music.init() gets called whenever we enter and exit a custom level that has assets. Otherwise, this would result in a bug where music.usingmmmmmm would be reset, causing you to revert to PPPPPP on the title screen whenever you enter a level with MMMMMM selected and exit it. This also causes a confusing desync between game.usingmmmmmm and music.usingmmmmmm since the values of the two variables are now different (these duplicate variables should probably be removed, too, and a lot of other duplicate variables like these exist, too, which are a real headache). Which means despite MMMMMM playing on the title screen, exiting the game and re-launching it will play PPPPPP instead. What's even more is that going to game options and switching to PPPPPP will play PPPPPP, but afterwards launching and re-entering will play MMMMMM. Again, having duplicate variables is very bad, and should probably be fixed, but that's a separate patch.
This commit is contained in:
parent
f93ce4ea4a
commit
98ef7a8675
2 changed files with 22 additions and 18 deletions
|
@ -10,6 +10,27 @@
|
||||||
|
|
||||||
void songend();
|
void songend();
|
||||||
|
|
||||||
|
musicclass::musicclass()
|
||||||
|
{
|
||||||
|
safeToProcessMusic= false;
|
||||||
|
m_doFadeInVol = false;
|
||||||
|
musicVolume = MIX_MAX_VOLUME;
|
||||||
|
FadeVolAmountPerFrame = 0;
|
||||||
|
|
||||||
|
currentsong = 0;
|
||||||
|
nicechange = -1;
|
||||||
|
nicefade = false;
|
||||||
|
resumesong = 0;
|
||||||
|
quick_fade = true;
|
||||||
|
|
||||||
|
songStart = 0;
|
||||||
|
songEnd = 0;
|
||||||
|
|
||||||
|
Mix_HookMusicFinished(&songend);
|
||||||
|
|
||||||
|
usingmmmmmm = false;
|
||||||
|
}
|
||||||
|
|
||||||
void musicclass::init()
|
void musicclass::init()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < soundTracks.size(); ++i) {
|
for (size_t i = 0; i < soundTracks.size(); ++i) {
|
||||||
|
@ -129,24 +150,6 @@ void musicclass::init()
|
||||||
|
|
||||||
num_pppppp_tracks++;
|
num_pppppp_tracks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
safeToProcessMusic= false;
|
|
||||||
m_doFadeInVol = false;
|
|
||||||
musicVolume = MIX_MAX_VOLUME;
|
|
||||||
FadeVolAmountPerFrame = 0;
|
|
||||||
|
|
||||||
currentsong = 0;
|
|
||||||
nicechange = -1;
|
|
||||||
nicefade = false;
|
|
||||||
resumesong = 0;
|
|
||||||
quick_fade = true;
|
|
||||||
|
|
||||||
songStart = 0;
|
|
||||||
songEnd = 0;
|
|
||||||
|
|
||||||
Mix_HookMusicFinished(&songend);
|
|
||||||
|
|
||||||
usingmmmmmm = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void songend()
|
void songend()
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
class musicclass
|
class musicclass
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
musicclass();
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
void play(int t, const double position_sec = 0.0, const int fadein_ms = 3000);
|
void play(int t, const double position_sec = 0.0, const int fadein_ms = 3000);
|
||||||
|
|
Loading…
Reference in a new issue