Initial checkin for dcc v2. Includes support for play/record/fabricate.
This commit is contained in:
parent
9a790b0b3a
commit
e78453d6bd
8 changed files with 166 additions and 0 deletions
58
dcc/config.py
Normal file
58
dcc/config.py
Normal file
|
@ -0,0 +1,58 @@
|
|||
import io
|
||||
import pathlib
|
||||
import os
|
||||
import re
|
||||
|
||||
DOOM=pathlib.Path.home().joinpath("doom")
|
||||
DSDA_DIR=DOOM.joinpath("dsda-doom")
|
||||
DSDA_VER='0.28.3'
|
||||
DSDA=DSDA_DIR.joinpath('dsda-doom-{}-Linux.appimage'.format(DSDA_VER))
|
||||
IWADS=DOOM.joinpath("iwads")
|
||||
PWADS=DOOM.joinpath("pwads")
|
||||
DEMOS=DOOM.joinpath("demos")
|
||||
OUTPUT=DOOM.joinpath("fabricate")
|
||||
|
||||
DEFAULT_IWAD=IWADS.joinpath("DOOM2.WAD")
|
||||
|
||||
def DsdaPreamble(wad, mapstr):
|
||||
args = []
|
||||
pwadpath = PWADS.joinpath(wad)
|
||||
iwad = DEFAULT_IWAD
|
||||
iwadpath = pwadpath.joinpath("iwad")
|
||||
if iwadpath.exists():
|
||||
with io.open(iwadpath) as f:
|
||||
iwad = f.read().strip() + ".WAD"
|
||||
args = args + ["-iwad", iwad]
|
||||
|
||||
wads = sorted(pwadpath.glob('*.wad', case_sensitive=False))
|
||||
if len(wads) > 0:
|
||||
args = args + ["-file"] + wads
|
||||
|
||||
dehs = sorted(pwadpath.glob('*.deh', case_sensitive=False))
|
||||
if len(dehs) > 0:
|
||||
args = args + ["-deh"] + dehs
|
||||
|
||||
complevel = pwadpath.joinpath("complevel")
|
||||
if not complevel.exists():
|
||||
raise Exception("No complevel set in PWAD dir {}.".format(pwadpath))
|
||||
|
||||
with io.open(complevel) as f:
|
||||
args = args + ["-complevel", f.read().strip()]
|
||||
|
||||
args = args + ["-skill", "4"]
|
||||
args = args + ["-warp", mapstr] # TODO: UDoom
|
||||
return args
|
||||
|
||||
def DemoInPath(wad, mapstr):
|
||||
candidates = [x for x in DEMOS.joinpath(wad).glob("{}_map{}*.lmp".format(wad, mapstr))]
|
||||
if len(candidates) == 0:
|
||||
raise Exception("no suitable demo candidates for WAD {} MAP {}.", wad, mapstr)
|
||||
if len(candidates) == 1:
|
||||
return candidates[0]
|
||||
return sorted(filter(lambda s : re.search("-", str(s)), candidates))[-1]
|
||||
|
||||
def DemoOutPath(wad, mapstr):
|
||||
return DEMOS.joinpath(wad).joinpath("{}_map{}.lmp".format(wad, mapstr))
|
||||
|
||||
def VideoPath(wad, mapstr):
|
||||
return OUTPUT.joinpath(wad).joinpath("{}_map{}.mp4".format(wad, mapstr))
|
Loading…
Add table
Add a link
Reference in a new issue