From 8a5069156fafaf7f626cc9f13be4da60150dbb50 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 10 Jul 2020 21:16:28 +0100 Subject: [PATCH 1/4] Add a small amount of extra info to the Evaluation screen for Marathon Mode, on request from multiple runners. --- src/f_finale.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/f_finale.c b/src/f_finale.c index eb6e283ad..f47c6c1a7 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -1674,6 +1674,18 @@ void F_GameEvaluationDrawer(void) V_DrawString(8, 96, V_YELLOWMAP, "Modified games\ncan't unlock\nextras!"); } #endif + + if (marathonmode) + { + const char *rtatext, *cuttext; + rtatext = (marathonmode & MA_INGAME) ? "In-game timer" : "RTA timer"; + cuttext = (marathonmode & MA_NOCUTSCENES) ? "" : " w/ cutscenes"; + if (botskin) + 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); + } } void F_GameEvaluationTicker(void) From 1956e9e6706299e33fc3a66a7b535c7c08a93fe1 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 10 Jul 2020 21:24:25 +0100 Subject: [PATCH 2/4] Change the default value of the In-game/Realtime timer selection, based on speedrunner feedback. --- src/m_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/m_menu.c b/src/m_menu.c index dba792e90..7ebf4203b 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -487,7 +487,7 @@ CV_PossibleValue_t loadless_cons_t[] = {{0, "Realtime"}, {1, "In-game"}, {0, NUL consvar_t cv_dummymarathon = {"dummymarathon", "Standard", CV_HIDEN, marathon_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_dummycutscenes = {"dummycutscenes", "Off", CV_HIDEN, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_dummyloadless = {"dummyloadless", "Realtime", CV_HIDEN, loadless_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_dummyloadless = {"dummyloadless", "In-game", CV_HIDEN, loadless_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // ========================================================================== // ORGANIZATION START. From 4c9cdcca0d86e2889b4fb3781d4059cfb43f5340 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 10 Jul 2020 21:27:34 +0100 Subject: [PATCH 3/4] Hopefully fix the issue, which I can't recreate, of live event backups being created even if they shouldn't. --- src/m_menu.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index 7ebf4203b..131f72c76 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -10563,8 +10563,7 @@ static void M_StartMarathon(INT32 choice) (void)choice; marathontime = 0; marathonmode = MA_RUNNING|MA_INIT; - if (cv_dummymarathon.value == 1) - cursaveslot = MARATHONSLOT; + cursaveslot = (cv_dummymarathon.value == 1) ? MARATHONSLOT : 0; if (!cv_dummycutscenes.value) marathonmode |= MA_NOCUTSCENES; if (cv_dummyloadless.value) From 217ac14ac57c472ec4334737360681dd2b36afe7 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 10 Jul 2020 21:36:37 +0100 Subject: [PATCH 4/4] Introduce a live event backup penalty for non MA_INGAME runs, since the change to saving time causes problems for this. --- src/g_game.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index b20157156..b974b87ea 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4498,7 +4498,10 @@ void G_SaveGame(UINT32 slot, INT16 mapnum) P_SaveGame(mapnum); if (marathonmode) { - WRITEUINT32(save_p, marathontime); + 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 + WRITEUINT32(save_p, writetime); WRITEUINT8(save_p, (marathonmode & ~MA_INIT)); }