diff --git a/src/f_finale.c b/src/f_finale.c index 24ebf3ab..8bdd5b72 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -897,7 +897,9 @@ void F_StartTitleScreen(void) // IWAD dependent stuff. // music is started in the ticker - S_StopMusic(); + if (!fromtitledemo) // SRB2Kart: Don't reset music if the right track is already playing + S_StopMusic(); + fromtitledemo = false; animtimer = 0; @@ -1065,7 +1067,7 @@ void F_TitleScreenTicker(boolean run) return; }*/ - titledemo = true; + titledemo = fromtitledemo = true; G_DoPlayDemo(dname); } } diff --git a/src/g_game.c b/src/g_game.c index a16acf6f..57794ddf 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -286,6 +286,7 @@ static char demoname[64]; boolean demorecording; boolean demoplayback; boolean titledemo; // Title Screen demo can be cancelled by any key +boolean fromtitledemo; // SRB2Kart: Don't stop the music static UINT8 *demobuffer = NULL; static UINT8 *demo_p, *demotime_p; static UINT8 *demoend; diff --git a/src/g_game.h b/src/g_game.h index b8e985ff..621da3f8 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -36,7 +36,7 @@ extern boolean playeringame[MAXPLAYERS]; // ====================================== // demoplaying back and demo recording -extern boolean demoplayback, titledemo, demorecording, timingdemo; +extern boolean demoplayback, titledemo, fromtitledemo, demorecording, timingdemo; // Quit after playing a demo from cmdline. extern boolean singledemo; diff --git a/src/s_sound.c b/src/s_sound.c index 03f994d5..422a00a1 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -1683,7 +1683,8 @@ void S_ChangeMusic(const char *mmusic, UINT16 mflags, boolean looping) S_ClearSfx(); #endif - if (S_MusicDisabled()) + if (S_MusicDisabled() + || titledemo) // SRB2Kart: Demos don't interrupt title screen music return; // No Music (empty string) @@ -1717,7 +1718,8 @@ void S_ChangeMusic(const char *mmusic, UINT16 mflags, boolean looping) void S_StopMusic(void) { - if (!I_SongPlaying()) + if (!I_SongPlaying() + || titledemo) // SRB2Kart: Demos don't interrupt title screen music return; if (I_SongPaused()) diff --git a/src/sounds.c b/src/sounds.c index 9e54a095..5531e7a3 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -412,10 +412,10 @@ sfxinfo_t S_sfx[NUMSFX] = {"s3k3f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k40", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k41", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"s3k42", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"s3k42", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Kart Thunder Shield spawned {"s3k43", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k44", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"s3k45", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Kart Thunder Shield use + {"s3k45", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k46", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k47", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Kart AIZ dust {"s3k48", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},