Fix arbiters grounds sometimes not being listed as a required dungeon

This commit is contained in:
gymnast86
2026-06-21 15:59:39 -07:00
parent 9bd34a0d02
commit 4239cea3d5
3 changed files with 11 additions and 9 deletions
@@ -102,12 +102,14 @@
Snowpeak Summit Lower: Nothing
- Name: Snowpeak Ruins East Door Interior
Region: Snowpeak Ruins
Can Transform: Never
Exits:
Snowpeak Ruins East Door Exterior: Can_Open_Doors
Snowpeak Ruins Entrance: Nothing
- Name: Snowpeak Ruins West Door Interior
Region: Snowpeak Ruins
Can Transform: Never
Exits:
Snowpeak Ruins West Door Exterior: Can_Open_Doors
+1 -1
View File
@@ -250,7 +250,7 @@ namespace randomizer::logic::area
this->AddHintRegion(region);
LOG_TO_DEBUG("Assigned \"" + region + "\" as hint region to \"" + this->GetName() + "\"");
// Also assign any loactions in this area to the dungeon if there are any dungeon regions
// Also assign any locations in this area to the dungeon if there are any dungeon regions
if (dungeons.contains(region))
{
auto locAccs = this->GetLocations();
@@ -728,22 +728,22 @@ namespace randomizer::logic::world
for (auto& [areaName, area] : this->_areaTable)
{
area->AssignHintRegionsAndDungeonLocations();
}
for (auto& [areaName, area] : this->_areaTable)
{
// Also assign dungeons their starting entrance
for (const auto& exit : area->GetExits())
{
auto parentRegions = exit->GetParentArea()->GetHintRegions();
auto connectedRegions = exit->GetConnectedArea()->GetHintRegions();
if (!parentRegions.contains("None"))
for (auto& [dungeonName, dungeon] : this->_dungeons)
{
for (auto& [dungeonName, dungeon] : this->_dungeons)
// If this exit leads into a dungeon and its parent area is not part of the dungeon
// then this is the entrance that leads into the dungeon
if (connectedRegions.contains(dungeonName) && !parentRegions.contains(dungeonName))
{
// If this exit leads into a dungeon and its parent area is not part of the dungeon
// then this is the entrance that leads into the dungeon
if (connectedRegions.contains(dungeonName) && !parentRegions.contains(dungeonName))
{
dungeon->AddStartingEntrance(exit);
}
dungeon->AddStartingEntrance(exit);
}
}
}