From 33b849a176cbaf4e0f3e45ddfe6bfe3d073c323f Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Thu, 23 Jan 2020 20:08:37 +1100 Subject: [PATCH] Speed hacks - reduce the regions being checked every iteration when updating - only sweep for crystal access when new locations are found, and when starting a new sphere --- BaseClasses.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index db6659fe..bb721407 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -418,9 +418,8 @@ class CollectionState(object): new_regions = True reachable_regions_count = len(rrp) while new_regions: - region_queue = deque([region for region in player_regions if region not in rrp]) - while len(region_queue) > 0: - candidate = region_queue.popleft() + player_regions = [region for region in player_regions if region not in rrp] + for candidate in player_regions: if candidate.can_reach_private(self): rrp.add(candidate) if candidate.type == RegionType.Dungeon: @@ -778,7 +777,6 @@ class CollectionState(object): if changed: if not event: self.sweep_for_events() - self.sweep_for_crystal_access() def remove(self, item): if item.advancement: