diff --git a/src/p_tick.c b/src/p_tick.c index 69641d6be..22a090fba 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -617,6 +617,19 @@ void P_Ticker(boolean run) S_ShowMusicCredit(); } + if (encoremode) + { + // Encore humming starts immediately. + if (leveltime == 3) + S_ChangeMusicInternal("encore", true); + } + else + { + // Plays the POSITION music after the camera spin + if (leveltime == introtime) + S_ChangeMusicInternal("postn", true); + } + ps_lua_thinkframe_time = I_GetPreciseTime(); LUAh_ThinkFrame(); ps_lua_thinkframe_time = I_GetPreciseTime() - ps_lua_thinkframe_time; diff --git a/src/p_user.c b/src/p_user.c index e65eb6fb2..3b7382392 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -804,14 +804,7 @@ void P_RestoreMusic(player_t *player) return; // Event - Level Start - if (leveltime < (starttime + (TICRATE/2))) - { - if (encoremode) - S_ChangeMusicInternal("estart", false); //S_StopMusic(); - else - S_StartSound(NULL, sfx_kstart); - } - else // see also where time overs are handled - search for "lives = 2" in this file + if (leveltime >= (starttime + (TICRATE/2))) // see also where time overs are handled - search for "lives = 2" in this file { INT32 wantedmus = 0; // 0 is level music, 1 is invincibility, 2 is grow diff --git a/src/s_sound.c b/src/s_sound.c index 3e416a883..4a224ec6f 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -2351,12 +2351,7 @@ void S_StartEx(boolean reset) S_StopMusic(); // Starting ambience should always be restarted, if playing. if (leveltime < (starttime + (TICRATE/2))) // SRB2Kart - { - if (encoremode) - S_ChangeMusicEx("estart", 0, false, mapmusposition, 0, 0); - else - S_StartSound(NULL, sfx_kstart); - } + S_StartSound(NULL, encoremode ? sfx_ruby2 : sfx_kstart); else S_ChangeMusicEx(mapmusname, mapmusflags, true, mapmusposition, 0, 0);