commit f11f3037be22315943c9c81a2d33436a3251f2de Author: yrriban Date: Wed Jul 10 01:43:11 2024 -0400 Initial commit. diff --git a/dcc b/dcc new file mode 100755 index 0000000..7d3cabb --- /dev/null +++ b/dcc @@ -0,0 +1,68 @@ +#!/bin/bash + +set -x +if [[ $# != 3 ]]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +PWAD="$2" +MAP="$3" +COMMAND=() +PWADPATH="${HOME}/doom/pwads/${PWAD}" +DEMOPATH="${HOME}/doom/demos/${PWAD}" +VIDPATH="${HOME}/doom/fabricate/${PWAD}" + +if ! [[ -e "${PWADPATH}" ]]; then + echo "PWAD ${PWAD} not found." >&2 + exit 1 +fi + +case $1 in + "play") + ;; + "record") + mkdir -p "${DEMOPATH}" + COMMAND=("-record" "${DEMOPATH}/${PWAD}_map${MAP}.lmp") + ;; + "fabricate") + mkdir -p "${VIDPATH}" + COMMAND=("-timedemo" "${DEMOPATH}/${PWAD}_map${MAP}.lmp" "-viddump" "${VIDPATH}/${PWAD}_map${MAP}.mp4") + ;; + "pb") + ffplay "${HOME}/doom/fabricate/${PWAD}/${PWAD}_map${MAP}.mp4" + exit $? + ;; + *) + echo "Unknown command $1." >&2 + exit 1 +esac + +WADS=() +readarray -d '' WADS < <(find "${PWADPATH}" -maxdepth 1 -iname '*.wad' -print0) +if ! [[ -z "${WADS[@]}" ]]; then + WADS=("-file" "${WADS[@]}") + # otherwise, assume it's an iwad alone. +fi + +IWAD=("-iwad" "${HOME}/doom/iwads/DOOM2.WAD") +if [[ -e "${PWADPATH}/iwad" ]]; then + IWAD=("-iwad" "${HOME}/doom/iwads/$(< "${PWADPATH}/iwad").WAD") +fi + +readarray -d '' DEH < <(find "${PWADPATH}" -maxdepth 1 -iname '*.deh' -print0) +if ! [[ -z "${DEH[@]}" ]]; then + DEH=("-deh" "${DEH[@]}") +fi +if ! [[ -e "${PWADPATH}/complevel" ]]; then + echo "No complevel set in PWAD dir ${PWADPATH}." >&2 + exit 1 +fi +COMPLEVEL=("-complevel" "$(< "${PWADPATH}/complevel")") +OPTIONS=() +if [[ -e "${PWADPATH}/options" ]]; then + OPTIONS=("-assign" "$(< "${PWADPATH}/options")") +fi +dsda-doom \ + -skill 4 -warp ${MAP} \ + "${IWAD[@]}" "${WADS[@]}" "${DEH[@]}" "${COMPLEVEL[@]}" "${OPTIONS[@]}" "${COMMAND[@]}"