diff --git a/src/hud/timer.cpp b/src/hud/timer.cpp index e59955473..12c09d592 100644 --- a/src/hud/timer.cpp +++ b/src/hud/timer.cpp @@ -13,6 +13,11 @@ namespace constexpr INT32 kHudFlags = V_HUDTRANS | V_SLIDEIN; +tic_t player_timer(const player_t* player) +{ + return K_TranslateTimer(player->realtime, 0, nullptr); +} + }; // namespace void K_drawKart2PTimestamp(void) @@ -32,7 +37,7 @@ void K_drawKart2PTimestamp(void) Draw row = get_row().flags(kHudFlags | V_SNAPTORIGHT).font(Draw::Font::kZVote); row.patch("K_STTIMS"); - row.xy(12, 2).text("{:03}", stplyr->realtime / TICRATE); + row.xy(12, 2).text("{:03}", player_timer(stplyr) / TICRATE); } void K_drawKart4PTimestamp(void) @@ -45,7 +50,7 @@ void K_drawKart4PTimestamp(void) row.xy(5, 12).text("{:03}", time / TICRATE); }; - auto time_of = [](int k) -> tic_t { return k <= r_splitscreen ? players[displayplayers[k]].realtime : 0u; }; + auto time_of = [](int k) -> tic_t { return k <= r_splitscreen ? player_timer(&players[displayplayers[k]]) : 0u; }; draw(row.y(1).flags(V_SNAPTOTOP), std::max(time_of(0), time_of(1))); draw(row.y(178).flags(V_SNAPTOBOTTOM), std::max(time_of(2), time_of(3))); diff --git a/src/k_hud.c b/src/k_hud.c index c6d71dec9..57d3f3fbf 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1684,12 +1684,8 @@ static void K_drawKartSlotMachine(void) V_ClearClipRect(); } -void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT32 splitflags, UINT8 mode) +tic_t K_TranslateTimer(tic_t drawtime, UINT8 mode, INT32 *return_jitter) { - // TIME_X = BASEVIDWIDTH-124; // 196 - // TIME_Y = 6; // 6 - - tic_t worktime; INT32 jitter = 0; if (!mode) @@ -1725,6 +1721,24 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT32 splitflags, U } } + if (return_jitter) + { + *return_jitter = jitter; + } + + return drawtime; +} + +void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT32 splitflags, UINT8 mode) +{ + // TIME_X = BASEVIDWIDTH-124; // 196 + // TIME_Y = 6; // 6 + + tic_t worktime; + INT32 jitter = 0; + + drawtime = K_TranslateTimer(drawtime, mode, &jitter); + V_DrawScaledPatch(TX, TY, splitflags, ((mode == 2) ? kp_lapstickerwide : kp_timestickerwide)); TX += 33; diff --git a/src/k_hud.h b/src/k_hud.h index 9c6d4bebd..055906290 100644 --- a/src/k_hud.h +++ b/src/k_hud.h @@ -36,6 +36,8 @@ struct trackingResult_t void K_ObjectTracking(trackingResult_t *result, const vector3_t *point, boolean reverse); +tic_t K_TranslateTimer(tic_t drawtime, UINT8 mode, INT32 *return_jitter); + const char *K_GetItemPatch(UINT8 item, boolean tiny); void K_LoadKartHUDGraphics(void); void K_drawKartHUD(void);