From e1a217dc105d568fb1ef76ee124b5d3636dbf3b2 Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 12 Jul 2020 13:00:08 +0100 Subject: [PATCH 1/2] Two minor fixes for Marathon Mode. * Apply the RTA penalty to the live event backup rather than the current timer. (Resolves #184) * Snap the character name and timer mode text to the bottom of the screen, just above the bar. --- src/f_finale.c | 2 +- src/g_game.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/f_finale.c b/src/f_finale.c index f47c6c1a7..8d39a7533 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -1684,7 +1684,7 @@ void F_GameEvaluationDrawer(void) endingtext = va("%s & %s, %s%s", skins[players[consoleplayer].skin].realname, skins[botskin-1].realname, rtatext, cuttext); else endingtext = va("%s, %s%s", skins[players[consoleplayer].skin].realname, rtatext, cuttext); - V_DrawCenteredString(BASEVIDWIDTH/2, 182, (ultimatemode ? V_REDMAP : V_YELLOWMAP), endingtext); + V_DrawCenteredString(BASEVIDWIDTH/2, 182, V_SNAPTOBOTTOM|(ultimatemode ? V_REDMAP : V_YELLOWMAP), endingtext); } } diff --git a/src/g_game.c b/src/g_game.c index 69aac5065..cce4ac822 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4505,7 +4505,7 @@ void G_SaveGame(UINT32 slot, INT16 mapnum) { UINT32 writetime = marathontime; if (!(marathonmode & MA_INGAME)) - marathontime += TICRATE*5; // live event backup penalty because we don't know how long it takes to get to the next map + writetime += TICRATE*5; // live event backup penalty because we don't know how long it takes to get to the next map WRITEUINT32(save_p, writetime); WRITEUINT8(save_p, (marathonmode & ~MA_INIT)); } From 0a625d3e19807e2cea05f6f25b87832f306a49e7 Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 12 Jul 2020 19:00:58 +0100 Subject: [PATCH 2/2] Fix live event backups being created at run start; there's no meaningful progress in GFZ1 to recover from. --- src/p_setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_setup.c b/src/p_setup.c index b16e13faa..2fd7ba5b0 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3756,7 +3756,7 @@ boolean P_LoadLevel(boolean fromnetsave) if (!lastmaploaded) // Start a new game? { // I'd love to do this in the menu code instead of here, but everything's a mess and I can't guarantee saving proper player struct info before the first act's started. You could probably refactor it, but it'd be a lot of effort. Easier to just work off known good code. ~toast 22/06/2020 - if (!(ultimatemode || netgame || multiplayer || demoplayback || demorecording || metalrecording || modeattacking) + if (!(ultimatemode || netgame || multiplayer || demoplayback || demorecording || metalrecording || modeattacking || marathonmode) && (!modifiedgame || savemoddata) && cursaveslot > 0) G_SaveGame((UINT32)cursaveslot, gamemap); // If you're looking for saving sp file progression (distinct from G_SaveGameOver), check G_DoCompleted.