Fix dungeon/overworld only settings

This commit is contained in:
aMannus 2024-01-06 13:58:47 +01:00
parent a61594d796
commit ff2df9c772
2 changed files with 15 additions and 4 deletions

View File

@ -1567,7 +1567,7 @@ void Rando::StaticData::InitLocationTable() {
locationTable[RC_LLR_RAIN_SHED_POT_3] = Location::Base(RC_LLR_RAIN_SHED_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(872, 219), 0x4f03, "Rain Shed Pot 3", "LLR Rain Shed Pot 3", RHT_LLR_RAIN_SHED_POT_3, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x63, 0x00), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH);
locationTable[RC_LLR_TALONS_HOUSE_POT_1] = Location::Base(RC_LLR_TALONS_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(1255, 47), 0x5700, "Talons House Pot 1", "LLR Talons House Pot 1", RHT_LLR_TALONS_HOUSE_POT_1, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x4C, 0x00), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH);
locationTable[RC_LLR_TALONS_HOUSE_POT_2] = Location::Base(RC_LLR_TALONS_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(1256, -51), 0x5501, "Talons House Pot 2", "LLR Talons House Pot 2", RHT_LLR_TALONS_HOUSE_POT_2, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x4C, 0x00), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH);
locationTable[RC_LLR_TALONS_HOUSE_POT_3] = Location::Base(RC_LLR_TALONS_HOUSE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(156, -78), 0x5301, "Talons House Pot 3", "LLR Talons House Pot 3", RHT_LLR_TALONS_HOUSE_POT_3, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x4C, 0x00), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH);
locationTable[RC_LLR_TALONS_HOUSE_POT_3] = Location::Base(RC_LLR_TALONS_HOUSE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(1256, -78), 0x5301, "Talons House Pot 3", "LLR Talons House Pot 3", RHT_LLR_TALONS_HOUSE_POT_3, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x4C, 0x00), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH);
locationTable[RC_HF_COW_GROTTO_POT_1] = Location::Base(RC_HF_COW_GROTTO_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_FIELD, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3410, -223), 0x430f, "Cow Grotto Pot 1", "HF Cow Grotto Pot 1", RHT_HF_COW_GROTTO_POT_1, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x3E, 0x00), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD);
locationTable[RC_HF_COW_GROTTO_POT_2] = Location::Base(RC_HF_COW_GROTTO_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_FIELD, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3390, -258), 0x410e, "Cow Grotto Pot 2", "HF Cow Grotto Pot 2", RHT_HF_COW_GROTTO_POT_2, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x3E, 0x00), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD);
locationTable[RC_HC_STORMS_GROTTO_POT_1] = Location::Base(RC_HC_STORMS_GROTTO_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(1843, 1014), 0x4502, "Storms Grotto Pot 1", "HC Storms Grotto Pot 1", RHT_HC_STORMS_GROTTO_POT_1, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x3E, 0x00), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE);

View File

@ -85,9 +85,20 @@ static InitChainEntry sInitChain[] = {
};
s8 ObjTsubo_HoldsRandomizedItem(ObjTsubo* this, PlayState* play) {
return Randomizer_GetSettingValue(RSK_SHUFFLE_POTS) &&
!Flags_GetRandomizerInf(this->potIdentity.randomizerInf) &&
this->potIdentity.randomizerCheck != RC_UNKNOWN_CHECK;
uint8_t isDungeon = play->sceneNum < SCENE_GANONS_TOWER_COLLAPSE_INTERIOR ||
(play->sceneNum > SCENE_TREASURE_BOX_SHOP && play->sceneNum < SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR);
uint8_t potSetting = Randomizer_GetSettingValue(RSK_SHUFFLE_POTS);
// Don't pull randomized item if pot isn't randomized or is already checked
if (!IS_RANDO || !potSetting ||
(potSetting == RO_SHUFFLE_POTS_OVERWORLD && isDungeon) ||
(potSetting == RO_SHUFFLE_POTS_DUNGEONS && !isDungeon) ||
Flags_GetRandomizerInf(this->potIdentity.randomizerInf) ||
this->potIdentity.randomizerCheck == RC_UNKNOWN_CHECK) {
return false;
} else {
return true;
}
}
void ObjTsubo_SpawnCollectible(ObjTsubo* this, PlayState* play) {