mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 17:49: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();
|
||||
|
||||
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()
|
||||
{
|
||||
for (size_t i = 0; i < soundTracks.size(); ++i) {
|
||||
|
@ -129,24 +150,6 @@ void musicclass::init()
|
|||
|
||||
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()
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
class musicclass
|
||||
{
|
||||
public:
|
||||
musicclass();
|
||||
void init();
|
||||
|
||||
void play(int t, const double position_sec = 0.0, const int fadein_ms = 3000);
|
||||
|
|
Loading…
Reference in a new issue