#!/bin/bash # Copyright 2009 Nick White # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # See for a copy of the GNU General # Public License. # # Runs the appropriate installer(s) for an Infinity Engine game, # based on the CD inserted FULLGAMENAME='' MINSCRIPT='' EXTRASCRIPT='' PATCHES='' CDNO='' scriptdir="$(dirname $0)" source "$scriptdir/includes/generic-includes.sh" source "$scriptdir/includes/cd-includes.sh" source "$scriptdir/includes/patch-includes.sh" source "$scriptdir/includes/autoinstall-includes.sh" parseargs "$@" echo "Checking CD version" CDMD5=$(md5sum $CDMOUNT/data1.cab|awk '{print $1}') while [ -z "$MINSCRIPT" ]; do case "$CDMD5" in "138528155dfeb695bd63f90eacee7dc0" ) FULLGAMENAME="Baldurs Gate 1: 5CD International version" SHORTGAMENAME="bg1" MINSCRIPT=bg1/install-5cd-minimal.sh EXTRASCRIPT=bg1/install-5cd-extra.sh PATCHES="bg1/install-patch-intl.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-baldurdash-text.sh" WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url" CDNO=5 ;; "1a6828b97a27967e8c4acc25e1ef48d2" ) FULLGAMENAME="Baldurs Gate & Tales of the Sword Coast: 3CD US version" SHORTGAMENAME="totsc" MINSCRIPT=totsc/install-3cd-minimal.sh EXTRASCRIPT=totsc/install-3cd-extra.sh PATCHES="totsc/install-patch-baldurdash-fix.sh totsc/install-patch-baldurdash-text.sh" WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url" CDNO=3 ;; "e27d259ddc0171ff945dbba136e60309" ) FULLGAMENAME="Baldurs Gate Tales of the Sword Coast: 1CD UK version" SHORTGAMENAME="totsc" MINSCRIPT=totsc/install-1cd-uk.sh PATCHES="totsc/install-patch-uk.sh totsc/install-patch-baldurdash-fix.sh totsc/install-patch-baldurdash-text.sh" WINDOWSFILES="bgmain2.exe baldur.exe config.exe mconvert.exe" CDNO=6 ;; "640b61443cc86c434f1b6826e63c0e33" ) FULLGAMENAME="Planescape Torment: 2CD version" SHORTGAMENAME="pst" MINSCRIPT=pst/install-2cd-minimal.sh EXTRASCRIPT=pst/install-2cd-extra.sh WINDOWSFILES="torment.exe ereg" CDNO=2 ;; "5e8c2075163aca124de4a467fb33063d" ) FULLGAMENAME="Planescape Torment: 4CD version" SHORTGAMENAME="pst" MINSCRIPT=pst/install-4cd-minimal.sh EXTRASCRIPT=pst/install-4cd-extra.sh PATCHES="pst/install-patch-official.sh" WINDOWSFILES="torment.exe ereg" CDNO=4 ;; * ) echo "Unrecognised CD - please select game from menu" choosegame ;; esac done [ -z "$TARGETDIR" ] && [ -n "$SHORTGAMENAME" ] && export TARGETDIR="$PWD/$SHORTGAMENAME" [ -z "$TARGETDIR" ] && diequietly echo "$FULLGAMENAME detected, installing" "$scriptdir/$MINSCRIPT" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly if [ -n "$EXTRASCRIPT" ]; then if query "Do you want to do a full install, so the CDs will not be needed again?" y; then FULLINSTALL=1 "$scriptdir/$EXTRASCRIPT" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly else FULLINSTALL=0 fi fi if [ -n "$PATCHES" ]; then for patch in $PATCHES; do patch="$scriptdir/$patch" # grab 17th line from scripts (description line; after license) patchtitle=$(sed -n 17p $patch|cut -d ' ' -f 2-) if query "Do you want to install $patchtitle" y; then $patch \ -i "$TARGETDIR" \ -p "$PATCHDIR" \ -l "$LANGUAGE" \ -c "$CDMOUNT" \ 1>/dev/null fi done fi if [ -n "$WINDOWSFILES" ]; then if query "Do you want to remove unneeded windows files?" n; then for badfile in $WINDOWSFILES; do rm -rf "$TARGETDIR"/$badfile done fi fi echo echo "$FULLGAMENAME installed successfully" recommendcfg $CDNO