From 4b4a27992cf00164374f29b9974ef23d469e5c09 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Sat, 25 Jan 2020 16:37:29 -0800 Subject: [PATCH] =?UTF-8?q?Add=20in=20a=20way=20to=20see=20if=20the=20rand?= =?UTF-8?q?omly=20selected=20sprite=20is=20actually=20valid=E2=80=A6=20(#1?= =?UTF-8?q?6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add in a way to see if the randomly selected sprite is actually valid, and warn if it isn't, per yaml file. * clean up code a bit, and import one less thing. --- Mystery.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Mystery.py b/Mystery.py index 616137cb..fea9c86b 100644 --- a/Mystery.py +++ b/Mystery.py @@ -4,6 +4,7 @@ import random import urllib.request import urllib.parse import functools +import os import ModuleUpdate @@ -16,6 +17,7 @@ try: except ImportError: from yaml import Loader +from Rom import get_sprite_from_name from EntranceRandomizer import parse_arguments from Main import main as ERmain @@ -88,7 +90,7 @@ def main(): path = getattr(args, f'p{player}') if getattr(args, f'p{player}') else args.weights if path: try: - settings = settings_cache[path] if settings_cache[path] else roll_settings(weights_cache[path]) + settings = settings_cache[path] if settings_cache[path] else roll_settings(weights_cache[path], path) for k, v in vars(settings).items(): if v is not None: getattr(erargs, k)[player] = v @@ -121,7 +123,7 @@ def interpret_on_off(value): def convert_to_on_off(value): return {True: "on", False: "off"}.get(value, value) -def roll_settings(weights): +def roll_settings(weights, path): def get_choice(option, root=weights): if option not in root: return None @@ -228,6 +230,8 @@ def roll_settings(weights): if 'rom' in weights: romweights = weights['rom'] ret.sprite = get_choice('sprite', romweights) + if ret.sprite is not None and not os.path.isfile(ret.sprite) and not get_sprite_from_name(ret.sprite): + logging.Logger('').warning(f"Warning: In yaml file \"{path}\", The choson sprite, \"{ret.sprite}\" does not exist.") ret.disablemusic = get_choice('disablemusic', romweights) ret.extendedmsu = get_choice('extendedmsu', romweights) ret.quickswap = get_choice('quickswap', romweights)