diff --git a/emu-configs/gzdoom/gzdoom.sh b/emu-configs/gzdoom/gzdoom.sh index 3fb0ef68..69508737 100644 --- a/emu-configs/gzdoom/gzdoom.sh +++ b/emu-configs/gzdoom/gzdoom.sh @@ -2,6 +2,12 @@ LOG_FILE="$rdhome/.logs/gzdoom.log" +if [ -e "$LOG_FILE" ]; then + rm "$LOG_FILE" +fi + +echo "RetroDECK GZDOOM wrapper init." | tee -a "$LOG_FILE" + # List of IWAD files IWAD_FILES=("DOOM1.WAD" "DOOM.WAD" "DOOM2.WAD" "DOOM2F.WAD" "DOOM64.WAD" "TNT.WAD" "PLUTONIA.WAD" "HERETIC1.WAD" "HERETIC.WAD" "HEXEN.WAD" "HEXDD.WAD" @@ -10,11 +16,22 @@ IWAD_FILES=("DOOM1.WAD" "DOOM.WAD" "DOOM2.WAD" "DOOM2F.WAD" "DOOM64.WAD" "TNT.WA "doom_complete.pk3" # this includes them all ) -# Convert file name to uppercase for case-insensitive comparison -provided_file=$(echo "$1" | tr '[:lower:]' '[:upper:]') +echo "Trying to load \"$1\"." | tee -a "$LOG_FILE" -if [[ " ${IWAD_FILES[@]} " =~ " $provided_file " ]]; then - gzdoom +fluid_patchset /app/share/sounds/sf2/gzdoom.sf2 -config /var/config/gzdoom/gzdoom.ini -iwad "$1" >> "$LOG_FILE" 2>&1 +if [ ! -e "$1" ]; then + echo "$1 not found. Quitting." | tee -a "$LOG_FILE" + exit 0 +fi + +filename=$(basename "$1") # Extracts only the filename from the full path + +shopt -s nocasematch # Enable case-insensitive matching +if [[ "${IWAD_FILES[@]}" =~ "$filename" ]]; then + type="iwad" else - gzdoom +fluid_patchset /app/share/sounds/sf2/gzdoom.sf2 -config /var/config/gzdoom/gzdoom.ini -file "$1" >> "$LOG_FILE" 2>&1 -fi \ No newline at end of file + type="file" +fi +shopt -u nocasematch # Disable case-insensitive matching after use + +echo "Found $type: $1, loading it." | tee -a "$LOG_FILE" +gzdoom +fluid_patchset /app/share/sounds/sf2/gzdoom.sf2 -config /var/config/gzdoom/gzdoom.ini -$type "$1" | tee -a "$LOG_FILE" \ No newline at end of file