Skip to content
Permalink
Browse files
Fixed an unexpected music start
Fixed a bug when unexpected music starts at the level when it was entered too quick from the world map

https://wohlsoft.ru/forum/viewtopic.php?f=101&t=4487&p=22028
  • Loading branch information
Wohlstand committed Feb 8, 2022
1 parent 50a11b6 commit a39792e062c5b86d9cb9a51a97bc371186330ead
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 2 deletions.
@@ -15,6 +15,7 @@ Changelog for 1.3.6 [WIP]
-Performance improvements for showing, hiding, and moving layers (@ds-sloth)
-Reduced game object memory footprint (@ds-sloth)
-Performance improvements when run on slow filesystems (@ds-sloth)
-Fixed unexpected music got started after the level got entered too quick from the world map (@Wohlstand)

Changes for 1.3.5.3-1
-Fixed autostart events behaviour
@@ -674,6 +674,7 @@ int GameMain(const CmdLineSetup_t &setup)
[]()->bool{return LevelSelect;},
nullptr,
[]()->void{FreezeNPCs = false;});

if(!GameIsActive)
{
speedRun_saveStats();
@@ -558,6 +558,8 @@ void WorldLoop()
curWorldLevel = level.index;
LevelSelect = false;

delayedMusicReset(); // Reset delayed music to prevent unexpected behaviour at loaded level

ClearLevel();

if(!OpenLevel(levelPath))
@@ -508,8 +508,7 @@ static int s_delayedMusicFadeInMs = 0;

void setMusicStartDelay()
{
if(!s_delayMusic)
s_delayedMusicRequested = false;
s_delayedMusicRequested = false;
s_delayMusic = true;
}

@@ -523,21 +522,33 @@ void delayedMusicStart()
s_delayMusic = false;
if(s_delayedMusicRequested)
{
D_pLogDebug("Restored delayed music request A=%d", s_delayedMusicA);
StartMusic(s_delayedMusicA, s_delayedMusicFadeInMs);
s_delayedMusicRequested = false;
}
}

void delayedMusicReset()
{
s_delayMusic = false;
if(s_delayedMusicRequested)
D_pLogDebug("Saved music request erase A=%d", s_delayedMusicA);
s_delayedMusicRequested = false;
}

void StartMusic(int A, int fadeInMs)
{
if(s_delayMusic)
{
s_delayedMusicA = A;
s_delayedMusicFadeInMs = fadeInMs;
s_delayedMusicRequested = true;
D_pLogDebug("Saved start music request A=%d", A);
return;
}

D_pLogDebug("Start music A=%d", A);

if(noSound)
{
// Keep world map music being remembered when sound disabled
@@ -171,6 +171,7 @@ void StopSfx(const std::string &Alias);
// Public Sub StartMusic(A As Integer) 'play music
void setMusicStartDelay();
void delayedMusicStart();
void delayedMusicReset();
bool delayMusicIsSet();
// play music
void StartMusic(int A, int fadeInMs = 0);

0 comments on commit a39792e

Please sign in to comment.