You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LOG_TO_DEBUG("Removed " + hintRegion + " from barren pool due to item " + location->currentItem.getName() + " at location " + location->getName());
218
217
world.barrenRegions.erase(hintRegion);
218
+
continue;
219
219
}
220
-
}
221
-
}
222
-
}
223
-
}
224
-
}
225
-
}
226
220
227
-
// If a dungeon is barren, but has a non-junk item at any of it's
228
-
// outside dependent locations, then it shouldn't be considered barren
229
-
for (auto& [dungeonName, dungeon] : world.dungeons)
230
-
{
231
-
if (world.barrenRegions.contains(dungeonName))
232
-
{
233
-
for (auto loc : dungeon.outsideDependentLocations)
234
-
{
235
-
if (!loc->currentItem.canBeInBarrenRegion())
236
-
{
237
-
LOG_TO_DEBUG(dungeonName + " removed from barren pool due to " + loc->currentItem.getName() + " at outside location " + loc->getName());
238
-
world.barrenRegions.erase(dungeonName);
239
-
// Also remove any islands this dungeon is on from the barren pool
240
-
for (constauto& island : dungeon.islands)
241
-
{
242
-
if (world.barrenRegions.contains(island))
243
-
{
244
-
LOG_TO_DEBUG(island + " removed from barren pool due to " + loc->currentItem.getName() + " at outside location " + loc->getName());
245
-
world.barrenRegions.erase(island);
221
+
// Also make sure the outside dependent locations are barren a well
222
+
for (auto outsideLoc : location->outsideDependentLocations)
223
+
{
224
+
// If an outside dependent location is not barren, remove the region from being barren
225
+
if (!outsideLoc->currentItemCanBeBarren())
226
+
{
227
+
LOG_TO_DEBUG("Removed " + hintRegion + " from barren pool due to item " + outsideLoc->currentItem.getName() + " at location " + outsideLoc->getName() + " which is dependent on " + location->getName());
if (location->progression && // if the location is a progression location...
536
518
!location->currentItem.isJunkItem() && // and does not have a junk item...
537
519
!location->hasKnownVanillaItem && // and does not have a known vanilla item...
520
+
!location->hasExpectedItem && // and does not have an expected item
538
521
!location->hasBeenHinted && // and has not been hinted at yet...
539
-
(!location->currentItem.isSmallKey() || settings.dungeon_small_keys != PlacementOption::OwnDungeon) && // and isn't a small key when small keys are in their own dungeon
540
-
(!location->currentItem.isBigKey() || settings.dungeon_big_keys != PlacementOption::OwnDungeon) && // and isn't a big key when big keys are in their own dungeon
541
-
(!location->isRaceModeLocation || settings.progression_dungeons == ProgressionDungeons::Disabled) && // and isn't a race mode location when race mode/require bosses is enabled...
542
-
( location->hintPriority != "Always" || !world.getSettings().use_always_hints)) // and the hint priority is not "Always" when we're using always hints...
522
+
(location->hintPriority != "Always" || !world.getSettings().use_always_hints)) // and the hint priority is not "Always" when we're using always hints...
0 commit comments