From 933c53a67d04b9418e54286b1ff19f8b89655941 Mon Sep 17 00:00:00 2001 From: Nick Daly Date: Sat, 7 Nov 2009 22:41:08 -0600 Subject: Partially enabled PlayOnLinux. * Added PlayOnLinux to includes/autoinstall-includes.sh. * Clarified help-text in includes/generic-includes.sh. --- auto-installer.sh | 3 ++ includes/autoinstall-includes.sh | 74 +++++++++++++++++++++++++++++++++++----- includes/generic-includes.sh | 1 + 3 files changed, 70 insertions(+), 8 deletions(-) diff --git a/auto-installer.sh b/auto-installer.sh index 586d974..2653863 100755 --- a/auto-installer.sh +++ b/auto-installer.sh @@ -30,6 +30,9 @@ source "$scriptdir/includes/cd-includes.sh" source "$scriptdir/includes/patch-includes.sh" source "$scriptdir/includes/autoinstall-includes.sh" source "$scriptdir/includes/cd-list.sh" +if [ "$PLAYONLINUX" ]; then + source "$PLAYONLINUX/lib/sources" > /dev/null 2>&1 +fi parseargs "$@" diff --git a/includes/autoinstall-includes.sh b/includes/autoinstall-includes.sh index 9462c80..fe503a0 100644 --- a/includes/autoinstall-includes.sh +++ b/includes/autoinstall-includes.sh @@ -22,8 +22,61 @@ # a simplified version of query() from sorcery # $1 = question # $2 = default boolean answer [yYnN] +# $3 = title +# $4 = long explanation function query { + # usage: query question default [title] [longExplanation] + + if [ "$PLAYONLINUX" ]; then + RESPONSE=query_playOnLinux "$1" "$2" "$3" "$4" + else + RESPONSE=query_text "$1" "$2" "$3" "$4" + fi + + return "$RESPONSE" +} + +# a simplified version of query(), modified for PoL. +# $1 = question +# $2 = default boolean answer [yYnN] +# $3 = title +# $4 = long explanation +function query_playOnLinux +{ + # usage: query_playOnLinux question default [title] [longExplanation] + + if [ "$4" ]; then + 1="$4 + +$1" + fi + + POL_SetupWindow_question "$1 [$2]" "$3" + return "$APP_ANSWER" +} + +# a simplified version of query() from sorcery +# $1 = question +# $2 = default boolean answer [yYnN] +# $3 = title +# $4 = long explanation +function query_text +{ + # usage: query_text question default [title] [longExplanation] + + if [ "$3" ]; then + echo -e "$3" + echo "========================================" + echo + fi + + if [ "$4" ]; then + echo -e "$4" + echo + fi + + while true; do RESPONSE="" echo -e -n "$1 [$2] " @@ -54,10 +107,9 @@ function recommendcfg STARTCD=1 fi - echo - echo "To play the game with GemRB, you will need to add the following" - echo "lines to your GemRB.cfg file:" - echo + displayText="To play the game with GemRB, you will need to add the following\n" + displayText=${displayText}"lines to your GemRB.cfg file:\n" + LINE="GamePath=$TARGETDIR"; echo $LINE if [ $FULLINSTALL -eq 1 ]; then for CDNUMBER in $(seq $STARTCD $(($NUMOFCDS+$STARTCD-1))); do @@ -66,17 +118,23 @@ function recommendcfg else LINE="CD${CDNUMBER}=${TARGETDIR}" fi - echo $LINE + displayText=${displayText}${LINE}"\n" done else for CDNUMBER in $(seq $STARTCD $(($NUMOFCDS+$STARTCD-1))); do - LINE="CD$CDNUMBER=$CDMOUNT/cd$CDNUMBER" - echo $LINE + LINE="CD${CDNUMBER}=${CDMOUNT}/cd${CDNUMBER}" + displayText=${displayText}${LINE}"\n" done fi # if startcd exists we can't tell if GameOnCD should be recommended if [ $STARTCD -eq 1 ] ; then - [ $FULLINSTALL -eq 1 ] && echo "GameOnCD=0" || echo "GameOnCD=1" + [ $FULLINSTALL -eq 1 ] && displayText=${displayText}"GameOnCD=0\n" || displayText=${displayText}"GameOnCD=1\n" fi + + if [ "$PLAYONLINUX" ]; then + POL_SetupWindow_message "$displayText" "Setup Complete!" + else + echo -e "$displayText" + fi } diff --git a/includes/generic-includes.sh b/includes/generic-includes.sh index e90199c..32f8bc0 100644 --- a/includes/generic-includes.sh +++ b/includes/generic-includes.sh @@ -180,6 +180,7 @@ function move_and_remove { # usage: move_and_remove source destination # copies the files in the source directory to the destination. + # then removes the source entirely. if [ "$1" != "$2" ] then mkdir -p "$2" || die -- cgit v1.2.3 From 1d5ba1b928aaef6ee43955dd3d53f1b0df1329a2 Mon Sep 17 00:00:00 2001 From: Nick Daly Date: Tue, 2 Feb 2010 21:03:07 -0600 Subject: Installations are now saved in a simple registry. Also, quoted a few variables in auto-installer for fun. --- auto-installer.sh | 2 +- includes/autoinstall-includes.sh | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/auto-installer.sh b/auto-installer.sh index 2653863..d16f9f8 100755 --- a/auto-installer.sh +++ b/auto-installer.sh @@ -102,4 +102,4 @@ fi echo echo "$FULLGAMENAME installed successfully" -recommendcfg $CDNO $CDSTART +recommendcfg "$CDNO" "$CDSTART" diff --git a/includes/autoinstall-includes.sh b/includes/autoinstall-includes.sh index fe503a0..cff3499 100644 --- a/includes/autoinstall-includes.sh +++ b/includes/autoinstall-includes.sh @@ -107,6 +107,9 @@ function recommendcfg STARTCD=1 fi + gemrbDir="~/.gemrb" + installRegistry="${gemrbDir}/installations.ini" + displayText="To play the game with GemRB, you will need to add the following\n" displayText=${displayText}"lines to your GemRB.cfg file:\n" @@ -137,4 +140,9 @@ function recommendcfg else echo -e "$displayText" fi + + # record the installation in the installation registry. + mkdir "$gemrbDir" + touch "$installRegistry" + echo "$TARGETDIR" >> "$installRegistry" } -- cgit v1.2.3 From 4bceb4ab46d2c9a94193fbe900a6adfc62452fc7 Mon Sep 17 00:00:00 2001 From: Nick Daly Date: Sun, 7 Feb 2010 16:13:09 -0600 Subject: Corrected query function after including POL broke it. --- includes/autoinstall-includes.sh | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/includes/autoinstall-includes.sh b/includes/autoinstall-includes.sh index cff3499..f4be783 100644 --- a/includes/autoinstall-includes.sh +++ b/includes/autoinstall-includes.sh @@ -19,7 +19,6 @@ ### functions ### -# a simplified version of query() from sorcery # $1 = question # $2 = default boolean answer [yYnN] # $3 = title @@ -28,13 +27,48 @@ function query { # usage: query question default [title] [longExplanation] + if [ "$3" ]; then + echo -e "$3" + echo "========================================" + echo + fi + + if [ "$4" ]; then + echo -e "$4" + echo + fi + + + while true; do + RESPONSE="" + echo -e -n "$1 [$2] " + read -n 1 RESPONSE + echo + + RESPONSE=${RESPONSE:=$2} + case $RESPONSE in + n|N) return 1 ;; + y|Y) return 0 ;; + esac + done +} + +# a simplified version of query() from sorcery +# $1 = question +# $2 = default boolean answer [yYnN] +# $3 = title +# $4 = long explanation +function new_query +{ + # usage: query question default [title] [longExplanation] + if [ "$PLAYONLINUX" ]; then RESPONSE=query_playOnLinux "$1" "$2" "$3" "$4" else RESPONSE=query_text "$1" "$2" "$3" "$4" fi - return "$RESPONSE" + return $RESPONSE } # a simplified version of query(), modified for PoL. -- cgit v1.2.3 From c0eac1c5a92cba284913d6606034527ec8873424 Mon Sep 17 00:00:00 2001 From: Nick Daly Date: Sun, 7 Feb 2010 20:49:56 -0600 Subject: Registry commands now properly hide error messages. --- includes/autoinstall-includes.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/includes/autoinstall-includes.sh b/includes/autoinstall-includes.sh index f4be783..88fd796 100644 --- a/includes/autoinstall-includes.sh +++ b/includes/autoinstall-includes.sh @@ -141,7 +141,7 @@ function recommendcfg STARTCD=1 fi - gemrbDir="~/.gemrb" + gemrbDir="${HOME}/.gemrb" installRegistry="${gemrbDir}/installations.ini" displayText="To play the game with GemRB, you will need to add the following\n" @@ -176,7 +176,7 @@ function recommendcfg fi # record the installation in the installation registry. - mkdir "$gemrbDir" - touch "$installRegistry" - echo "$TARGETDIR" >> "$installRegistry" + mkdir "$gemrbDir" 2>/dev/null + touch "$installRegistry" 2>/dev/null + echo "$TARGETDIR" 2>/dev/null >> "$installRegistry" } -- cgit v1.2.3 From b74cac29e45f5e19049053b4394bb671718a7f08 Mon Sep 17 00:00:00 2001 From: Nick Daly Date: Sun, 7 Feb 2010 22:15:19 -0600 Subject: Added TODO, installing expansions is irrelevant of full base install. --- TODO | 3 +++ auto-installer.sh | 14 ++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 TODO diff --git a/TODO b/TODO new file mode 100644 index 0000000..aa607bb --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +* Prompts for user input after recognizing IWD1 CD. +* Doesn't install IWD-HOW. +* Installing BG1-3CD results in recursive copying of the save file directory into itself. Weird. \ No newline at end of file diff --git a/auto-installer.sh b/auto-installer.sh index d16f9f8..b97b764 100755 --- a/auto-installer.sh +++ b/auto-installer.sh @@ -64,14 +64,12 @@ if [ -n "$EXTRASCRIPT" ]; then fi fi -if [ "$FULLINSTALL" -eq 0 ]; then - if [ -n "$EXPANSIONSCRIPT" ]; then - if query "Do you want to install the files needed by the $EXPANSIONNAME expansion?" y; then - EXPANSIONINSTALL=1 - "${scriptdir}/${EXPANSIONSCRIPT}" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly - else - EXPANSIONINSTALL=0 - fi +if [ -n "$EXPANSIONSCRIPT" ]; then + if query "Do you want to install the files needed by the $EXPANSIONNAME expansion?" y; then + EXPANSIONINSTALL=1 + "${scriptdir}/${EXPANSIONSCRIPT}" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly + else + EXPANSIONINSTALL=0 fi fi -- cgit v1.2.3 From bd2a182caf12caec92f188ff848676e808819f64 Mon Sep 17 00:00:00 2001 From: Nick Daly Date: Sun, 7 Feb 2010 23:45:30 -0600 Subject: Added TOB and HOW patches. --- TODO | 5 ++++- bg2/install-tob-patch-uk.sh | 43 ++++++++++++++++++++++++++++++++++++++++++ bg2/install-tob-patch-us.sh | 43 ++++++++++++++++++++++++++++++++++++++++++ includes/cd-list.sh | 4 ++-- iwd/install-patch-how-us.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 bg2/install-tob-patch-uk.sh create mode 100644 bg2/install-tob-patch-us.sh create mode 100644 iwd/install-patch-how-us.sh diff --git a/TODO b/TODO index aa607bb..c8bc437 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,6 @@ * Prompts for user input after recognizing IWD1 CD. * Doesn't install IWD-HOW. -* Installing BG1-3CD results in recursive copying of the save file directory into itself. Weird. \ No newline at end of file +* Installing BG1-3CD results in recursive copying of the save file directory into itself. Weird. +* A number of official patches aren't installed? +* We should also install the unofficial fix/expansion patches (unifinished business, etc). +* We don't handle internationalized patches. diff --git a/bg2/install-tob-patch-uk.sh b/bg2/install-tob-patch-uk.sh new file mode 100644 index 0000000..f54e62a --- /dev/null +++ b/bg2/install-tob-patch-uk.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Copyright 2010 Tasos Latsas, 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. +# +# Baldur's Gate 2 Throne of Bhaal Patch +# +# info : http://www.bioware.com/games/throne_bhaal/support/patches/ +# size : 8.0 MB +# date : before 12/27/2001 (earliest archive.org version) + +patch_url="http://downloads.bioware.com/baldursgate2/BGII-ThroneofBhaal_Patch_26498_EUROPEAN.exe" +patch_name="$(basename $patch_url)" + +scriptdir="$(dirname $0)"/.. +source "$scriptdir/includes/generic-includes.sh" +source "$scriptdir/includes/patch-includes.sh" + +parseargs "$@" + +checkforbin cabextract wget + +setuptmp + +getpatch $patch_url + +cabextract -L -s "${TMPDIR}/${patch_name}" -d "$TMPDIR" || diesoftly +unshield x -Ld "${TMPDIR}/data1.cab" -d "${TMPDIR}/data1" +cp "${TMPDIR}/data1/override/"*.exe "${TARGETDIR}" || diesoftly +cp -R "${TMPDIR}/data1/override/"* "${TARGETDIR}/override" || diesoftly + +teardown "$TARGETDIR" diff --git a/bg2/install-tob-patch-us.sh b/bg2/install-tob-patch-us.sh new file mode 100644 index 0000000..ae58962 --- /dev/null +++ b/bg2/install-tob-patch-us.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Copyright 2010 Tasos Latsas, 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. +# +# Baldur's Gate 2 Throne of Bhaal Patch +# +# info : http://www.bioware.com/games/throne_bhaal/support/patches/ +# size : 8.0 MB +# date : before 12/27/2001 (earliest archive.org version) + +patch_url="http://downloads.bioware.com/baldursgate2/BGII-ThroneofBhaal_Patch_26498_ENGLISH.exe" +patch_name="$(basename $patch_url)" + +scriptdir="$(dirname $0)"/.. +source "$scriptdir/includes/generic-includes.sh" +source "$scriptdir/includes/patch-includes.sh" + +parseargs "$@" + +checkforbin cabextract wget + +setuptmp + +getpatch $patch_url + +cabextract -L -s "${TMPDIR}/${patch_name}" -d "$TMPDIR" || diesoftly +unshield x -Ld "${TMPDIR}/data1.cab" -d "${TMPDIR}/data1" +cp "${TMPDIR}/data1/override/"*.exe "${TARGETDIR}" || diesoftly +cp -R "${TMPDIR}/data1/override/"* "${TARGETDIR}/override" || diesoftly + +teardown "$TARGETDIR" diff --git a/includes/cd-list.sh b/includes/cd-list.sh index 8acf905..b090cd7 100644 --- a/includes/cd-list.sh +++ b/includes/cd-list.sh @@ -64,8 +64,8 @@ function get_game FULLGAMENAME="Baldurs Gate 2 - Throne of Bhaal: 1CD US version" SHORTGAMENAME="baldursgate2soa" MINSCRIPT="bg2/install-tob-1cd-us-minimal.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" + PATCHES="bg2/install-tob-patch-us.sh" + # "bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh" WINDOWSFILES="autorun.ini bgconfig.exe bgdxtest.exe bggltest.exe bgmain.exe charview.exe glsetup.exe update.url earthlink gamespy" CDNO=1 CDSTART=5 diff --git a/iwd/install-patch-how-us.sh b/iwd/install-patch-how-us.sh new file mode 100644 index 0000000..b900f3a --- /dev/null +++ b/iwd/install-patch-how-us.sh @@ -0,0 +1,46 @@ +#!/bin/bash +# Copyright 2009 Tasos Latsas, 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. +# +# Icewind Dale - Heart of Winter patch v1.42 - Trials of the Loremaster +# +# info : http://www.planetbaldursgate.com/iwd/media/files/patches/iwdreadme106.txt +# size : 69.4 MB +# date : ???? + +patch_url="http://www.sorcerers.net/Games2/IWD/how142eng.rar" +patch_name="$(basename $patch_url)" + +scriptdir="$(dirname $0)"/.. +source "$scriptdir/includes/generic-includes.sh" +source "$scriptdir/includes/patch-includes.sh" + +parseargs "$@" + +checkforbin cabextract wget + +setuptmp + +getpatch $patch_url + +cabextract -L -s "${TMPDIR}/${patch_name}" -d "$TMPDIR" || diesoftly +unshield x -L "${TMPDIR}/disk1/data1.cab" -d "$TMPDIR" +LONGTMP="${TMPDIR}/minimum_compressed" +cp -R "${LONGTMP}/data/"* "${TARGETDIR}/data" || diesoftly +cp -R "${LONGTMP}/override/"* "${TARGETDIR}/override" || diesoftly +cp -R "${LONGTMP}_(us_english)/"* "${TARGETDIR}" || diesoftly +cp -R "${TMPDIR}/minimum_uncompressed_(us_english)/"* "${TARGETDIR}" || diesoftly + +teardown "$TARGETDIR" -- cgit v1.2.3