diff --git a/src/g_game.c b/src/g_game.c index 67ef0fe27..960166b70 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -492,7 +492,7 @@ tic_t G_GetBestLap(INT16 map) struct stickermedalinfo stickermedalinfo; -void G_UpdateTimeStickerMedals(UINT16 map) +void G_UpdateTimeStickerMedals(UINT16 map, boolean showownrecord) { emblem_t *emblem = M_GetLevelEmblems(map+1); boolean gonnadrawtime = false; @@ -556,13 +556,21 @@ bademblem: stickermedalinfo.timetoreach = mapheaderinfo[map]->ghostBrief[emblem->tag-1]->time; } - - snprintf(stickermedalinfo.targettext, 9, "%i'%02i\"%02i", - G_TicsToMinutes(stickermedalinfo.timetoreach, false), - G_TicsToSeconds(stickermedalinfo.timetoreach), - G_TicsToCentiseconds(stickermedalinfo.timetoreach)); } } + + if (!gonnadrawtime && showownrecord) + { + stickermedalinfo.timetoreach = G_GetBestTime(map); + } + + if (stickermedalinfo.timetoreach != UINT32_MAX) + { + snprintf(stickermedalinfo.targettext, 9, "%i'%02i\"%02i", + G_TicsToMinutes(stickermedalinfo.timetoreach, false), + G_TicsToSeconds(stickermedalinfo.timetoreach), + G_TicsToCentiseconds(stickermedalinfo.timetoreach)); + } } void G_TickTimeStickerMedals(void) @@ -630,7 +638,7 @@ void G_UpdateRecords(void) if (stickermedalinfo.regenemblem != NULL && gamedata->collected[(stickermedalinfo.regenemblem-emblemlocations)]) { - G_UpdateTimeStickerMedals(gamemap-1); + G_UpdateTimeStickerMedals(gamemap-1, false); } stickermedalinfo.jitter = 4*earnedEmblems; diff --git a/src/g_game.h b/src/g_game.h index df8f0833a..856df5e13 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -213,7 +213,7 @@ extern struct stickermedalinfo char targettext[9]; } stickermedalinfo; -void G_UpdateTimeStickerMedals(UINT16 map); +void G_UpdateTimeStickerMedals(UINT16 map, boolean showownrecord); void G_TickTimeStickerMedals(void); void G_UpdateRecords(void); diff --git a/src/menus/play-local-race-time-attack.c b/src/menus/play-local-race-time-attack.c index b64fd2715..054681792 100644 --- a/src/menus/play-local-race-time-attack.c +++ b/src/menus/play-local-race-time-attack.c @@ -191,7 +191,7 @@ void M_PrepareTimeAttack(INT32 choice) } // Time-sticker Medals - G_UpdateTimeStickerMedals(levellist.choosemap); + G_UpdateTimeStickerMedals(levellist.choosemap, false); // Menu options { @@ -468,4 +468,6 @@ void M_StartTimeAttack(INT32 choice) M_ClearMenus(true); D_MapChange(levellist.choosemap+1, levellist.newgametype, (cv_dummygpencore.value == 1), 1, 1, false, false); + + G_UpdateTimeStickerMedals(levellist.choosemap, true); }