fix items not being placed on bosses

bosses were considered unreachable when LimitArea was in effect because
they don't have a sector identifier (e.g. "S2") in their names.
This commit is contained in:
magical 2024-02-05 20:30:46 -08:00 committed by Lucent
parent c1b02486df
commit 82bd33daf9
2 changed files with 4 additions and 1 deletions

View file

@ -27,6 +27,7 @@ class Game:
self.majorItemLocations = list()
self.minorItemLocations = list()
self.itemLocations = list()
self.itemArea = dict()
self.patcher = dict()
self.graph.clear()
self.areaConnections.clear()
@ -234,7 +235,8 @@ class Game:
for area in range(0, 7):
if 'S{}'.format(area) in start:
if 'S{}'.format(area) not in point:
return None
if self.itemArea.get(point) != area:
return None
edge = (start, point)
self.queue.append(edge)
while self.queue:

View file

@ -3127,6 +3127,7 @@ def start_randomizer(rom, settings):
BossLocations.append(name)
if 'Item' in name or nodeType == 'Boss' or nodeType == 'Data':
AreaItemLocations[areaIndex].append(name)
World.itemArea[name] = areaIndex
World.ConnectAllNodes()
StartLocation = 'S0-00'