diff --git a/src/k_tally.cpp b/src/k_tally.cpp index 519428dcb..1c065732d 100644 --- a/src/k_tally.cpp +++ b/src/k_tally.cpp @@ -1231,6 +1231,16 @@ void level_tally_t::Draw(void) work_tics / 10, work_tics % 10 )); + + if (modeattacking && !demo.playback && (state == TALLY_ST_DONE || state == TALLY_ST_TEXT_PAUSE) && players[consoleplayer].realtime < oldbest) + { + drawer_text + .x(197.0 * frac) + .y(13.0 * frac) + .align(srb2::Draw::Align::kCenter) + .font(srb2::Draw::Font::kMenu) + .text((leveltime/2 % 2) ? "NEW RECORD!" : "\x82NEW RECORD!"); + } break; } case TALLY_STAT_TOTALRINGS: diff --git a/src/p_user.c b/src/p_user.c index 598ce31f1..e3d28ff21 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -711,7 +711,7 @@ void P_EndingMusic(void) } else if (modeattacking) { - if (players[consoleplayer].realtime < oldbest && oldbest != (tic_t)UINT32_MAX) + if (players[consoleplayer].realtime < oldbest && oldbest != (tic_t)UINT32_MAX && !demo.playback) jingle = "newrec"; else jingle = "norec"; diff --git a/src/y_inter.cpp b/src/y_inter.cpp index 97926dc07..7e2496de6 100644 --- a/src/y_inter.cpp +++ b/src/y_inter.cpp @@ -599,8 +599,9 @@ void Y_PlayerStandingsDrawer(y_data_t *standings, INT32 xoffset) INT32 letterpos = duelx + (datarightofcolumn ? 44 : 0); - if (j > splitscreen) + if (j > splitscreen || demo.playback) { + // TODO: EGGA isn't strictly correct for demo playback since they're not really network players, but it's better than displaying local profile. V_DrawScaledPatch(letterpos, duely, 0, static_cast(W_CachePatchName(va("CHAR%s", (players[pnum].bot ? "CPU" : "EGGA")), PU_CACHE))); } else