ironwail_quake.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/sh
  2. config_game_dir=~/games/quake
  3. config_script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
  4. mapfile=$(find $config_game_dir/*/{maps/*.bsp,pak0.pak} -type f | shuf -n 1)
  5. installed_bin=$(which qpakman 2>/dev/null || echo false)
  6. compiled_bin="$HOME/src/qpakman/qpakman"
  7. qpakman_command=$(if [ ! $installed_bin = "false" ]; then echo "qpakman"; else if [ -f "$compiled_bin" ]; then echo "$compiled_bin"; fi; fi) \
  8. get_random_map() {
  9. if [[ "$mapfile" == *"pak"* ]]; then
  10. # Get map directory name
  11. mapdir=$(dirname $mapfile)
  12. mapdir=$(echo ${mapdir} | awk -F/ '{print $(NF)}')
  13. # Get map pak file map name
  14. pakfile=$mapfile
  15. mapfile=$(${qpakman_command} -l "$pakfile" | grep 'maps/' | grep '.bsp' | awk '{ print $5 }' | shuf -n 1)
  16. else
  17. # Get map directory name
  18. mapdir=$(dirname "$mapfile")
  19. mapdir=$(echo ${mapdir} | awk -F/ '{print $(NF-1)}')
  20. fi
  21. }
  22. get_random_map
  23. while [ -z $mapdir ]
  24. do
  25. unset mapdir
  26. get_random_map
  27. done
  28. echo "INFO: $0 - Map directory $mapdir"
  29. # get map name
  30. mapname=$(basename -- "${mapfile%.*}")
  31. echo "INFO: $0 - Map name $mapname"
  32. # run
  33. installed_bin=$(which ironwail 2>/dev/null || echo false)
  34. compiled_bin="$HOME/src/ironwail/Quake/ironwail"
  35. set -x
  36. $(if [ ! $installed_bin = "false" ]; then echo "ironwail"; else if [ -f "$compiled_bin" ]; then echo "$compiled_bin"; fi; fi) \
  37. -current -basedir $config_game_dir -heapsize 524288 -zone 4096 -game $mapdir +map $mapname +skill 1 -fitz \
  38. +r_particles 2 +r_lerpmodels 1 +r_lerpmove 1 +r_viewmodel_quake 1 +r_scale 1 +scr_ofsx -2.8 +scr_sbaralpha 1 +v_gunkick 2 +gamma 1.2 +contrast 1.5 +fov 85 +fog 0.02 +scr_showfps 1 \
  39. > /tmp/ironwail.log
  40. set +x