From e6e31a27e688ecbb45fa9569e72d2a4db111e37f Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:25:00 -0500 Subject: [PATCH] SC2: Fix Nondeterministic Behavior (#4246) * Add < for sorting * Sorting for determinism * id instead of value --- worlds/sc2/MissionTables.py | 3 +++ worlds/sc2/Regions.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/worlds/sc2/MissionTables.py b/worlds/sc2/MissionTables.py index 4dece464..08e1f133 100644 --- a/worlds/sc2/MissionTables.py +++ b/worlds/sc2/MissionTables.py @@ -43,6 +43,9 @@ class SC2Campaign(Enum): self.goal_priority = goal_priority self.race = race + def __lt__(self, other: "SC2Campaign"): + return self.id < other.id + GLOBAL = 0, "Global", SC2CampaignGoalPriority.NONE, SC2Race.ANY WOL = 1, "Wings of Liberty", SC2CampaignGoalPriority.VERY_HARD, SC2Race.TERRAN PROPHECY = 2, "Prophecy", SC2CampaignGoalPriority.MINI_CAMPAIGN, SC2Race.PROTOSS diff --git a/worlds/sc2/Regions.py b/worlds/sc2/Regions.py index 84830a9a..273bc4a5 100644 --- a/worlds/sc2/Regions.py +++ b/worlds/sc2/Regions.py @@ -50,7 +50,7 @@ def create_vanilla_regions( names: Dict[str, int] = {} # Generating all regions and locations for each enabled campaign - for campaign in enabled_campaigns: + for campaign in sorted(enabled_campaigns): for region_name in vanilla_mission_req_table[campaign].keys(): regions.append(create_region(world, locations_per_region, location_cache, region_name)) world.multiworld.regions += regions