@@ -755,6 +755,14 @@ void DrawQuest(ItemTrackerItem item) {
755755 Tooltip (SohUtils::GetQuestItemName (item.id ).c_str ());
756756};
757757
758+ bool HasBossSoul (RandomizerInf bossSoul) {
759+ uint8_t soulSetting = OTRGlobals::Instance->gRandomizer ->GetRandoSettingValue (RSK_SHUFFLE_BOSS_SOULS);
760+ bool isSoulRandomized = IS_RANDO && (soulSetting == RO_BOSS_SOULS_ON_PLUS_GANON ||
761+ (soulSetting == RO_BOSS_SOULS_ON && bossSoul != RAND_INF_GANON_SOUL));
762+
763+ return isSoulRandomized ? Flags_GetRandomizerInf (bossSoul) : true ;
764+ }
765+
758766void DrawItem (ItemTrackerItem item) {
759767
760768 uint32_t actualItemId = GameInteractor::IsSaveLoaded () ? INV_CONTENT (item.id ) : ITEM_NONE;
@@ -811,50 +819,47 @@ void DrawItem(ItemTrackerItem item) {
811819 break ;
812820 case RG_GOHMA_SOUL:
813821 actualItemId = item.id ;
814- hasItem = Flags_GetRandomizerInf (RAND_INF_GOHMA_SOUL);
822+ hasItem = HasBossSoul (RAND_INF_GOHMA_SOUL);
815823 itemName = " Gohma's Soul" ;
816824 break ;
817825 case RG_KING_DODONGO_SOUL:
818826 actualItemId = item.id ;
819- hasItem = Flags_GetRandomizerInf (RAND_INF_KING_DODONGO_SOUL);
827+ hasItem = HasBossSoul (RAND_INF_KING_DODONGO_SOUL);
820828 itemName = " King Dodongo's Soul" ;
821829 break ;
822830 case RG_BARINADE_SOUL:
823831 actualItemId = item.id ;
824- hasItem = Flags_GetRandomizerInf (RAND_INF_BARINADE_SOUL);
832+ hasItem = HasBossSoul (RAND_INF_BARINADE_SOUL);
825833 itemName = " Barinade's Soul" ;
826834 break ;
827835 case RG_PHANTOM_GANON_SOUL:
828836 actualItemId = item.id ;
829- hasItem = Flags_GetRandomizerInf (RAND_INF_PHANTOM_GANON_SOUL);
837+ hasItem = HasBossSoul (RAND_INF_PHANTOM_GANON_SOUL);
830838 itemName = " Phantom Ganon's Soul" ;
831839 break ;
832840 case RG_VOLVAGIA_SOUL:
833841 actualItemId = item.id ;
834- hasItem = Flags_GetRandomizerInf (RAND_INF_VOLVAGIA_SOUL);
842+ hasItem = HasBossSoul (RAND_INF_VOLVAGIA_SOUL);
835843 itemName = " Volvagia's Soul" ;
836844 break ;
837845 case RG_MORPHA_SOUL:
838846 actualItemId = item.id ;
839- hasItem = Flags_GetRandomizerInf (RAND_INF_MORPHA_SOUL);
847+ hasItem = HasBossSoul (RAND_INF_MORPHA_SOUL);
840848 itemName = " Morpha's Soul" ;
841849 break ;
842850 case RG_BONGO_BONGO_SOUL:
843851 actualItemId = item.id ;
844- hasItem = Flags_GetRandomizerInf (RAND_INF_BONGO_BONGO_SOUL);
852+ hasItem = HasBossSoul (RAND_INF_BONGO_BONGO_SOUL);
845853 itemName = " Bongo Bongo's Soul" ;
846854 break ;
847855 case RG_TWINROVA_SOUL:
848856 actualItemId = item.id ;
849- hasItem = Flags_GetRandomizerInf (RAND_INF_TWINROVA_SOUL);
857+ hasItem = HasBossSoul (RAND_INF_TWINROVA_SOUL);
850858 itemName = " Twinrova's Soul" ;
851859 break ;
852860 case RG_GANON_SOUL:
853861 actualItemId = item.id ;
854- hasItem = OTRGlobals::Instance->gRandomizer ->GetRandoSettingValue (RSK_SHUFFLE_BOSS_SOULS) ==
855- RO_BOSS_SOULS_ON_PLUS_GANON
856- ? Flags_GetRandomizerInf (RAND_INF_GANON_SOUL)
857- : true ;
862+ hasItem = HasBossSoul (RAND_INF_GANON_SOUL);
858863 itemName = " Ganon's Soul" ;
859864 break ;
860865
0 commit comments