From 5fc7aebf87b91cc9f4c27812dbf6b034012a72df Mon Sep 17 00:00:00 2001 From: coco875 <59367621+coco875@users.noreply.github.com> Date: Wed, 24 Dec 2025 16:44:45 +0100 Subject: fix item in multiplayer (#612) --- src/engine/RaceManager.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src/engine/RaceManager.cpp') diff --git a/src/engine/RaceManager.cpp b/src/engine/RaceManager.cpp index 96d0ad2ff..cecda6ced 100644 --- a/src/engine/RaceManager.cpp +++ b/src/engine/RaceManager.cpp @@ -119,8 +119,8 @@ void RaceManager::PostInit() { } void RaceManager::SetItemTables() { - std::string humanTableName = ""; - std::string cpuTableName = ""; + std::optional humanTableName; + std::optional cpuTableName; switch(gModeSelection) { case GRAND_PRIX: @@ -131,32 +131,36 @@ void RaceManager::SetItemTables() { humanTableName = "mk:human_grand_prix"; cpuTableName = "mk:cpu_grand_prix"; } + break; case VERSUS: switch (gPlayerCountSelection1) { case TWO_PLAYERS_SELECTED: humanTableName = "mk:versus_2p"; - cpuTableName = "none selected"; break; case THREE_PLAYERS_SELECTED: humanTableName = "mk:versus_3p"; - cpuTableName = "none selected"; break; case FOUR_PLAYERS_SELECTED: humanTableName = "mk:versus_4p"; - cpuTableName = "none selected"; break; } break; case BATTLE: humanTableName = "mk:battle"; - cpuTableName = "none selected"; break; } - - mHumanItemTable = gItemTableRegistry.Get(humanTableName); - mCPUItemTable = gItemTableRegistry.Get(cpuTableName); - printf("[RaceManager] Selected human item probability table %s\n", humanTableName.c_str()); - printf("[RaceManager] Selected cpu item probability table %s\n", cpuTableName.c_str()); + if (humanTableName.has_value()) { + mHumanItemTable = gItemTableRegistry.Get(humanTableName.value()); + } else { + mHumanItemTable = nullptr; + } + if (cpuTableName.has_value()) { + mCPUItemTable = gItemTableRegistry.Get(cpuTableName.value()); + } else { + mCPUItemTable = nullptr; + } + printf("[RaceManager] Selected human item probability table %s\n", humanTableName.value_or("none").c_str()); + printf("[RaceManager] Selected cpu item probability table %s\n", cpuTableName.value_or("none").c_str()); } extern "C" int16_t RaceManager_GetRandomHumanItem(uint32_t rank) { -- cgit v1.2.3