diff --git a/dcc/configure.py b/dcc/configure.py index 0bc0e5f..31ed4b5 100644 --- a/dcc/configure.py +++ b/dcc/configure.py @@ -1,11 +1,12 @@ import dcc.doom_base +import omg import tomlkit.toml_file class Configure(dcc.doom_base.Wad): def get_parser(self, prog_name): parser = super().get_parser(prog_name) - parser.add_argument("complevel") + parser.add_argument("--complevel", "--cl") parser.add_argument("--iwad") return parser @@ -14,8 +15,21 @@ class Configure(dcc.doom_base.Wad): if new_config.exists(): raise Exception(f"Config {new_config} already exists.") + complevel = parsed_args.complevel + if complevel is None: + for w in self.load_order(): + try: + wad = omg.WadIO(w) + complevel = wad.read("COMPLVL").decode("ascii").strip() + except Exception as e: + print( + f"Wad {w} likely has no lump COMPLVL (exception {e})") + if complevel is None: + complevel = input("Complevel? ") + + doc = tomlkit.document() - doc.add("complevel", parsed_args.complevel) + doc.add("complevel", complevel) if parsed_args.iwad is not None: doc.add("iwad", parsed_args.iwad) diff --git a/dcc/extract.py b/dcc/extract.py index 447ffa9..292bd39 100644 --- a/dcc/extract.py +++ b/dcc/extract.py @@ -12,12 +12,7 @@ class Extract(dcc.doom_base.Wad): return parser def take_action(self, parsed_args): - wads = sorted( - self.pwads.joinpath(self.wad).glob('*.wad', case_sensitive=False), - reverse=True - ) - - for w in wads: + for w in self.load_order() try: # TODO: handle anything other than graphics. wad = omg.WadIO(w)