summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/cd-list.sh162
1 files changed, 162 insertions, 0 deletions
diff --git a/includes/cd-list.sh b/includes/cd-list.sh
new file mode 100644
index 0000000..bd8a623
--- /dev/null
+++ b/includes/cd-list.sh
@@ -0,0 +1,162 @@
+#!/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 <http://www.gnu.org/licenses/> for a copy of the GNU General
+# Public License.
+#
+# Selects the appropriate installer(s) for an Infinity Engine game,
+# based on the CD inserted
+
+function get_game
+{
+ while [ -z "$MINSCRIPT" ]; do
+ case $CDMD5 in
+ $BG1_5CD_INTL_MD5 )
+ FULLGAMENAME="Baldurs Gate 1: 5CD International version"
+ SHORTGAMENAME="baldursgate1"
+ 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
+ ;;
+ $BG1_TOTSC_3CD_US_MD5 )
+ FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 3CD US version"
+ SHORTGAMENAME="baldursgate1totsc"
+ MINSCRIPT="bg1/install-3cd-minimal.sh"
+ EXTRASCRIPT="bg1/install-3cd-extra.sh"
+ PATCHES="bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
+ WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url"
+ CDNO=3
+ ;;
+ $BG1_TOTSC_1CD_UK_MD5 )
+ FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 1CD UK version"
+ SHORTGAMENAME="baldursgate1totsc"
+ MINSCRIPT="bg1/install-1cd-totsc-uk.sh"
+ PATCHES="bg1/install-patch-totsc-uk.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
+ WINDOWSFILES="bgmain2.exe baldur.exe config.exe mconvert.exe"
+ ;;
+ $BG2_4CD_US_MD5 )
+ FULLGAMENAME="Baldurs Gate 2 - Shadows of Amn: 4CD US version"
+ SHORTGAMENAME="baldursgate2soa"
+ MINSCRIPT="bg2/install-soa-4cd-us-minimal.sh"
+ EXTRASCRIPT="bg2/install-soa-4cd-us-extra.sh"
+ EXPANSIONSCRIPT="bg2/install-soa-4cd-us-tobMinimal.sh"
+ PATCHES="" # TODO: fill in patches
+ # bg2/install-patch-soa-us.sh bg2/install-patch-baldurdash-fix.sh bg2/install-patch-soa-baldurdash-text.sh"
+ WINDOWSFILES="bgdxtest.exe bggltest.exe glsetup.exe bgconfig.exe bgmain.exe charview.exe"
+ ;;
+ $BG2_TOB_1CD_US_MD5 )
+ FULLGAMENAME="Baldurs Gate 2 - Throne of Bhaal: 1CD US version"
+ SHORTGAMENAME="baldursgate2tob"
+ MINSCRIPT="bg2/install-tob-1cd-us.sh"
+ PATCHES="" # TODO: fill in patches
+ # bg2/install-patch-totsc-uk.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
+ # TODO: correct the list of windows files.
+ WINDOWSFILES="" # "bgmain2.exe baldur.exe config.exe mconvert.exe"
+ ;;
+ $PST_2CD_MD5 )
+ FULLGAMENAME="Planescape Torment: 2CD version"
+ SHORTGAMENAME="planescapetorment"
+ MINSCRIPT="pst/install-2cd-minimal.sh"
+ EXTRASCRIPT="pst/install-2cd-extra.sh"
+ WINDOWSFILES="torment.exe ereg"
+ CDNO=2
+ ;;
+ $PST_4CD_MD5 )
+ FULLGAMENAME="Planescape Torment: 4CD version"
+ SHORTGAMENAME="planescapetorment"
+ MINSCRIPT="pst/install-4cd-minimal.sh"
+ EXTRASCRIPT="pst/install-4cd-extra.sh"
+ PATCHES="pst/install-patch-official.sh"
+ WINDOWSFILES="torment.exe ereg"
+ CDNO=4
+ ;;
+ $IWD_2CD_UK_MD5 )
+ FULLGAMENAME="Icewind Dale 2CD International version"
+ SHORTGAMENAME="icewinddale"
+ MINSCRIPT="iwd/install-2cd-uk-minimal.sh"
+ EXTRASCRIPT="iwd/install-2cd-uk-extra.sh"
+ PATCHES="iwd/install-patch-uk-fix.sh iwd/install-patch-us.sh"
+ WINDOWSFILES="3dfx.dll config.exe icewind.ini keymap.ini language.ini mpicewnd.mpi"
+ CDNO=2
+ ;;
+ $IWD2_2CD_INTL_MD5 )
+ FULLGAMENAME="Icewind Dale 2CD International version"
+ SHORTGAMENAME="icewinddale"
+ MINSCRIPT="iwd/install-2cd-uk-minimal.sh"
+ EXTRASCRIPT="iwd/install-2cd-uk-extra.sh"
+ PATCHES="iwd/install-patch-uk-fix.sh iwd/install-patch-us.sh"
+ WINDOWSFILES="3dfx.dll config.exe icewind.ini keymap.ini language.ini mpicewnd.mpi"
+ CDNO=2
+ ;;
+ * )
+ echo "Unrecognised CD - please select game from menu"
+ choosegame
+ ;;
+ esac
+ done
+
+ export FULLGAMENAME SHORTGAMENAME MINSCRIPT EXTRASCRIPT EXPANSIONSCRIPT PATCHES WINDOWSFILES CDNO
+}
+
+function choosegame
+{
+ while true; do
+ choice=0
+ # TODO: don't forget to add all the games to this list.
+ echo "Choose the game to install from the list:"
+ echo "1 | Baldur's Gate 1 (5CD International version)"
+ echo "2 | Baldur's Gate & Tales of the Sword Coast (3CD US version)"
+ echo "3 | Tales of the Sword Coast (1CD UK version)"
+ echo "4 | Baldur's Gate 2 - Shadows of Amn (4CD US version)"
+ echo "5 | Baldur's Gate 2 - Throne of Bhaal (1CD US version)"
+ echo "6 | Planescape: Torment (2CD version)"
+ echo "7 | Planescape: Torment (4CD version)"
+ echo "8 | Icewind Dale (2CD UK version)"
+ echo "9 | Icewind Dale 2 (2CD International version)"
+ echo
+ echo "Z | My game isn't listed."
+ echo
+ echo "Q | Quit"
+
+ read -n 1 choice
+ echo
+
+ case $choice in
+ 1 ) export CDMD5=$BG1_5CD_INTL_MD5
+ return 0 ;;
+ 2 ) export CDMD5=$BG1_TOTSC_3CD_US_MD5
+ return 0 ;;
+ 3 ) export CDMD5=$BG1_TOTSC_1CD_UK_MD5
+ return 0 ;;
+ 4 ) export CDMD5=$BG2_4CD_US_MD5
+ return 0 ;;
+ 5 ) export CDMD5=$BG2_TOB_1CD_US_MD5
+ return 0 ;;
+ 6 ) export CDMD5=$PST_2CD_MD5
+ return 0 ;;
+ 7 ) export CDMD5=$PST_4CD_MD5
+ return 0 ;;
+ 8 ) export CDMD5=$IWD_2CD_UK_MD5
+ return 0 ;;
+ 9 ) export CDMD5=$IWD2_2CD_INTL_MD5
+ return 0 ;;
+ [Qq] ) diequietly
+ return 0 ;;
+ [Zz] ) echo
+ "$(dirname $0)/disc_collector.sh"
+ return 0 ;;
+ esac
+ done
+}