From f197b4b654ec882a333e9d488163a75cb3fb83e5 Mon Sep 17 00:00:00 2001 From: nick 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 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 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 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