diff --git a/src/g_game.c b/src/g_game.c index 2ee798cda..4e3e5f0c7 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1831,7 +1831,6 @@ boolean G_Responder(event_t *ev) pausedelay = 1+(NEWTICRATE/2); else if (++pausedelay > 1+(NEWTICRATE/2)+(NEWTICRATE/3)) { - pausedelay = INT32_MIN; G_SetRetryFlag(); return true; } @@ -1908,7 +1907,10 @@ void G_Ticker(boolean run) G_ClearRetryFlag(); if (modeattacking) + { + pausedelay = INT32_MIN; M_ModeAttackRetry(0); + } else { // Costs a life to retry ... unless the player in question is dead already. diff --git a/src/p_setup.c b/src/p_setup.c index 43da5275b..673541c84 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2734,7 +2734,7 @@ boolean P_SetupLevel(boolean skipprecip) // Special stage fade to white // This is handled BEFORE sounds are stopped. - if (modeattacking && pausedelay == INT32_MIN) + if (modeattacking && !demoplayback && (pausedelay == INT32_MIN)) ranspecialwipe = 2; else if (rendermode != render_none && G_IsSpecialStage(gamemap)) { @@ -2788,7 +2788,7 @@ boolean P_SetupLevel(boolean skipprecip) if (ranspecialwipe == 2) { - pausedelay = -NEWTICRATE; + pausedelay = -3; // preticker plus one S_StartSound(NULL, sfx_s3k73); }