diff --git a/dcc/dsda.py b/dcc/dsda.py index bf6e156..42eeeba 100644 --- a/dcc/dsda.py +++ b/dcc/dsda.py @@ -10,6 +10,7 @@ class DSDA(dcc.doom_base.WadMap): def get_parser(self, prog_name): parser = super().get_parser(prog_name) parser.add_argument("-s", "--single", action="store_true") + parser.add_argument("-n", "--name") return parser def take_action(self, parsed_args): @@ -27,9 +28,14 @@ class DSDA(dcc.doom_base.WadMap): if "EDITOR" in os.environ: editor = os.environ["EDITOR"] subprocess.run([editor, dtp]) - fh1 = parsed_args.wad[0:2] + parsed_args.map - if parsed_args.single: - fh1 = parsed_args.wad[0:min(len(parsed_args.wad), 4)] + if parsed_args.name: + fh1 = parsed_args.name + if not parsed_args.single: + fh1 += parsed_args.map + else: + fh1 = parsed_args.wad[0:2] + parsed_args.map + if parsed_args.single: + fh1 = parsed_args.wad[0:min(len(parsed_args.wad), 4)] fh2 = "" with open(dtp, mode="r") as f: for line in f: @@ -38,6 +44,8 @@ class DSDA(dcc.doom_base.WadMap): if m is None: continue fh2 = m[1]+m[2] + if len(fh2)%2==1: + fh2 = "0" + fh2 break if not fh2: sys.exit("Failed to match any line in {} against Time regex.".format(dtp))