fix item in multiplayer (#612)

This commit is contained in:
coco875
2025-12-24 16:44:45 +01:00
committed by GitHub
parent b0582b5c32
commit 5fc7aebf87
2 changed files with 25 additions and 20 deletions
+15 -11
View File
@@ -119,8 +119,8 @@ void RaceManager::PostInit() {
}
void RaceManager::SetItemTables() {
std::string humanTableName = "";
std::string cpuTableName = "";
std::optional<std::string> humanTableName;
std::optional<std::string> 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) {
+10 -9
View File
@@ -365,15 +365,16 @@ void RegisterVersus4PItemTable(DataRegistry<RandomItemTable>& r) {
void RegisterBattleItemTable(DataRegistry<RandomItemTable>& r) {
RandomItemTable table;
table.Add("mk:banana", RANK_ONE, 10, 0.0f);
table.Add("mk:banana_bunch", RANK_ONE, 5, 0.0f);
table.Add("mk:green_shell", RANK_ONE, 5, 0.0f);
table.Add("mk:triple_green_shell", RANK_ONE, 20, 0.0f);
table.Add("mk:red_shell", RANK_ONE, 20, 0.0f);
table.Add("mk:fake_item_box", RANK_ONE, 15, 0.0f);
table.Add("mk:star", RANK_ONE, 20, 0.0f);
table.Add("mk:boo", RANK_ONE, 5, 0.0f);
for (int rank = RANK_ONE; rank <= RANK_EIGHT; rank++) {
table.Add("mk:banana", rank, 10, 0.0f);
table.Add("mk:banana_bunch", rank, 5, 0.0f);
table.Add("mk:green_shell", rank, 5, 0.0f);
table.Add("mk:triple_green_shell", rank, 20, 0.0f);
table.Add("mk:red_shell", rank, 20, 0.0f);
table.Add("mk:fake_item_box", rank, 15, 0.0f);
table.Add("mk:star", rank, 20, 0.0f);
table.Add("mk:boo", rank, 5, 0.0f);
}
r.Add("mk:battle", std::move(table));
}