Skip to content

Commit da1f95e

Browse files
committed
Merge 'Fix switching from advanced to glitchless keeping tricks cached.' (#2521)
2 parents 8106117 + 2375bdc commit da1f95e

4 files changed

Lines changed: 15 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
* Fix wrong Goal hints being generated for worlds other than the first in multiworld seeds.
2323
* Added some missing or incorrectly named locations in advanced logic.
2424
* Various minor fixes for advanced logic.
25+
* Fix for advanced logic tricks being cached when switching to glitchless logic.
2526

2627
## Other Changes
2728
* It is no longer required to have either the goron tunic or the Fewer Tunic Requirements trick for adult to go from the Bolero warp pad to the Fire temple in logic.

Main.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,22 @@ def resolve_settings(settings: Settings) -> Optional[Rom]:
6868

6969
# compare pointers to lists rather than contents, so even if the two are identical
7070
# we'll still log the error and note the dist file overrides completely.
71-
if old_tricks and (old_tricks is not settings.allowed_tricks
72-
or old_advanced_tricks is not settings.advanced_allowed_tricks):
71+
if (old_tricks and old_tricks is not settings.allowed_tricks) or (old_advanced_tricks and old_advanced_tricks is not settings.advanced_allowed_tricks):
7372
logger.error('Tricks are set in two places! Using only the tricks from the distribution file.')
7473

74+
# flag tricks based on settings
75+
# special case advanced so that if another logic is selected, all tricks are set to False
76+
# this is a failsafe for disabled_default
7577
for trick in logic_tricks.values():
7678
settings.settings_dict[trick['name']] = trick['name'] in settings.allowed_tricks
7779

78-
for trick in advanced_logic_tricks.values():
79-
settings.settings_dict[trick['name']] = trick['name'] in settings.advanced_allowed_tricks
80+
if settings.logic_rules == 'advanced':
81+
for trick in advanced_logic_tricks.values():
82+
settings.settings_dict[trick['name']] = trick['name'] in settings.advanced_allowed_tricks
83+
else:
84+
for trick in advanced_logic_tricks.values():
85+
settings.settings_dict[trick['name']] = False
86+
8087

8188
# we load the rom before creating the seed so that errors get caught early
8289
outputting_specific_world = settings.create_uncompressed_rom or settings.create_compressed_rom or settings.create_wad_file

SettingsList.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3265,7 +3265,8 @@ class SettingInfos:
32653265
and MAY be required to complete the game.
32663266
32673267
Tricks in the left column are NEVER required.
3268-
'''
3268+
''',
3269+
disabled_default = []
32693270
)
32703271

32713272
# Starting Inventory

version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = '9.0.32'
1+
__version__ = '9.0.33'
22

33
# This is a supplemental version number for branches based off of main dev.
44
supplementary_version = 0

0 commit comments

Comments
 (0)