From eb90dcd0473f4b3171a98e5b339b27ac4cc8ac2d Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Tue, 23 Sep 2025 06:53:02 -0400 Subject: [PATCH] Fix debugitemodds displaying wrong odds --- src/k_hud.cpp | 16 +++++++++++++++- src/k_roulette.c | 2 +- src/k_roulette.h | 13 +++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/k_hud.cpp b/src/k_hud.cpp index 09149d92a..7b0be3043 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -7311,7 +7311,21 @@ static void K_drawDistributionDebugger(void) return; } - K_FillItemRouletteData(stplyr, &rouletteData, false, true); + { + // GROSS GROSS GROSS GROSS copypaste from K_FillItemRoulette + // but without the potential for Lua side-effects etc. + // This sucks the ass. + K_InitRoulette(&rouletteData); + + rouletteData.baseDist = K_UndoMapScaling(stplyr->distancetofinish); + + if (stplyr->pflags & PF_AUTOROULETTE) + rouletteData.autoroulette = true; + + K_CalculateRouletteSpeed(&rouletteData); + + K_FillItemRouletteData(stplyr, &rouletteData, false, true); + } if (cv_kartdebugdistribution.value <= 1) return; diff --git a/src/k_roulette.c b/src/k_roulette.c index bfbe1ba73..e1e31dbfc 100644 --- a/src/k_roulette.c +++ b/src/k_roulette.c @@ -735,7 +735,7 @@ boolean K_ForcedSPB(const player_t *player, itemroulette_t *const roulette) Return:- N/A --------------------------------------------------*/ -static void K_InitRoulette(itemroulette_t *const roulette) +void K_InitRoulette(itemroulette_t *const roulette) { size_t i; diff --git a/src/k_roulette.h b/src/k_roulette.h index 6473d43a1..167c4baa9 100644 --- a/src/k_roulette.h +++ b/src/k_roulette.h @@ -138,6 +138,19 @@ UINT32 K_UndoMapScaling(UINT32 distance); N/A --------------------------------------------------*/ +void K_InitRoulette(itemroulette_t *const roulette); +/*-------------------------------------------------- + static void K_InitRoulette(itemroulette_t *const roulette) + + Initializes the data for a new item roulette. + + Input Arguments:- + roulette - The item roulette data to initialize. + + Return:- + N/A +--------------------------------------------------*/ + void K_PushToRouletteItemList(itemroulette_t *const roulette, INT32 item); /*--------------------------------------------------