From d63b89e585e4dacf830e160d2f51cdf64c500ab9 Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 23 Feb 2024 17:20:11 -0800 Subject: [PATCH 1/4] debugwaypoints: replace console font with compact view --- src/k_hud.cpp | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 7eb39841f..543fd25dc 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -5546,22 +5546,41 @@ static void K_DrawWaypointDebugger(void) if (R_GetViewNumber() != 0) // only for p1 return; + constexpr int kH = 8; + using srb2::Draw; + Draw::TextElement label; + label.font(Draw::Font::kThin); + label.flags(V_AQUAMAP); + Draw line = Draw(8, 136).font(Draw::Font::kMenu); + auto put = [&](const char* label_str, auto&&... args) + { + constexpr int kTabWidth = 48; + label.string(label_str); + int x = label.width() + kTabWidth; + x -= x % kTabWidth; + line.size(x + 4, 2).y(7).fill(31); + line.text(label); + line.x(x).text(args...); + line = line.y(kH); + }; + if (netgame) { - V_DrawString(8, 136, 0, va("Online griefing: [%u, %u]", stplyr->griefValue/TICRATE, stplyr->griefStrikes)); + line = line.y(-kH); + put("Online griefing:", "[{}, {}]", stplyr->griefValue/TICRATE, stplyr->griefStrikes); } - V_DrawString(8, 146, 0, va("Current Waypoint ID: %d", K_GetWaypointID(stplyr->currentwaypoint))); - V_DrawString(8, 156, 0, va("Next Waypoint ID: %d%s", K_GetWaypointID(stplyr->nextwaypoint), ((stplyr->pflags & PF_WRONGWAY) ? " (WRONG WAY)" : ""))); - V_DrawString(8, 166, 0, va("Respawn Waypoint ID: %d", K_GetWaypointID(stplyr->respawn.wp))); - V_DrawString(8, 176, 0, va("Finishline Distance: %d", stplyr->distancetofinish)); + put("Current Waypoint ID:", "{}", K_GetWaypointID(stplyr->currentwaypoint)); + put("Next Waypoint ID:", "{}{}", K_GetWaypointID(stplyr->nextwaypoint), ((stplyr->pflags & PF_WRONGWAY) ? " (WRONG WAY)" : "")); + put("Respawn Waypoint ID:", "{}", K_GetWaypointID(stplyr->respawn.wp)); + put("Finishline Distance:", "{}", stplyr->distancetofinish); if (numcheatchecks > 0) { if (stplyr->cheatchecknum == numcheatchecks) - V_DrawString(8, 186, 0, va("Cheat Check: %d / %d (Can finish)", stplyr->cheatchecknum, numcheatchecks)); + put("Cheat Check:", "{} / {} (Can finish)", stplyr->cheatchecknum, numcheatchecks); else - V_DrawString(8, 186, 0, va("Cheat Check: %d / %d", stplyr->cheatchecknum, numcheatchecks)); + put("Cheat Check:", "{} / {}", stplyr->cheatchecknum, numcheatchecks); } } From f944161d82fc596fb56de762dacb1878ab484934 Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 23 Feb 2024 17:20:39 -0800 Subject: [PATCH 2/4] debugwaypoints: show Last Safe Lap and Last Safe Cheat Check --- src/k_hud.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 543fd25dc..7cdc9b940 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -5574,6 +5574,7 @@ static void K_DrawWaypointDebugger(void) put("Next Waypoint ID:", "{}{}", K_GetWaypointID(stplyr->nextwaypoint), ((stplyr->pflags & PF_WRONGWAY) ? " (WRONG WAY)" : "")); put("Respawn Waypoint ID:", "{}", K_GetWaypointID(stplyr->respawn.wp)); put("Finishline Distance:", "{}", stplyr->distancetofinish); + put("Last Safe Lap:", "{}", stplyr->lastsafelap); if (numcheatchecks > 0) { @@ -5581,6 +5582,7 @@ static void K_DrawWaypointDebugger(void) put("Cheat Check:", "{} / {} (Can finish)", stplyr->cheatchecknum, numcheatchecks); else put("Cheat Check:", "{} / {}", stplyr->cheatchecknum, numcheatchecks); + put("Last Safe Cheat Check:", "{}", stplyr->lastsafecheatcheck); } } From 5d97ced652f79b8fd0d880e3fa76e2735ed6950a Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 23 Feb 2024 17:21:54 -0800 Subject: [PATCH 3/4] K_DrawTargetTracking: refactor slightly --- src/k_hud_track.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/k_hud_track.cpp b/src/k_hud_track.cpp index 7b1920ab9..9007929d9 100644 --- a/src/k_hud_track.cpp +++ b/src/k_hud_track.cpp @@ -564,14 +564,23 @@ void K_DrawTargetTracking(const TargetTracking& target) ); }; - if (target.mobj->type == MT_BATTLEUFO_SPAWNER) // debug + using srb2::Draw; + auto debug = [&]() -> Draw { - using srb2::Draw; - Draw(FixedToFloat(result.x), FixedToFloat(result.y)) + return Draw(FixedToFloat(result.x), FixedToFloat(result.y)) .flags(V_SPLITSCREEN) .font(Draw::Font::kThin) - .align(Draw::Align::kCenter) - .text("BUFO ID: {}", Obj_BattleUFOSpawnerID(target.mobj)); + .align(Draw::Align::kCenter); + }; + + switch (target.mobj->type) // debug + { + case MT_BATTLEUFO_SPAWNER: + debug().text("BUFO ID: {}", Obj_BattleUFOSpawnerID(target.mobj)); + break; + + default: + break; } } } From cc89c743c0c7501e7f0e069badbe89c681bfa5f8 Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 23 Feb 2024 17:22:24 -0800 Subject: [PATCH 4/4] debugwaypoints: HUD tracking shows waypoint ID of nearby waypoints --- src/k_hud_track.cpp | 15 ++++++++++++++- src/p_mobj.c | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/k_hud_track.cpp b/src/k_hud_track.cpp index 9007929d9..1ab870ea3 100644 --- a/src/k_hud_track.cpp +++ b/src/k_hud_track.cpp @@ -28,7 +28,7 @@ using namespace srb2; -extern "C" consvar_t cv_debughudtracker, cv_battleufotest; +extern "C" consvar_t cv_debughudtracker, cv_battleufotest, cv_kartdebugwaypoints; namespace { @@ -109,6 +109,7 @@ struct TargetTracking switch (mobj->type) { case MT_SPRAYCAN: + case MT_WAYPOINT: return false; default: @@ -230,6 +231,7 @@ private: }; case MT_BATTLEUFO_SPAWNER: + case MT_WAYPOINT: return {}; default: @@ -336,6 +338,9 @@ bool is_object_tracking_target(const mobj_t* mobj) case MT_BATTLEUFO_SPAWNER: return cv_battleufotest.value; + case MT_WAYPOINT: + return cv_kartdebugwaypoints.value; + default: return false; } @@ -579,6 +584,14 @@ void K_DrawTargetTracking(const TargetTracking& target) debug().text("BUFO ID: {}", Obj_BattleUFOSpawnerID(target.mobj)); break; + case MT_WAYPOINT: + if (target.camDist < 2048 * mapobjectscale) + { + bool isNext = stplyr->nextwaypoint && stplyr->nextwaypoint->mobj == target.mobj; + debug().flags(isNext ? V_GREENMAP : 0).text("{}", target.mobj->movecount); // waypoint ID + } + break; + default: break; } diff --git a/src/p_mobj.c b/src/p_mobj.c index dabd3ff6a..389d02b47 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -5356,6 +5356,7 @@ static boolean P_IsTrackerType(INT32 type) case MT_BATTLEUFO: case MT_SUPER_FLICKY: case MT_SPRAYCAN: + case MT_WAYPOINT: // debug return true; default: