#!/bin/sh
BASE=${BASE:-/home/data/baseq1}
EXEC=${EXEC:-./build-glx/quore}

if [ ! -x ${EXEC} ]; then
  echo "error: cannot find executable"
  exit 1
fi
case ${1} in
  *help|-h)
    echo "usage: ${0##*/} [{<mod>|help|single}] [<options>]"
    echo "environment variables :"
    echo "  BASE = ${0##*/} base directory"
    echo "  EXEC = path of an executable"
    echo "  SIZE = window size multiplicator starting from 320x240"
    echo "functionning mods :"
    echo "  5rivers, alba01, alba02, alk05, alk07, alk08, alk11, alk12, alk13, alk15,"
    echo "  bastion, bbelief, chapters, contract, czg07, dis_sp6, fc1, fmb_bdg1, fq,"
    echo "  guncotton, haunting, hrim, marcher, marine, n3sp02, ne, necro, nehahra,"
    echo "  nesp06, nesp09, nihilore, oum, quoth, rapture, rde, rmx, shesp1, slave,"
    echo "  tchak, tdk, terra1, thehand, travail, warp, whiteroom, zer"
    echo "nonfunctioning mods:"
    echo "  alk10, flesh, nightjourney"
    exit 0
    ;;
  [^+-]*)
    MOD=${1}
    shift 1
    ;;
esac

if [ ! -d ${BASE} ]; then
  BASE=${EXEC%/*}
  echo "warning: using ${BASE} as basedir"
fi
if [ -n "${MOD}" ] && [ ! -d ${BASE}/${MOD} ]; then
  case ${MOD} in
    debug|devel|nice) ;;
    *)
      echo "error: mod does not exist"
     exit 1
     ;;
  esac
fi

COMMAND="${EXEC} -basedir ${BASE} -bpp 32 -mem 512"
COMMAND="${COMMAND} +exec ../global.cfg"
if [ -n "${SIZE}" ]; then
  WIDTH=$((320*${SIZE}))
  HEIGHT=$((240*${SIZE}))	# 160
  COMMAND="${COMMAND} -window -width ${WIDTH} -height ${HEIGHT}"
else
  COMMAND="${COMMAND} -fullscreen -current"
fi

case ${MOD} in
  debug) COMMAND="valgrind --tool=memcheck --leak-check=yes ${COMMAND} +set developer 1" ;;
  devel) COMMAND="${COMMAND} +set developer 1 +map start" ;;
  nice) COMMAND="sudo nice -n 10 ${COMMAND}" ;;

  alba*|alk*|bastion|chaos|cjhsp1|fc1|flesh|fmb_bdg1|marcher|marine|necro|nihilore|tchak|terra1)
    COMMAND="${COMMAND} -game ${MOD} +map ${MOD}"
    ;;
  zer) COMMAND="${COMMAND} -game ${MOD}" ;;
  rde) COMMAND="${COMMAND} -game ${MOD} +map rdstart" ;;
  quoth) COMMAND="${COMMAND} -hipnotic -game ${MOD}" ;;
  5rivers|hrim|n3sp02|neh*|warp) COMMAND="${COMMAND} -quoth -hipnotic -game ${MOD}" ;;
  dis_sp6|slave|shesp1|thehand) COMMAND="${COMMAND} -quoth -hipnotic -game ${MOD} +map ${MOD}" ;;
  ne) COMMAND="${COMMAND} -quoth -hipnotic -game ${MOD} +map ne_lend" ;;
  nightjourney) COMMAND="${COMMAND} -rogue -game ${MOD}" ;;
  single) COMMAND="${COMMAND} -game ${MOD} +menu_singlemaps" ;;
  [a-z0-9]*) COMMAND="${COMMAND} -game ${MOD}" ;;
esac

echo "${COMMAND} ${*}"
${COMMAND} ${*}
