From f197b4b654ec882a333e9d488163a75cb3fb83e5 Mon Sep 17 00:00:00 2001
From: nick <myownlittlworld@hotmail.com>
Date: Sat, 6 Jun 2009 17:38:22 -0500
Subject: Created BG2-SOA installer.

Created list of game CDs.
---
 bg2/install-4cd-minimal-us.sh        |  49 -----------
 bg2/install-soa-4cd-us-extra.sh      |  40 +++++++++
 bg2/install-soa-4cd-us-minimal.sh    |  51 +++++++++++
 bg2/install-soa-4cd-us-tobMinimal.sh |  32 +++++++
 bg2/install-tob-1cd-us-extra.sh      |  35 ++++++++
 bg2/install-tob-1cd-us-minimal.sh    |  36 ++++++++
 includes/cd-list.sh                  | 162 +++++++++++++++++++++++++++++++++++
 7 files changed, 356 insertions(+), 49 deletions(-)
 delete mode 100755 bg2/install-4cd-minimal-us.sh
 create mode 100755 bg2/install-soa-4cd-us-extra.sh
 create mode 100755 bg2/install-soa-4cd-us-minimal.sh
 create mode 100755 bg2/install-soa-4cd-us-tobMinimal.sh
 create mode 100644 bg2/install-tob-1cd-us-extra.sh
 create mode 100644 bg2/install-tob-1cd-us-minimal.sh
 create mode 100644 includes/cd-list.sh

diff --git a/bg2/install-4cd-minimal-us.sh b/bg2/install-4cd-minimal-us.sh
deleted file mode 100755
index 864b010..0000000
--- a/bg2/install-4cd-minimal-us.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-#
-# Baldur's Gate 2 (4CD US version) Minimal Install
-# Copyright (C) 2009 Nick Daly
-# 
-# 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.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA    
-# 02110-1301 USA.
-
-scriptdir="$(dirname $0)"/..
-source "${scriptdir}/includes/generic-includes.sh"
-source "${scriptdir}/includes/cd-includes.sh"
-
-parseargs "$@"
-
-checkforbin unshield
-
-getcd 1 $BG2_4CD_US_MD5 data1.cab
-
-mkdir -p "$TARGETDIR" || die
-mkdir -p "${TARGETDIR}/portraits" || die
-
-cp "${CDMOUNT}/baldur.ico" "$TARGETDIR" || die
-
-unshield -L x "${CDMOUNT}/data1.cab" -d "$TARGETDIR" || die
-
-rm -r "${TARGETDIR}/_"* # remove all the the fake directories.
-
-for i in "${TARGETDIR}/hd0_"* ; do j=`echo $i | sed 's#hd0_##g' - ` ; mv "$i" "$j" ; done
-
-move_and_remove "${TARGETDIR}/cab" "${TARGETDIR}"
-move_and_remove "${TARGETDIR}/compiler" "${TARGETDIR}/script compiler"
-move_and_remove "${TARGETDIR}/register" "${TARGETDIR}/eReg"
-move_and_remove "${TARGETDIR}/sound" "${TARGETDIR}/sounds"
-
-rm -r "${TARGETDIR}/cache100" "${TARGETDIR}/cache/cache150.txt" "${TARGETDIR}/mplayer"
-
-setperms "$TARGETDIR"
diff --git a/bg2/install-soa-4cd-us-extra.sh b/bg2/install-soa-4cd-us-extra.sh
new file mode 100755
index 0000000..6374720
--- /dev/null
+++ b/bg2/install-soa-4cd-us-extra.sh
@@ -0,0 +1,40 @@
+#! /bin/bash
+#
+# Baldur's Gate 2 (4CD US version) Full Install
+# Copyright (C) 2009 GemRB Installers, Nick Daly
+# 
+# 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.
+
+scriptdir="$(dirname $0)"/..
+source "${scriptdir}/includes/generic-includes.sh"
+source "${scriptdir}/includes/cd-includes.sh"
+
+parseargs "$@"
+
+checkforbin unshield
+
+CD2_MD5="c78f41ff4cb47ea04fdf25ea6f55eb8b"
+CD3_MD5="61fa51451c9ab102383c082fac3687dc"
+CD4_MD5="d13f925c01c1f78fd35baa708715ebbd"
+
+getcd 2 $CD2_MD5 "data3.cab"
+copylower "${CDMOUNT}/CD2/" "$TARGETDIR"
+
+getcd 3 $CD3_MD5 "data4.cab"
+copylower "${CDMOUNT}/CD3/" "$TARGETDIR"
+
+getcd 4 $CD4_MD5 "data5.cab"
+copylower "${CDMOUNT}/CD4/" "$TARGETDIR"
+
+teardown "$TARGETDIR"
diff --git a/bg2/install-soa-4cd-us-minimal.sh b/bg2/install-soa-4cd-us-minimal.sh
new file mode 100755
index 0000000..3db85b5
--- /dev/null
+++ b/bg2/install-soa-4cd-us-minimal.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+#
+# Baldur's Gate 2 (4CD US version) Minimal Install
+# Copyright (C) 2009 Nick Daly
+# 
+# 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.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA    
+# 02110-1301 USA.
+
+scriptdir="$(dirname $0)"/..
+source "${scriptdir}/includes/generic-includes.sh"
+source "${scriptdir}/includes/cd-includes.sh"
+
+parseargs "$@"
+
+checkforbin unshield
+
+getcd 1 $BG2_4CD_US_MD5 data1.cab
+
+mkdir -p "$TARGETDIR" || die
+
+cp "${CDMOUNT}/baldur.ico" "$TARGETDIR" || die
+
+unshield x "${CDMOUNT}/data1.cab" -d "$TARGETDIR" || die
+
+rm -r "${TARGETDIR}/_"* # remove all the the fake directories.
+
+for i in "${TARGETDIR}/hd0_"* ; do j=`echo $i | sed 's#hd0_##g' - ` ; mv "$i" "$j" ; done
+
+move_and_remove "${TARGETDIR}/cab" "${TARGETDIR}"
+move_and_remove "${TARGETDIR}/compiler" "${TARGETDIR}/script compiler"
+move_and_remove "${TARGETDIR}/register" "${TARGETDIR}/eReg"
+move_and_remove "${TARGETDIR}/sound" "${TARGETDIR}/sounds"
+
+mkdir -p "${TARGETDIR}/portraits" || die
+for directory in "compiled" "decompiled" "errors"; do mkdir -p "${TARGETDIR}/script compiler/${directory}" || die; done
+
+rm -r "${TARGETDIR}/cache100" "${TARGETDIR}/cache/cache150.txt" "${TARGETDIR}/mplayer"
+
+setperms "$TARGETDIR"
diff --git a/bg2/install-soa-4cd-us-tobMinimal.sh b/bg2/install-soa-4cd-us-tobMinimal.sh
new file mode 100755
index 0000000..a65ea7b
--- /dev/null
+++ b/bg2/install-soa-4cd-us-tobMinimal.sh
@@ -0,0 +1,32 @@
+#! /bin/bash
+#
+# Baldur's Gate 2 Shadows of Amn (4CD US version) Minimal TOB Install
+# Copyright (C) 2009 GemRB Installers, Nick Daly
+# 
+# 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.
+
+scriptdir="$(dirname $0)"/..
+source "${scriptdir}/includes/generic-includes.sh"
+source "${scriptdir}/includes/cd-includes.sh"
+
+parseargs "$@"
+
+checkforbin unshield
+
+CD2_MD5="c78f41ff4cb47ea04fdf25ea6f55eb8b"
+
+getcd 2 $CD2_MD5 "data3.cab"
+copylower "${CDMOUNT}/CD2/" "$TARGETDIR"
+
+teardown "$TARGETDIR"
diff --git a/bg2/install-tob-1cd-us-extra.sh b/bg2/install-tob-1cd-us-extra.sh
new file mode 100644
index 0000000..4b0c3d3
--- /dev/null
+++ b/bg2/install-tob-1cd-us-extra.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+#
+# Baldur's Gate 2 Throne of Bhaal (1CD US version) Minimal Install
+# Copyright (C) 2009 GemRB Installers, Nick Daly
+# 
+# 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.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA    
+# 02110-1301 USA.
+
+scriptdir="$(dirname $0)"/..
+source "${scriptdir}/includes/generic-includes.sh"
+source "${scriptdir}/includes/cd-includes.sh"
+
+parseargs "$@"
+
+checkforbin unshield
+
+getcd 1 $BG2_TOB_1CD_US_MD5 data1.cab
+
+mkdir -p "$TARGETDIR" || die
+
+# TODO finish everything below here.
+
+teardown "$TARGETDIR"
diff --git a/bg2/install-tob-1cd-us-minimal.sh b/bg2/install-tob-1cd-us-minimal.sh
new file mode 100644
index 0000000..e7e1f11
--- /dev/null
+++ b/bg2/install-tob-1cd-us-minimal.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Baldur's Gate 2 Throne of Bhaal (1CD US version) Minimal Install
+# Copyright (C) 2009 GemRB Installers, Nick Daly
+# 
+# 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.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA    
+# 02110-1301 USA.
+
+scriptdir="$(dirname $0)"/..
+source "${scriptdir}/includes/generic-includes.sh"
+source "${scriptdir}/includes/cd-includes.sh"
+
+parseargs "$@"
+
+checkforbin unshield
+
+getcd 1 $BG2_TOB_1CD_US_MD5 data1.cab
+
+mkdir -p "$TARGETDIR" || die
+
+# TODO finish everything below here.
+# TODO if the cd2 directory doesn't have contents, ask user to run the appropriate preinstaller.
+
+teardown "$TARGETDIR"
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
+}
-- 
cgit v1.2.3