mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-05 09:46:40 +00:00
Refactor level music playing code
- Use one function so we don't duplicate the checks for music that isn't supposed to be interrupted by a restart
This commit is contained in:
parent
1b3c63f24a
commit
9e99efc08c
3 changed files with 20 additions and 9 deletions
|
|
@ -8236,6 +8236,11 @@ void P_ResetLevelMusic(void)
|
|||
mapmusrng = idx;
|
||||
}
|
||||
|
||||
boolean P_UseContinuousLevelMusic(void)
|
||||
{
|
||||
return (gametyperules & GTR_NOPOSITION) || modeattacking != ATTACKING_NONE;
|
||||
}
|
||||
|
||||
void P_LoadLevelMusic(void)
|
||||
{
|
||||
mapheader_t* mapheader = mapheaderinfo[gamemap-1];
|
||||
|
|
@ -8246,7 +8251,7 @@ void P_LoadLevelMusic(void)
|
|||
music = mapheader->musname[mapmusrng];
|
||||
}
|
||||
|
||||
if (gametyperules & GTR_NOPOSITION || modeattacking != ATTACKING_NONE)
|
||||
if (P_UseContinuousLevelMusic())
|
||||
{
|
||||
if (!stricmp(Music_Song("level_nosync"), music))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ extern mapthing_t *mapthings;
|
|||
void P_SetupLevelSky(const char *skytexname, boolean global);
|
||||
void P_RespawnThings(void);
|
||||
void P_ResetLevelMusic(void);
|
||||
boolean P_UseContinuousLevelMusic(void);
|
||||
void P_LoadLevelMusic(void);
|
||||
boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate);
|
||||
void P_PostLoadLevel(void);
|
||||
|
|
|
|||
21
src/p_tick.c
21
src/p_tick.c
|
|
@ -824,6 +824,15 @@ static void P_TickMusicFade(void)
|
|||
g_musicfade.ticked = true;
|
||||
}
|
||||
|
||||
static void P_StartLevelMusic(void)
|
||||
{
|
||||
if (!Music_Playing("level_nosync"))
|
||||
{
|
||||
// Do not stop level_nosync
|
||||
Music_Play(P_UseContinuousLevelMusic() ? "level_nosync" : "level");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_Ticker
|
||||
//
|
||||
|
|
@ -1024,7 +1033,7 @@ void P_Ticker(boolean run)
|
|||
// Bosses have a punchy start, so no position.
|
||||
if (leveltime == 1)
|
||||
{
|
||||
Music_Play("level");
|
||||
P_StartLevelMusic();
|
||||
}
|
||||
}
|
||||
else if (leveltime < starttime + TICRATE)
|
||||
|
|
@ -1032,11 +1041,7 @@ void P_Ticker(boolean run)
|
|||
if (leveltime == (starttime + (TICRATE/2)))
|
||||
{
|
||||
// Plays the music after the starting countdown.
|
||||
if (!Music_Playing("level_nosync"))
|
||||
{
|
||||
// Do not stop level_nosync
|
||||
Music_Play((gametyperules & GTR_NOPOSITION) ? "level_nosync" : "level");
|
||||
}
|
||||
P_StartLevelMusic();
|
||||
}
|
||||
else if (starttime != introtime)
|
||||
{
|
||||
|
|
@ -1065,9 +1070,9 @@ void P_Ticker(boolean run)
|
|||
|
||||
if (modeattacking != ATTACKING_NONE)
|
||||
{
|
||||
if (leveltime == 4 && !Music_Playing("level_nosync"))
|
||||
if (leveltime == 4)
|
||||
{
|
||||
Music_Play("level_nosync");
|
||||
P_StartLevelMusic();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue