summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Leggett <chris@leggett.dev>2025-04-09 12:20:37 -0400
committerGitHub <noreply@github.com>2025-04-09 12:20:37 -0400
commit2576f75b1a1ca06f325108469cd3c51cf4ffa6ff (patch)
tree178cc56ea616b72389fe58cec2c2a9574d233f3e
parent30520a7565b239c4e58ea514a20464f8f59f76c2 (diff)
Fix non-loach fish making it into the pool when Loach Only is selected. (#5360)
-rw-r--r--soh/soh/Enhancements/randomizer/context.cpp2
-rw-r--r--soh/soh/Enhancements/randomizer/fishsanity.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/soh/soh/Enhancements/randomizer/context.cpp b/soh/soh/Enhancements/randomizer/context.cpp
index fa755325e..4127ab21a 100644
--- a/soh/soh/Enhancements/randomizer/context.cpp
+++ b/soh/soh/Enhancements/randomizer/context.cpp
@@ -180,8 +180,6 @@ void Context::GenerateLocationPool() {
location.GetRandomizerCheck() == RC_HF_DEKU_SCRUB_GROTTO)) ||
(location.GetRCType() == RCTYPE_ADULT_TRADE && mOptions[RSK_SHUFFLE_ADULT_TRADE].Is(RO_GENERIC_OFF)) ||
(location.GetRCType() == RCTYPE_COW && mOptions[RSK_SHUFFLE_COWS].Is(RO_GENERIC_OFF)) ||
- (location.GetRandomizerCheck() == RC_LH_HYRULE_LOACH &&
- mOptions[RSK_FISHSANITY].IsNot(RO_FISHSANITY_HYRULE_LOACH)) ||
(location.GetRCType() == RCTYPE_FISH && !mFishsanity->GetFishLocationIncluded(&location)) ||
(location.GetRCType() == RCTYPE_POT && mOptions[RSK_SHUFFLE_POTS].Is(RO_SHUFFLE_POTS_OFF)) ||
(location.GetRCType() == RCTYPE_GRASS && mOptions[RSK_SHUFFLE_GRASS].Is(RO_SHUFFLE_GRASS_OFF)) ||
diff --git a/soh/soh/Enhancements/randomizer/fishsanity.cpp b/soh/soh/Enhancements/randomizer/fishsanity.cpp
index fe9b4c0f1..8d4435f9a 100644
--- a/soh/soh/Enhancements/randomizer/fishsanity.cpp
+++ b/soh/soh/Enhancements/randomizer/fishsanity.cpp
@@ -78,6 +78,9 @@ bool Fishsanity::GetFishLocationIncluded(Rando::Location* loc, FishsanityOptions
return false;
}
RandomizerCheck rc = loc->GetRandomizerCheck();
+ if (mode == RO_FISHSANITY_HYRULE_LOACH && rc != RC_LH_HYRULE_LOACH) {
+ return false;
+ }
// Are pond fish enabled, and is this a pond fish location?
if (mode != RO_FISHSANITY_OVERWORLD && numFish > 0 && loc->GetScene() == SCENE_FISHING_POND &&
loc->GetActorID() == ACTOR_FISHING) {