Moved Y_EndGame from y_inter.c/h to g_game.c/h, renamed it to G_EndGame

This commit is contained in:
Monster Iestyn 2017-05-18 16:54:58 +01:00
parent 8196c59557
commit 31f3f8b8e7
5 changed files with 37 additions and 36 deletions

View file

@ -1733,7 +1733,7 @@ static void F_AdvanceToNextScene(void)
void F_EndCutScene(void) void F_EndCutScene(void)
{ {
cutsceneover = true; // do this first, just in case Y_EndGame or something wants to turn it back false later cutsceneover = true; // do this first, just in case G_EndGame or something wants to turn it back false later
if (runningprecutscene) if (runningprecutscene)
{ {
if (server) if (server)
@ -1748,7 +1748,7 @@ void F_EndCutScene(void)
else if (nextmap < 1100-1) else if (nextmap < 1100-1)
G_NextLevel(); G_NextLevel();
else else
Y_EndGame(); G_EndGame();
} }
} }

View file

@ -2911,7 +2911,7 @@ void G_AfterIntermission(void)
if (nextmap < 1100-1) if (nextmap < 1100-1)
G_NextLevel(); G_NextLevel();
else else
Y_EndGame(); G_EndGame();
} }
} }
@ -2997,6 +2997,38 @@ static void G_DoContinued(void)
gameaction = ga_nothing; gameaction = ga_nothing;
} }
//
// G_EndGame (formerly Y_EndGame)
// Franky this function fits better in g_game.c than it does in y_inter.c
//
// ...Gee, (why) end the game?
// Because Y_FollowIntermission and F_EndCutscene would
// both do this exact same thing *in different ways* otherwise,
// which made it so that you could only unlock Ultimate mode
// if you had a cutscene after the final level and crap like that.
// This function simplifies it so only one place has to be updated
// when something new is added.
void G_EndGame(void)
{
// Only do evaluation and credits in coop games.
if (gametype == GT_COOP)
{
if (nextmap == 1102-1) // end game with credits
{
F_StartCredits();
return;
}
if (nextmap == 1101-1) // end game with evaluation
{
F_StartGameEvaluation();
return;
}
}
// 1100 or competitive multiplayer, so go back to title screen.
D_StartTitle();
}
// //
// G_LoadGameSettings // G_LoadGameSettings
// //

View file

@ -171,6 +171,7 @@ void G_NextLevel(void);
void G_Continue(void); void G_Continue(void);
void G_UseContinue(void); void G_UseContinue(void);
void G_AfterIntermission(void); void G_AfterIntermission(void);
void G_EndGame(void); // moved from y_inter.c/h and renamed
void G_Ticker(boolean run); void G_Ticker(boolean run);
boolean G_Responder(event_t *ev); boolean G_Responder(event_t *ev);

View file

@ -1794,37 +1794,6 @@ void Y_EndIntermission(void)
usebuffer = false; usebuffer = false;
} }
//
// Y_EndGame
//
// Why end the game?
// Because Y_FollowIntermission and F_EndCutscene would
// both do this exact same thing *in different ways* otherwise,
// which made it so that you could only unlock Ultimate mode
// if you had a cutscene after the final level and crap like that.
// This function simplifies it so only one place has to be updated
// when something new is added.
void Y_EndGame(void)
{
// Only do evaluation and credits in coop games.
if (gametype == GT_COOP)
{
if (nextmap == 1102-1) // end game with credits
{
F_StartCredits();
return;
}
if (nextmap == 1101-1) // end game with evaluation
{
F_StartGameEvaluation();
return;
}
}
// 1100 or competitive multiplayer, so go back to title screen.
D_StartTitle();
}
// //
// Y_FollowIntermission // Y_FollowIntermission
// //
@ -1850,7 +1819,7 @@ static void Y_FollowIntermission(void)
return; return;
} }
Y_EndGame(); G_EndGame();
} }
#define UNLOAD(x) Z_ChangeTag(x, PU_CACHE); x = NULL #define UNLOAD(x) Z_ChangeTag(x, PU_CACHE); x = NULL

View file

@ -15,7 +15,6 @@ void Y_IntermissionDrawer(void);
void Y_Ticker(void); void Y_Ticker(void);
void Y_StartIntermission(void); void Y_StartIntermission(void);
void Y_EndIntermission(void); void Y_EndIntermission(void);
void Y_EndGame(void);
typedef enum typedef enum
{ {