From 74e10183dadc618df9538171427ddf3d681a5ce5 Mon Sep 17 00:00:00 2001 From: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> Date: Sat, 15 Mar 2025 00:34:56 +0100 Subject: [PATCH] Address review --- .../Enhancements/debugger/debugSaveEditor.h | 34 +++++++++--------- .../hint_list/hint_list_exclude_overworld.cpp | 2 +- .../randomizer/ShuffleFairies.cpp | 2 +- .../Enhancements/randomizer/ShufflePots.cpp | 32 ++++++++--------- soh/soh/Enhancements/randomizer/entrance.cpp | 8 ++--- .../Enhancements/randomizer/hook_handlers.cpp | 2 +- .../overworld/gerudo_fortress.cpp | 12 +++---- .../overworld/thieves_hideout.cpp | 12 +++---- .../Enhancements/randomizer/location_list.cpp | 2 +- soh/soh/Enhancements/randomizer/logic.cpp | 2 +- .../Enhancements/randomizer/randomizer.cpp | 32 ++++++++--------- .../Enhancements/randomizer/randomizerTypes.h | 6 ++-- .../Enhancements/randomizer/randomizer_inf.h | 36 +++++++++---------- soh/soh/Enhancements/randomizer/settings.cpp | 2 +- 14 files changed, 92 insertions(+), 92 deletions(-) diff --git a/soh/soh/Enhancements/debugger/debugSaveEditor.h b/soh/soh/Enhancements/debugger/debugSaveEditor.h index 554a90b2a..d25f9cba6 100644 --- a/soh/soh/Enhancements/debugger/debugSaveEditor.h +++ b/soh/soh/Enhancements/debugger/debugSaveEditor.h @@ -516,22 +516,22 @@ const std::vector flagTables = { { RAND_INF_KF_TWINS_HOUSE_POT_2, "RAND_INF_KF_TWINS_HOUSE_POT_2" }, { RAND_INF_KF_BROTHERS_HOUSE_POT_1, "RAND_INF_KF_BROTHERS_HOUSE_POT_1" }, { RAND_INF_KF_BROTHERS_HOUSE_POT_2, "RAND_INF_KF_BROTHERS_HOUSE_POT_2" }, - { RAND_INF_GF_BREAK_ROOM_POT_1, "RAND_INF_GF_BREAK_ROOM_POT_1" }, - { RAND_INF_GF_BREAK_ROOM_POT_2, "RAND_INF_GF_BREAK_ROOM_POT_2" }, - { RAND_INF_GF_KITCHEN_POT_1, "RAND_INF_GF_KITCHEN_POT_1" }, - { RAND_INF_GF_KITCHEN_POT_2, "RAND_INF_GF_KITCHEN_POT_2" }, - { RAND_INF_GF_NORTH_F1_CARPENTER_POT_1, "RAND_INF_GF_NORTH_F1_CARPENTER_POT_1" }, - { RAND_INF_GF_NORTH_F1_CARPENTER_POT_2, "RAND_INF_GF_NORTH_F1_CARPENTER_POT_2" }, - { RAND_INF_GF_NORTH_F1_CARPENTER_POT_3, "RAND_INF_GF_NORTH_F1_CARPENTER_POT_3" }, - { RAND_INF_GF_NORTH_F2_CARPENTER_POT_1, "RAND_INF_GF_NORTH_F2_CARPENTER_POT_1" }, - { RAND_INF_GF_NORTH_F2_CARPENTER_POT_2, "RAND_INF_GF_NORTH_F2_CARPENTER_POT_2" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1, "RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2, "RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3, "RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3" }, - { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4" }, + { RAND_INF_TH_BREAK_ROOM_POT_1, "RAND_INF_TH_BREAK_ROOM_POT_1" }, + { RAND_INF_TH_BREAK_ROOM_POT_2, "RAND_INF_TH_BREAK_ROOM_POT_2" }, + { RAND_INF_TH_KITCHEN_POT_1, "RAND_INF_TH_KITCHEN_POT_1" }, + { RAND_INF_TH_KITCHEN_POT_2, "RAND_INF_TH_KITCHEN_POT_2" }, + { RAND_INF_TH_NORTH_F1_CARPENTER_POT_1, "RAND_INF_TH_NORTH_F1_CARPENTER_POT_1" }, + { RAND_INF_TH_NORTH_F1_CARPENTER_POT_2, "RAND_INF_TH_NORTH_F1_CARPENTER_POT_2" }, + { RAND_INF_TH_NORTH_F1_CARPENTER_POT_3, "RAND_INF_TH_NORTH_F1_CARPENTER_POT_3" }, + { RAND_INF_TH_NORTH_F2_CARPENTER_POT_1, "RAND_INF_TH_NORTH_F2_CARPENTER_POT_1" }, + { RAND_INF_TH_NORTH_F2_CARPENTER_POT_2, "RAND_INF_TH_NORTH_F2_CARPENTER_POT_2" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1, "RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2, "RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3, "RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1, "RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2, "RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3, "RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3" }, + { RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4, "RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4" }, { RAND_INF_WASTELAND_NEAR_GS_POT_1, "RAND_INF_WASTELAND_NEAR_GS_POT_1" }, { RAND_INF_WASTELAND_NEAR_GS_POT_2, "RAND_INF_WASTELAND_NEAR_GS_POT_2" }, { RAND_INF_WASTELAND_NEAR_GS_POT_3, "RAND_INF_WASTELAND_NEAR_GS_POT_3" }, @@ -1530,7 +1530,7 @@ const std::vector flagTables = { { RAND_INF_HF_POND_STORMS_FAIRY, "RAND_INF_HF_POND_STORMS_FAIRY" }, { RAND_INF_DMT_FLAG_SUN_FAIRY, "RAND_INF_DMT_FLAG_SUN_FAIRY" }, { RAND_INF_LW_SHORTCUT_STORMS_FAIRY, "RAND_INF_LW_SHORTCUT_STORMS_FAIRY" }, - { RAND_INF_GF_KITCHEN_SUN_FAIRY, "RAND_INF_GF_KITCHEN_SUN_FAIRY" }, + { RAND_INF_TH_KITCHEN_SUN_FAIRY, "RAND_INF_TH_KITCHEN_SUN_FAIRY" }, { RAND_INF_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY, "RAND_INF_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY" }, { RAND_INF_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY, "RAND_INF_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY" }, { RAND_INF_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY, "RAND_INF_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY" }, diff --git a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp index a6c6b99f3..8ff0f44de 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp @@ -1948,7 +1948,7 @@ void StaticData::HintTable_Init_Exclude_Overworld() { hintTextTable[RHT_LW_SHORTCUT_STORMS_FAIRY] = HintText(CustomMessage("They say that #making it rain in the Lost Woods# reveals #[[1]]#.", {QM_RED, QM_GREEN})); - hintTextTable[RHT_GF_KITCHEN_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun in a guarded kitchen# exposes #[[1]]#.", {QM_RED, QM_GREEN})); + hintTextTable[RHT_TH_KITCHEN_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun in a guarded kitchen# exposes #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun for scrubs in the Lost Woods# reveals #[[1]]#.", { QM_RED, QM_GREEN })); diff --git a/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp b/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp index 8751efca6..2b04b5e43 100644 --- a/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp +++ b/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp @@ -379,7 +379,7 @@ void Rando::StaticData::RegisterFairyLocations() { locationTable[RC_DMT_FLAG_SUN_FAIRY] = Location::Fairy(RC_DMT_FLAG_SUN_FAIRY, RCQUEST_BOTH, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, TWO_ACTOR_PARAMS(0x1000, 464), "Flag Sun's Song Fairy", RHT_DMT_FLAG_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMT_FLAG_SUN_FAIRY)); locationTable[RC_DMT_COW_GROTTO_STORMS_FAIRY] = Location::Fairy(RC_DMT_COW_GROTTO_STORMS_FAIRY, RCQUEST_BOTH, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x1000, -311), "Cow Grotto Song of Storms Fairy", RHT_DMT_COW_GROTTO_STORMS_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMT_COW_GROTTO_STORMS_FAIRY)); locationTable[RC_LW_SHORTCUT_STORMS_FAIRY] = Location::Fairy(RC_LW_SHORTCUT_STORMS_FAIRY, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(0x1000, -795), "Shortcuts Song of Storms Fairy", RHT_LW_SHORTCUT_STORMS_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_SHORTCUT_STORMS_FAIRY)); - locationTable[RC_TH_KITCHEN_SUN_FAIRY] = Location::Fairy(RC_TH_KITCHEN_SUN_FAIRY, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(0x1000, -621), "Kitchen Sun's Song Fairy", RHT_GF_KITCHEN_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_SUN_FAIRY)); + locationTable[RC_TH_KITCHEN_SUN_FAIRY] = Location::Fairy(RC_TH_KITCHEN_SUN_FAIRY, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(0x1000, -621), "Kitchen Sun's Song Fairy", RHT_TH_KITCHEN_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_SUN_FAIRY)); locationTable[RC_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY] = Location::Fairy(RC_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x1000, 741), "Scrub Grotto Sun's Song Fairy", RHT_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY)); locationTable[RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY] = Location::Fairy(RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_ROYAL_FAMILYS_TOMB, TWO_ACTOR_PARAMS(0x1000, 1476), "Composer's Grave Sun's Song Fairy", RHT_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY)); diff --git a/soh/soh/Enhancements/randomizer/ShufflePots.cpp b/soh/soh/Enhancements/randomizer/ShufflePots.cpp index f4869905e..5b47613ef 100644 --- a/soh/soh/Enhancements/randomizer/ShufflePots.cpp +++ b/soh/soh/Enhancements/randomizer/ShufflePots.cpp @@ -105,22 +105,22 @@ void Rando::StaticData::RegisterPotLocations() { locationTable[RC_KF_TWINS_HOUSE_POT_1] = Location::Pot(RC_KF_TWINS_HOUSE_POT_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_TWINS_HOUSE, TWO_ACTOR_PARAMS(33, -55), "Twins House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_TWINS_HOUSE_POT_1)); locationTable[RC_KF_BROTHERS_HOUSE_POT_1] = Location::Pot(RC_KF_BROTHERS_HOUSE_POT_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-134, -29), "Brothers House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_1)); locationTable[RC_KF_BROTHERS_HOUSE_POT_2] = Location::Pot(RC_KF_BROTHERS_HOUSE_POT_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-68, 114), "Brothers House Pot 2", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_2)); - locationTable[RC_TH_BREAK_ROOM_POT_1] = Location::Pot(RC_TH_BREAK_ROOM_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1438, -3629), "Break Room Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_POT_1)); - locationTable[RC_TH_BREAK_ROOM_POT_2] = Location::Pot(RC_TH_BREAK_ROOM_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1403, -3679), "Break Room Pot 2", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_POT_2)); - locationTable[RC_TH_KITCHEN_POT_1] = Location::Pot(RC_TH_KITCHEN_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1908, -789), "Kitchen Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_POT_1)); - locationTable[RC_TH_KITCHEN_POT_2] = Location::Pot(RC_TH_KITCHEN_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1951, -850), "Kitchen Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_POT_2)); - locationTable[RC_TH_NORTH_F1_CARPENTER_POT_1] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-475, -2622), "North F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_POT_1)); - locationTable[RC_TH_NORTH_F1_CARPENTER_POT_2] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-512, -2621), "North F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_POT_2)); - locationTable[RC_TH_NORTH_F1_CARPENTER_POT_3] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-511, -2582), "North F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_POT_3)); - locationTable[RC_TH_NORTH_F2_CARPENTER_POT_1] = Location::Pot(RC_TH_NORTH_F2_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(67, -1975), "North F2 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F2_CARPENTER_POT_1)); - locationTable[RC_TH_NORTH_F2_CARPENTER_POT_2] = Location::Pot(RC_TH_NORTH_F2_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(39, -1943), "North F2 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F2_CARPENTER_POT_2)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_1] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 48), "South F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_2] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 16), "South F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_3] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(661, 16), "South F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(26, 524), "South F1 Carpenter Cell Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(61, 549), "South F1 Carpenter Cell Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(215, 549), "South F1 Carpenter Cell Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3)); - locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(254, 529), "South F1 Carpenter Cell Pot 4", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4)); + locationTable[RC_TH_BREAK_ROOM_POT_1] = Location::Pot(RC_TH_BREAK_ROOM_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1438, -3629), "Break Room Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_POT_1)); + locationTable[RC_TH_BREAK_ROOM_POT_2] = Location::Pot(RC_TH_BREAK_ROOM_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1403, -3679), "Break Room Pot 2", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_POT_2)); + locationTable[RC_TH_KITCHEN_POT_1] = Location::Pot(RC_TH_KITCHEN_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1908, -789), "Kitchen Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_POT_1)); + locationTable[RC_TH_KITCHEN_POT_2] = Location::Pot(RC_TH_KITCHEN_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1951, -850), "Kitchen Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_POT_2)); + locationTable[RC_TH_NORTH_F1_CARPENTER_POT_1] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-475, -2622), "North F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_1)); + locationTable[RC_TH_NORTH_F1_CARPENTER_POT_2] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-512, -2621), "North F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_2)); + locationTable[RC_TH_NORTH_F1_CARPENTER_POT_3] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-511, -2582), "North F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_3)); + locationTable[RC_TH_NORTH_F2_CARPENTER_POT_1] = Location::Pot(RC_TH_NORTH_F2_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(67, -1975), "North F2 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F2_CARPENTER_POT_1)); + locationTable[RC_TH_NORTH_F2_CARPENTER_POT_2] = Location::Pot(RC_TH_NORTH_F2_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(39, -1943), "North F2 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F2_CARPENTER_POT_2)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_1] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 48), "South F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_2] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 16), "South F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_3] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(661, 16), "South F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(26, 524), "South F1 Carpenter Cell Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(61, 549), "South F1 Carpenter Cell Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(215, 549), "South F1 Carpenter Cell Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3)); + locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(254, 529), "South F1 Carpenter Cell Pot 4", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4)); locationTable[RC_WASTELAND_NEAR_GS_POT_1] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_1, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(488, -2424), "Near GS Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_1)); locationTable[RC_WASTELAND_NEAR_GS_POT_2] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_2, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(485, -2463), "Near GS Pot 2", RHT_POT_GERUDO_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_2)); locationTable[RC_WASTELAND_NEAR_GS_POT_3] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_3, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(806, -2426), "Near GS Pot 3", RHT_POT_GERUDO_FORTRESS, RG_DEKU_NUTS_5, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_3)); diff --git a/soh/soh/Enhancements/randomizer/entrance.cpp b/soh/soh/Enhancements/randomizer/entrance.cpp index b2d26f483..9f5e8784f 100644 --- a/soh/soh/Enhancements/randomizer/entrance.cpp +++ b/soh/soh/Enhancements/randomizer/entrance.cpp @@ -877,8 +877,8 @@ int EntranceShuffler::ShuffleAllEntrances() { { EntranceType::Dungeon, RR_BOTTOM_OF_THE_WELL_ENTRYWAY, RR_KAK_WELL, ENTR_KAKARIKO_VILLAGE_OUTSIDE_BOTTOM_OF_THE_WELL } }, { { EntranceType::Dungeon, RR_ZORAS_FOUNTAIN, RR_ICE_CAVERN_ENTRYWAY, ENTR_ICE_CAVERN_ENTRANCE }, { EntranceType::Dungeon, RR_ICE_CAVERN_ENTRYWAY, RR_ZORAS_FOUNTAIN, ENTR_ZORAS_FOUNTAIN_OUTSIDE_ICE_CAVERN } }, - { { EntranceType::Dungeon, RR_GF_GROUND_BOTTOM, RR_GERUDO_TRAINING_GROUND_ENTRYWAY, ENTR_GERUDO_TRAINING_GROUND_ENTRANCE }, - { EntranceType::Dungeon, RR_GERUDO_TRAINING_GROUND_ENTRYWAY, RR_GF_GROUND_BOTTOM, ENTR_GERUDOS_FORTRESS_OUTSIDE_GERUDO_TRAINING_GROUND } }, + { { EntranceType::Dungeon, RR_GF_GROUND_SALMON, RR_GERUDO_TRAINING_GROUND_ENTRYWAY, ENTR_GERUDO_TRAINING_GROUND_ENTRANCE }, + { EntranceType::Dungeon, RR_GERUDO_TRAINING_GROUND_ENTRYWAY, RR_GF_GROUND_SALMON, ENTR_GERUDOS_FORTRESS_OUTSIDE_GERUDO_TRAINING_GROUND } }, { { EntranceType::GanonDungeon, RR_GANONS_CASTLE_LEDGE, RR_GANONS_CASTLE_ENTRYWAY, ENTR_INSIDE_GANONS_CASTLE_ENTRANCE }, { EntranceType::GanonDungeon, RR_GANONS_CASTLE_ENTRYWAY, RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE, ENTR_CASTLE_GROUNDS_RAINBOW_BRIDGE_EXIT } }, @@ -1030,8 +1030,8 @@ int EntranceShuffler::ShuffleAllEntrances() { { EntranceType::GrottoGrave, RR_KF_STORMS_GROTTO, RR_KOKIRI_FOREST, ENTRANCE_GROTTO_EXIT(GROTTO_KF_STORMS_OFFSET) } }, { { EntranceType::GrottoGrave, RR_ZORAS_DOMAIN_ISLAND, RR_ZD_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_ZD_STORMS_OFFSET) }, { EntranceType::GrottoGrave, RR_ZD_STORMS_GROTTO, RR_ZORAS_DOMAIN_ISLAND, ENTRANCE_GROTTO_EXIT(GROTTO_ZD_STORMS_OFFSET) } }, - { { EntranceType::GrottoGrave, RR_GF_GROUND_BOTTOM, RR_GF_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GF_STORMS_OFFSET) }, - { EntranceType::GrottoGrave, RR_GF_STORMS_GROTTO, RR_GF_GROUND_BOTTOM, ENTRANCE_GROTTO_EXIT(GROTTO_GF_STORMS_OFFSET) } }, + { { EntranceType::GrottoGrave, RR_GF_GROUND_ORANGE, RR_GF_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GF_STORMS_OFFSET) }, + { EntranceType::GrottoGrave, RR_GF_STORMS_GROTTO, RR_GF_GROUND_ORANGE, ENTRANCE_GROTTO_EXIT(GROTTO_GF_STORMS_OFFSET) } }, { { EntranceType::GrottoGrave, RR_GV_FORTRESS_SIDE, RR_GV_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GV_STORMS_OFFSET) }, { EntranceType::GrottoGrave, RR_GV_STORMS_GROTTO, RR_GV_FORTRESS_SIDE, ENTRANCE_GROTTO_EXIT(GROTTO_GV_STORMS_OFFSET) } }, { { EntranceType::GrottoGrave, RR_GV_GROTTO_LEDGE, RR_GV_OCTOROK_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GV_OCTOROK_OFFSET) }, diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index f48b7da5a..a299a69f3 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -1400,7 +1400,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l break; } case VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD: { - Flags_SetRandomizerInf(RAND_INF_GF_ITEM_FROM_LEADER_OF_FORTRESS); + Flags_SetRandomizerInf(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS); *should = false; break; } diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/gerudo_fortress.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/gerudo_fortress.cpp index 06cd57eb8..e7612c332 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/gerudo_fortress.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/gerudo_fortress.cpp @@ -49,8 +49,9 @@ void RegionTable_Init_GerudoFortress() { //Exits Entrance(RR_GERUDO_TRAINING_GROUND_ENTRYWAY, []{return logic->GtG_GateOpen && (logic->IsAdult || ctx->GetOption(RSK_SHUFFLE_DUNGEON_ENTRANCES));}), Entrance(RR_GF_GROUND_GREY, []{return true;}), - Entrance(RR_GF_HBA_RANGE, []{return logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}), + Entrance(RR_GF_HBA_RANGE, []{return logic->IsChild || logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}), Entrance(RR_GF_GROUND_BOTTOM, []{return true;}), + Entrance(RR_GF_ROOFTOP_WHITE, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}), }); #pragma endregion @@ -75,8 +76,7 @@ void RegionTable_Init_GerudoFortress() { Entrance(RR_TH_KITCHEN_BOTTOM, []{return true;}), // need to explicitly convert it into a bool Entrance(RR_GF_ROOFTOP_LIME, []{return ctx->GetTrickOption(RT_GF_JUMP).Get() != 0;}), - Entrance(RR_TH_SOUTH_F2_CARPENTER_AREA, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}), - Entrance(RR_GF_ROOFTOP_LIME, []{return true;}), + Entrance(RR_TH_SOUTH_F2_CARPENTER_AREA, []{return true;}), Entrance(RR_GF_GROUND_GREY, []{return true;}), Entrance(RR_GF_GROUND_ORANGE, []{return true;}), Entrance(RR_GF_GROUND_SALMON, []{return true;}), @@ -138,7 +138,7 @@ void RegionTable_Init_GerudoFortress() { areaTable[RR_GF_ROOFTOP_BLUE] = Region("GF Rooftop Blue", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, { //Locations - LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONG_JUMPSLASH) && logic->CanGetNightTimeGS()), + LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_SHORT_JUMPSLASH) /* && logic->CanClimb() (to get back up) */ && logic->CanGetNightTimeGS()), }, { //Exits Entrance(RR_GF_ROOFTOP_CYAN, []{return true;}), @@ -163,7 +163,7 @@ void RegionTable_Init_GerudoFortress() { #pragma endregion - areaTable[RR_GF_TOP_OF_FORTRESS] = Region("GF Top of Fortress", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, { + areaTable[RR_GF_TOP_LEDGE] = Region("GF Top of Fortress", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, { //Locations // 1 crate }, { @@ -175,7 +175,7 @@ void RegionTable_Init_GerudoFortress() { //Locations LOCATION(RC_GF_HBA_1000_POINTS, logic->IsAdult && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_EPONA) && logic->CanUse(RG_FAIRY_BOW) && logic->AtDay), LOCATION(RC_GF_HBA_1500_POINTS, logic->IsAdult && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_EPONA) && logic->CanUse(RG_FAIRY_BOW) && logic->AtDay), - LOCATION(RC_GF_GS_ARCHERY_RANGE, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()), + LOCATION(RC_GF_GS_ARCHERY_RANGE, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG) && logic->CanGetNightTimeGS()), }, { //Exits Entrance(RR_GF_GROUND_SALMON, []{return logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/thieves_hideout.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/thieves_hideout.cpp index 3d51c25f4..0fdcc8cbc 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/thieves_hideout.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/thieves_hideout.cpp @@ -71,7 +71,7 @@ void RegionTable_Init_ThievesHideout() { //Exits Entrance(RR_GF_GROUND_ORANGE, []{return true;}), Entrance(RR_GF_ROOFTOP_WHITE, []{return true;}), - Entrance(RR_TH_KITCHEN_MAIN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || ctx->GetTrickOption(RT_GF_KITCHEN);}), + Entrance(RR_TH_KITCHEN_MAIN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || ctx->GetTrickOption(RT_TH_KITCHEN);}), }); areaTable[RR_TH_KITCHEN_MAIN] = Region("Thieves Hideout Kitchen Bottom", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, { @@ -82,14 +82,14 @@ void RegionTable_Init_ThievesHideout() { }, { //Exits Entrance(RR_TH_KITCHEN_BOTTOM, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}), - Entrance(RR_TH_KITCHEN_TOP, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || ctx->GetTrickOption(RT_GF_KITCHEN);}), + Entrance(RR_TH_KITCHEN_TOP, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || ctx->GetTrickOption(RT_TH_KITCHEN);}), }); areaTable[RR_TH_KITCHEN_TOP] = Region("Thieves Hideout Kitchen Top", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, { //Exits Entrance(RR_TH_KITCHEN_MAIN, []{return true;}), - Entrance(RR_GF_ROOFTOP_GREEN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_GF_KITCHEN);}), - Entrance(RR_GF_ROOFTOP_CYAN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_GF_KITCHEN);}), + Entrance(RR_GF_ROOFTOP_GREEN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_TH_KITCHEN);}), + Entrance(RR_GF_ROOFTOP_CYAN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_TH_KITCHEN);}), }); areaTable[RR_TH_BREAK_ROOM] = Region("Thieves Hideout Break Room", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, { @@ -98,7 +98,7 @@ void RegionTable_Init_ThievesHideout() { LOCATION(RC_TH_BREAK_ROOM_POT_2, logic->CanBreakPots()), }, { //Exits - Entrance(RR_GF_ROOFTOP_YELLOW, []{return true;}), - Entrance(RR_GF_TOP_OF_FORTRESS, []{return true;}), + Entrance(RR_GF_ROOFTOP_YELLOW, []{return true;}), + Entrance(RR_GF_TOP_LEDGE, []{return true;}), }); } \ No newline at end of file diff --git a/soh/soh/Enhancements/randomizer/location_list.cpp b/soh/soh/Enhancements/randomizer/location_list.cpp index 33b669a32..7fe45c2d8 100644 --- a/soh/soh/Enhancements/randomizer/location_list.cpp +++ b/soh/soh/Enhancements/randomizer/location_list.cpp @@ -172,7 +172,7 @@ void Rando::StaticData::InitLocationTable() { // locationTable[RC_GF_HBA_1000_POINTS] = Location::Base(RC_GF_HBA_1000_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1000 Points", RHT_GF_HBA_1000_POINTS, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_190), true); locationTable[RC_GF_HBA_1500_POINTS] = Location::Base(RC_GF_HBA_1500_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1500 Points", RHT_GF_HBA_1500_POINTS, RG_PROGRESSIVE_BOW, SpoilerCollectionCheck::ItemGetInf(15), true); // Thieves Hideout - locationTable[RC_TH_GERUDO_MEMBERSHIP_CARD] = Location::Base(RC_TH_GERUDO_MEMBERSHIP_CARD, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_THIEVES_HIDEOUT, 0x00, "Gerudo Membership Card", RHT_GF_GERUDO_MEMBERSHIP_CARD, RG_GERUDO_MEMBERSHIP_CARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ITEM_FROM_LEADER_OF_FORTRESS), true); + locationTable[RC_TH_GERUDO_MEMBERSHIP_CARD] = Location::Base(RC_TH_GERUDO_MEMBERSHIP_CARD, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_THIEVES_HIDEOUT, 0x00, "Gerudo Membership Card", RHT_GF_GERUDO_MEMBERSHIP_CARD, RG_GERUDO_MEMBERSHIP_CARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS), true); locationTable[RC_TH_NORTH_F1_CARPENTER] = Location::Collectable(RC_TH_NORTH_F1_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3089, 0x0C, "North F1 Carpenter", RHT_GF_NORTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true); locationTable[RC_TH_NORTH_F2_CARPENTER] = Location::Collectable(RC_TH_NORTH_F2_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 2577, 0x0A, "North F2 Carpenter", RHT_GF_NORTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true); locationTable[RC_TH_SOUTH_F1_CARPENTER] = Location::Collectable(RC_TH_SOUTH_F1_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3601, 0x0E, "South F1 Carpenter", RHT_GF_SOUTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true); diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index 462fac5c2..0ec2a5e97 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -1217,7 +1217,7 @@ namespace Rando { } bool Logic::CanFinishGerudoFortress(){ - return (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && SmallKeys(RR_GF_GROUND_BOTTOM, 4) && CanKillEnemy(RE_GERUDO_WARRIOR) && (HasItem(RG_GERUDO_MEMBERSHIP_CARD) || CanUse(RG_FAIRY_BOW) || CanUse(RG_HOOKSHOT) || CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_GF_KITCHEN))) || + return (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && SmallKeys(RR_GF_GROUND_BOTTOM, 4) && CanKillEnemy(RE_GERUDO_WARRIOR) && (HasItem(RG_GERUDO_MEMBERSHIP_CARD) || CanUse(RG_FAIRY_BOW) || CanUse(RG_HOOKSHOT) || CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_TH_KITCHEN))) || (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST) && SmallKeys(RR_GF_GROUND_BOTTOM, 1) && CanKillEnemy(RE_GERUDO_WARRIOR)) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE); } diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 6ead1df1a..18b5a1c36 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -1013,22 +1013,22 @@ std::map rcToRandomizerInf = { { RC_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_TWINS_HOUSE_POT_2 }, { RC_KF_BROTHERS_HOUSE_POT_1, RAND_INF_KF_BROTHERS_HOUSE_POT_1 }, { RC_KF_BROTHERS_HOUSE_POT_2, RAND_INF_KF_BROTHERS_HOUSE_POT_2 }, - { RC_TH_BREAK_ROOM_POT_1, RAND_INF_GF_BREAK_ROOM_POT_1 }, - { RC_TH_BREAK_ROOM_POT_2, RAND_INF_GF_BREAK_ROOM_POT_2 }, - { RC_TH_KITCHEN_POT_1, RAND_INF_GF_KITCHEN_POT_1 }, - { RC_TH_KITCHEN_POT_2, RAND_INF_GF_KITCHEN_POT_2 }, - { RC_TH_NORTH_F1_CARPENTER_POT_1, RAND_INF_GF_NORTH_F1_CARPENTER_POT_1 }, - { RC_TH_NORTH_F1_CARPENTER_POT_2, RAND_INF_GF_NORTH_F1_CARPENTER_POT_2 }, - { RC_TH_NORTH_F1_CARPENTER_POT_3, RAND_INF_GF_NORTH_F1_CARPENTER_POT_3 }, - { RC_TH_NORTH_F2_CARPENTER_POT_1, RAND_INF_GF_NORTH_F2_CARPENTER_POT_1 }, - { RC_TH_NORTH_F2_CARPENTER_POT_2, RAND_INF_GF_NORTH_F2_CARPENTER_POT_2 }, - { RC_TH_SOUTH_F1_CARPENTER_POT_1, RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1 }, - { RC_TH_SOUTH_F1_CARPENTER_POT_2, RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2 }, - { RC_TH_SOUTH_F1_CARPENTER_POT_3, RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3 }, - { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1 }, - { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2 }, - { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3 }, - { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4 }, + { RC_TH_BREAK_ROOM_POT_1, RAND_INF_TH_BREAK_ROOM_POT_1 }, + { RC_TH_BREAK_ROOM_POT_2, RAND_INF_TH_BREAK_ROOM_POT_2 }, + { RC_TH_KITCHEN_POT_1, RAND_INF_TH_KITCHEN_POT_1 }, + { RC_TH_KITCHEN_POT_2, RAND_INF_TH_KITCHEN_POT_2 }, + { RC_TH_NORTH_F1_CARPENTER_POT_1, RAND_INF_TH_NORTH_F1_CARPENTER_POT_1 }, + { RC_TH_NORTH_F1_CARPENTER_POT_2, RAND_INF_TH_NORTH_F1_CARPENTER_POT_2 }, + { RC_TH_NORTH_F1_CARPENTER_POT_3, RAND_INF_TH_NORTH_F1_CARPENTER_POT_3 }, + { RC_TH_NORTH_F2_CARPENTER_POT_1, RAND_INF_TH_NORTH_F2_CARPENTER_POT_1 }, + { RC_TH_NORTH_F2_CARPENTER_POT_2, RAND_INF_TH_NORTH_F2_CARPENTER_POT_2 }, + { RC_TH_SOUTH_F1_CARPENTER_POT_1, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1 }, + { RC_TH_SOUTH_F1_CARPENTER_POT_2, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2 }, + { RC_TH_SOUTH_F1_CARPENTER_POT_3, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3 }, + { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1 }, + { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2 }, + { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3 }, + { RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4 }, { RC_WASTELAND_NEAR_GS_POT_1, RAND_INF_WASTELAND_NEAR_GS_POT_1 }, { RC_WASTELAND_NEAR_GS_POT_2, RAND_INF_WASTELAND_NEAR_GS_POT_2 }, { RC_WASTELAND_NEAR_GS_POT_3, RAND_INF_WASTELAND_NEAR_GS_POT_3 }, diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index f0f033021..5d378aff0 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -421,7 +421,7 @@ typedef enum { RR_GF_ROOFTOP_BLUE, RR_GF_ROOFTOP_TURQUOISE, RR_GF_HBA_RANGE, - RR_GF_TOP_OF_FORTRESS, + RR_GF_TOP_LEDGE, RR_GF_OUTSIDE_GATE, RR_GF_STORMS_GROTTO, RR_TH_NORTH_F1_CARPENTER_AREA, @@ -2934,7 +2934,7 @@ typedef enum { RT_LH_LAB_DIVING, RT_LH_WATER_HOOKSHOT, RT_GV_CRATE_HOVERS, - RT_GF_KITCHEN, + RT_TH_KITCHEN, RT_GF_JUMP, RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON, RT_HW_BUNNY_CROSSING, @@ -4934,7 +4934,7 @@ typedef enum { RHT_DMT_FLAG_SUN_FAIRY, RHT_DMT_COW_GROTTO_STORMS_FAIRY, RHT_LW_SHORTCUT_STORMS_FAIRY, - RHT_GF_KITCHEN_SUN_FAIRY, + RHT_TH_KITCHEN_SUN_FAIRY, RHT_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY, RHT_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY, RHT_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY, diff --git a/soh/soh/Enhancements/randomizer/randomizer_inf.h b/soh/soh/Enhancements/randomizer/randomizer_inf.h index 8c4d05a4f..da260f439 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_inf.h +++ b/soh/soh/Enhancements/randomizer/randomizer_inf.h @@ -207,22 +207,22 @@ typedef enum { RAND_INF_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_BROTHERS_HOUSE_POT_1, RAND_INF_KF_BROTHERS_HOUSE_POT_2, - RAND_INF_GF_BREAK_ROOM_POT_1, - RAND_INF_GF_BREAK_ROOM_POT_2, - RAND_INF_GF_KITCHEN_POT_1, - RAND_INF_GF_KITCHEN_POT_2, - RAND_INF_GF_NORTH_F1_CARPENTER_POT_1, - RAND_INF_GF_NORTH_F1_CARPENTER_POT_2, - RAND_INF_GF_NORTH_F1_CARPENTER_POT_3, - RAND_INF_GF_NORTH_F2_CARPENTER_POT_1, - RAND_INF_GF_NORTH_F2_CARPENTER_POT_2, - RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1, - RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2, - RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3, - RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1, - RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2, - RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3, - RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4, + RAND_INF_TH_BREAK_ROOM_POT_1, + RAND_INF_TH_BREAK_ROOM_POT_2, + RAND_INF_TH_KITCHEN_POT_1, + RAND_INF_TH_KITCHEN_POT_2, + RAND_INF_TH_NORTH_F1_CARPENTER_POT_1, + RAND_INF_TH_NORTH_F1_CARPENTER_POT_2, + RAND_INF_TH_NORTH_F1_CARPENTER_POT_3, + RAND_INF_TH_NORTH_F2_CARPENTER_POT_1, + RAND_INF_TH_NORTH_F2_CARPENTER_POT_2, + RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1, + RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2, + RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3, + RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1, + RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2, + RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3, + RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RAND_INF_WASTELAND_NEAR_GS_POT_1, RAND_INF_WASTELAND_NEAR_GS_POT_2, RAND_INF_WASTELAND_NEAR_GS_POT_3, @@ -837,7 +837,7 @@ typedef enum { RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_4, RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_5, - RAND_INF_GF_ITEM_FROM_LEADER_OF_FORTRESS, + RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS, RAND_INF_GF_GTG_GATE_PERMANENTLY_OPEN, RAND_INF_ZELDAS_LETTER, @@ -1252,7 +1252,7 @@ typedef enum { RAND_INF_DMT_COW_GROTTO_STORMS_FAIRY, RAND_INF_HF_FENCE_GROTTO_STORMS_FAIRY, RAND_INF_LW_SHORTCUT_STORMS_FAIRY, - RAND_INF_GF_KITCHEN_SUN_FAIRY, + RAND_INF_TH_KITCHEN_SUN_FAIRY, RAND_INF_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY, RAND_INF_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY, RAND_INF_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY, diff --git a/soh/soh/Enhancements/randomizer/settings.cpp b/soh/soh/Enhancements/randomizer/settings.cpp index cf1acdd7f..d48d7fb0d 100644 --- a/soh/soh/Enhancements/randomizer/settings.cpp +++ b/soh/soh/Enhancements/randomizer/settings.cpp @@ -403,7 +403,7 @@ void Settings::CreateOptions() { OPT_TRICK(RT_LH_LAB_DIVING, RCQUEST_BOTH, RA_LAKE_HYLIA, {Tricks::Tag::NOVICE}, "Lake Hylia Lab Dive without Gold Scale", "Remove the Iron Boots in the midst of Hookshotting the underwater crate."); OPT_TRICK(RT_LH_WATER_HOOKSHOT, RCQUEST_BOTH, RA_LAKE_HYLIA, {Tricks::Tag::INTERMEDIATE}, "Water Temple Entry without Iron Boots using Hookshot", "When entering Water Temple using Gold Scale instead of Iron Boots, the Longshot is usually used to be able to hit the switch and open the gate. But, by standing in a particular spot, the switch can be hit with only the reach of the Hookshot."); OPT_TRICK(RT_GV_CRATE_HOVERS, RCQUEST_BOTH, RA_GERUDO_VALLEY, {Tricks::Tag::INTERMEDIATE}, "Gerudo Valley Crate PoH as Adult with Hover Boots", "From the far side of Gerudo Valley, a precise Hover Boots movement and jump-slash recoil can allow adult to reach the ledge with the crate PoH without needing Longshot. You will take fall damage."); - OPT_TRICK(RT_GF_KITCHEN, RCQUEST_BOTH, RA_GERUDO_FORTRESS, {Tricks::Tag::NOVICE}, "Thieves\' Hideout \"Kitchen\" with No Additional Items", "Allows passing through the kitchen by avoiding being seen by the guards. The logic normally guarantees Bow or Hookshot to stun them from a distance, or Hover Boots to cross the room without needing to deal with the guards."); + OPT_TRICK(RT_TH_KITCHEN, RCQUEST_BOTH, RA_GERUDO_FORTRESS, {Tricks::Tag::NOVICE}, "Thieves\' Hideout \"Kitchen\" with No Additional Items", "Allows passing through the kitchen by avoiding being seen by the guards. The logic normally guarantees Bow or Hookshot to stun them from a distance, or Hover Boots to cross the room without needing to deal with the guards."); OPT_TRICK(RT_GF_JUMP, RCQUEST_BOTH, RA_GERUDO_FORTRESS, {Tricks::Tag::NOVICE}, "Gerudo\'s Fortress Ledge Jumps", "Adult can jump onto the top roof of the fortress without going through the interior of the hideout."); OPT_TRICK(RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON, RCQUEST_BOTH, RA_GERUDO_FORTRESS, {Tricks::Tag::NOVICE}, "Gerudo\'s Fortress Warriors with Difficult Weapons", "Warriors can be defeated with slingshot or bombchus."); // disabled for now, can't check for being able to use bunny hood & bunny hood speedup is currently completely decoupled from rando