#!/bin/sh
#
# battalion -- startup script for Solaris battalion 1.2.
#
# The -mesa argument starts the Mesa binary
# even if OpenGL is installed.
#
# Created 31-May-96, Johan Hagman.
#
# 19-Jun-96	Added hints on how to define a global hiscore file.
# 29-Jun-96     Defined MESA_BACK_BUFFER, MESA_RGB_VISUAL. DXlib is
#		now enabled on all non-Creator 2.5/2.5.1 systems.
#  1-Jul-96	Added -debug option for this script.
#  3-Jul-96	Added BATTALIONSCOREUNIQUE definition.
#  8-Jul-96	Added -lscores (use local high scores file) option.
# 16-Jul-96	Access check on global high score directory.

unset LD_LIBRARY_PATH
FORCE_MESA=0

if [ "$1" = "-debug" ]; then
    set -x
    shift
fi

if [ "$1" = "-mesa" ]; then
    FORCE_MESA=1
    shift
fi

GAMEDIR=`dirname $0`
cd $GAMEDIR

# Uncomment (and edit) this line to define your own
# high score directory. Default is /var/tmp.
#BATTALIONSCOREDIR=/usr/local/games/lib; export BATTALIONSCOREDIR

# Uncomment the following line to allow no more
# than one entry per user in the high score list.
#BATTALIONSCOREUNIQUE=; export BATTALIONSCOREUNIQUE

if [ "$BATTALIONSCOREDIR" ]; then
  if [ \! -w $BATTALIONSCOREDIR ]; then
    echo "Directory \"$BATTALIONSCOREDIR\" is not writable, using local high scores"
    unset BATTALIONSCOREDIR
    unset BATTALIONSCOREUNIQUE
  else
    : Log game usage
    #echo "$USER\t`date`" >> $BATTALIONSCOREDIR/battalion.usage
  fi
fi

if [ "$1" = "-lscores" ]; then
    unset BATTALIONSCOREDIR
    unset BATTALIONSCOREUNIQUE
    shift
fi

# Mesa binary, optimized for SPARC V8
MESABIN=./battalion.mesa

# Sun OpenGL 1.0 binary
OPENGLBIN=./battalion.opengl

# Use XImage back buffers
MESA_BACK_BUFFER=X; export MESA_BACK_BUFFER

# This will pick a bad visual on at least SX and Creator 3D
# (and probably other 24-bit framebuffers). Not needed.
#MESA_RGB_VISUAL="PseudoColor 8"; export MESA_RGB_VISUAL

# Direct Xlib startup script
DXLIB=/opt/SUNWdxlib/bin/dxlib

# Turn down the volume
audioplay -i -v 8

if [ `uname -r | cut -c1-3` = "5.5" ]; then
    # Solaris 2.5/2.5.1: enable shared memory transport
    XSUNTRANSPORT=shmem
    XSUNSMESIZE=512
    export XSUNTRANSPORT XSUNSMESIZE

    # Select Mesa or OpenGL binary
    if [ $FORCE_MESA -eq 0 -a -f /usr/openwin/lib/libGL.so ]; then
	exec $OPENGLBIN $*
    else
	# Mesa version: use DXlib if it's installed and
	# this is *not* a Creator/Creator3D
	if [ -h /dev/fbs/ffb0 ]; then
	    # Creator is fast enough to default to medium detail
	    exec $MESABIN -d 1 $*
	elif [ -x $DXLIB ]; then
	    exec $DXLIB $MESABIN $*
	else
	    exec $MESABIN $*
	fi
    fi
else
    # Solars 2.4 or earlier: use Direct Xlib if it's installed
    if [ -x $DXLIB ]; then
	exec $DXLIB $MESABIN $*
    else
	exec $MESABIN $*
    fi
fi
