Y_DetermineIntermissionType: Make this function the sole authority on whether an intermission occours or not.

A return to cleanliness in G_DoCompleted.
This commit is contained in:
toaster 2023-06-02 20:51:48 +01:00
parent 82b60cc585
commit 0bec8317f3
2 changed files with 6 additions and 4 deletions

View file

@ -4520,9 +4520,7 @@ static void G_DoCompleted(void)
// If the current gametype has no intermission screen set, then don't start it. // If the current gametype has no intermission screen set, then don't start it.
Y_DetermineIntermissionType(); Y_DetermineIntermissionType();
if ((skipstats && !modeattacking) if (intertype == int_none)
|| (modeattacking && (players[consoleplayer].pflags & PF_NOCONTEST))
|| (intertype == int_none))
{ {
G_UpdateVisited(); G_UpdateVisited();
G_AfterIntermission(); G_AfterIntermission();

View file

@ -1589,7 +1589,11 @@ void Y_Ticker(void)
void Y_DetermineIntermissionType(void) void Y_DetermineIntermissionType(void)
{ {
// no intermission for GP events // no intermission for GP events
if (grandprixinfo.gp == true && grandprixinfo.eventmode != GPEVENT_NONE) if ((grandprixinfo.gp == true && grandprixinfo.eventmode != GPEVENT_NONE)
// or for failing in time attack mode
|| (modeattacking && (players[consoleplayer].pflags & PF_NOCONTEST))
// or for explicit requested skip (outside of modeattacking)
|| (modeattacking == ATTACKING_NONE && skipstats != 0))
{ {
intertype = int_none; intertype = int_none;
return; return;