LttP: fix adjuster partial settings store crash
This commit is contained in:
parent
9eb237b3af
commit
e901a87afd
|
@ -513,25 +513,29 @@ def get_rom_frame(parent=None):
|
||||||
|
|
||||||
def get_rom_options_frame(parent=None):
|
def get_rom_options_frame(parent=None):
|
||||||
adjuster_settings = get_adjuster_settings(GAME_ALTTP)
|
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:
|
if not adjuster_settings:
|
||||||
adjuster_settings = Namespace()
|
adjuster_settings = Namespace()
|
||||||
adjuster_settings.auto_apply = 'ask'
|
for key, defaultvalue in defaults.items():
|
||||||
adjuster_settings.music = True
|
if not hasattr(adjuster_settings, key):
|
||||||
adjuster_settings.reduceflashing = True
|
setattr(adjuster_settings, key, defaultvalue)
|
||||||
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 = []
|
|
||||||
|
|
||||||
romOptionsFrame = LabelFrame(parent, text="Rom options")
|
romOptionsFrame = LabelFrame(parent, text="Rom options")
|
||||||
romOptionsFrame.columnconfigure(0, weight=1)
|
romOptionsFrame.columnconfigure(0, weight=1)
|
||||||
|
|
|
@ -62,7 +62,9 @@ def get_yaml_data(file) -> Union[Dict[str, str], str]:
|
||||||
return options
|
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)
|
plando_options = set(plando_options)
|
||||||
results = {}
|
results = {}
|
||||||
rolled_results = {}
|
rolled_results = {}
|
||||||
|
@ -78,11 +80,11 @@ def roll_options(options: Dict[str, Union[dict, str]], plando_options: set = {"b
|
||||||
try:
|
try:
|
||||||
if len(yaml_datas) == 1:
|
if len(yaml_datas) == 1:
|
||||||
rolled_results[filename] = roll_settings(yaml_datas[0],
|
rolled_results[filename] = roll_settings(yaml_datas[0],
|
||||||
plando_options=plando_options)
|
plando_options=plando_options)
|
||||||
else:
|
else:
|
||||||
for i, yaml_data in enumerate(yaml_datas):
|
for i, yaml_data in enumerate(yaml_datas):
|
||||||
rolled_results[f"{filename}/{i + 1}"] = roll_settings(yaml_data,
|
rolled_results[f"{filename}/{i + 1}"] = roll_settings(yaml_data,
|
||||||
plando_options=plando_options)
|
plando_options=plando_options)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
results[filename] = f"Failed to generate mystery in {filename}: {e}"
|
results[filename] = f"Failed to generate mystery in {filename}: {e}"
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue