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) diff --git a/src/g_game.c b/src/g_game.c index f514a8a22..69aac5065 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4503,7 +4503,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)); } diff --git a/src/m_menu.c b/src/m_menu.c index dba792e90..131f72c76 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. @@ -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)