diff --git a/LttPAdjuster.py b/LttPAdjuster.py index 8835fdc2..a34d9f89 100644 --- a/LttPAdjuster.py +++ b/LttPAdjuster.py @@ -513,25 +513,29 @@ def get_rom_frame(parent=None): def get_rom_options_frame(parent=None): adjuster_settings = get_adjuster_settings(GAME_ALTTP) + defaults = { + "auto_apply": 'ask', + "music": True, + "reduceflashing": True, + "deathlink": False, + "sprite": None, + "quickswap": True, + "menuspeed": 'normal', + "heartcolor": 'red', + "heartbeep": 'normal', + "ow_palettes": 'default', + "uw_palettes": 'default', + "hud_palettes": 'default', + "sword_palettes": 'default', + "shield_palettes": 'default', + "sprite_pool": [], + "allowcollect": False, + } if not adjuster_settings: adjuster_settings = Namespace() - adjuster_settings.auto_apply = 'ask' - adjuster_settings.music = True - adjuster_settings.reduceflashing = True - adjuster_settings.deathlink = False - adjuster_settings.allowcollect = False - adjuster_settings.sprite = None - adjuster_settings.quickswap = True - adjuster_settings.menuspeed = 'normal' - adjuster_settings.heartcolor = 'red' - adjuster_settings.heartbeep = 'normal' - adjuster_settings.ow_palettes = 'default' - adjuster_settings.uw_palettes = 'default' - adjuster_settings.hud_palettes = 'default' - adjuster_settings.sword_palettes = 'default' - adjuster_settings.shield_palettes = 'default' - if not hasattr(adjuster_settings, 'sprite_pool'): - adjuster_settings.sprite_pool = [] + for key, defaultvalue in defaults.items(): + if not hasattr(adjuster_settings, key): + setattr(adjuster_settings, key, defaultvalue) romOptionsFrame = LabelFrame(parent, text="Rom options") romOptionsFrame.columnconfigure(0, weight=1) diff --git a/WebHostLib/check.py b/WebHostLib/check.py index 9557e509..b560801c 100644 --- a/WebHostLib/check.py +++ b/WebHostLib/check.py @@ -62,7 +62,9 @@ def get_yaml_data(file) -> Union[Dict[str, str], str]: return options -def roll_options(options: Dict[str, Union[dict, str]], plando_options: set = {"bosses", "items", "connections", "texts"}) -> Tuple[Dict[str, Union[str, bool]], Dict[str, dict]]: +def roll_options(options: Dict[str, Union[dict, str]], + plando_options: Set[str] = frozenset({"bosses", "items", "connections", "texts"})) -> \ + Tuple[Dict[str, Union[str, bool]], Dict[str, dict]]: plando_options = set(plando_options) results = {} rolled_results = {} @@ -78,11 +80,11 @@ def roll_options(options: Dict[str, Union[dict, str]], plando_options: set = {"b try: if len(yaml_datas) == 1: rolled_results[filename] = roll_settings(yaml_datas[0], - plando_options=plando_options) + plando_options=plando_options) else: for i, yaml_data in enumerate(yaml_datas): rolled_results[f"{filename}/{i + 1}"] = roll_settings(yaml_data, - plando_options=plando_options) + plando_options=plando_options) except Exception as e: results[filename] = f"Failed to generate mystery in {filename}: {e}" else: