Fix boss souls on item tracker (#6142)
This commit is contained in:
@@ -755,6 +755,14 @@ void DrawQuest(ItemTrackerItem item) {
|
|||||||
Tooltip(SohUtils::GetQuestItemName(item.id).c_str());
|
Tooltip(SohUtils::GetQuestItemName(item.id).c_str());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool HasBossSoul(RandomizerInf bossSoul) {
|
||||||
|
uint8_t soulSetting = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BOSS_SOULS);
|
||||||
|
bool isSoulRandomized = IS_RANDO && (soulSetting == RO_BOSS_SOULS_ON_PLUS_GANON ||
|
||||||
|
(soulSetting == RO_BOSS_SOULS_ON && bossSoul != RAND_INF_GANON_SOUL));
|
||||||
|
|
||||||
|
return isSoulRandomized ? Flags_GetRandomizerInf(bossSoul) : true;
|
||||||
|
}
|
||||||
|
|
||||||
void DrawItem(ItemTrackerItem item) {
|
void DrawItem(ItemTrackerItem item) {
|
||||||
|
|
||||||
uint32_t actualItemId = GameInteractor::IsSaveLoaded() ? INV_CONTENT(item.id) : ITEM_NONE;
|
uint32_t actualItemId = GameInteractor::IsSaveLoaded() ? INV_CONTENT(item.id) : ITEM_NONE;
|
||||||
@@ -811,50 +819,47 @@ void DrawItem(ItemTrackerItem item) {
|
|||||||
break;
|
break;
|
||||||
case RG_GOHMA_SOUL:
|
case RG_GOHMA_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_GOHMA_SOUL);
|
hasItem = HasBossSoul(RAND_INF_GOHMA_SOUL);
|
||||||
itemName = "Gohma's Soul";
|
itemName = "Gohma's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_KING_DODONGO_SOUL:
|
case RG_KING_DODONGO_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_KING_DODONGO_SOUL);
|
hasItem = HasBossSoul(RAND_INF_KING_DODONGO_SOUL);
|
||||||
itemName = "King Dodongo's Soul";
|
itemName = "King Dodongo's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_BARINADE_SOUL:
|
case RG_BARINADE_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_BARINADE_SOUL);
|
hasItem = HasBossSoul(RAND_INF_BARINADE_SOUL);
|
||||||
itemName = "Barinade's Soul";
|
itemName = "Barinade's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_PHANTOM_GANON_SOUL:
|
case RG_PHANTOM_GANON_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_PHANTOM_GANON_SOUL);
|
hasItem = HasBossSoul(RAND_INF_PHANTOM_GANON_SOUL);
|
||||||
itemName = "Phantom Ganon's Soul";
|
itemName = "Phantom Ganon's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_VOLVAGIA_SOUL:
|
case RG_VOLVAGIA_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_VOLVAGIA_SOUL);
|
hasItem = HasBossSoul(RAND_INF_VOLVAGIA_SOUL);
|
||||||
itemName = "Volvagia's Soul";
|
itemName = "Volvagia's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_MORPHA_SOUL:
|
case RG_MORPHA_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_MORPHA_SOUL);
|
hasItem = HasBossSoul(RAND_INF_MORPHA_SOUL);
|
||||||
itemName = "Morpha's Soul";
|
itemName = "Morpha's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_BONGO_BONGO_SOUL:
|
case RG_BONGO_BONGO_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_BONGO_BONGO_SOUL);
|
hasItem = HasBossSoul(RAND_INF_BONGO_BONGO_SOUL);
|
||||||
itemName = "Bongo Bongo's Soul";
|
itemName = "Bongo Bongo's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_TWINROVA_SOUL:
|
case RG_TWINROVA_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_TWINROVA_SOUL);
|
hasItem = HasBossSoul(RAND_INF_TWINROVA_SOUL);
|
||||||
itemName = "Twinrova's Soul";
|
itemName = "Twinrova's Soul";
|
||||||
break;
|
break;
|
||||||
case RG_GANON_SOUL:
|
case RG_GANON_SOUL:
|
||||||
actualItemId = item.id;
|
actualItemId = item.id;
|
||||||
hasItem = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BOSS_SOULS) ==
|
hasItem = HasBossSoul(RAND_INF_GANON_SOUL);
|
||||||
RO_BOSS_SOULS_ON_PLUS_GANON
|
|
||||||
? Flags_GetRandomizerInf(RAND_INF_GANON_SOUL)
|
|
||||||
: true;
|
|
||||||
itemName = "Ganon's Soul";
|
itemName = "Ganon's Soul";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user