# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils games multilib LANGUAGES="linguas_fr linguas_it linguas_es linguas_de" MY_PV=${PV//.} UPDATE_BASEURL="http://downloads.bioware.com/baldursgate2/" SOA_ENGLISH="Baldur%27sGateII-ShadowsofAmnPatchENGLISH.exe" SOA_EUROPE="Baldur%27sGateII-ShadowsofAmnPatchEUROPE.exe" TOB_ENGLISH="BGII-ThroneofBhaal_Patch_26498_ENGLISH.exe" TOB_EUROPE="BGII-ThroneofBhaal_Patch_26498_EUROPEAN.exe" LINGUAS_SRC_URI="linguas_fr? ( tob? ( ${UPDATE_BASEURL}/${TOB_EUROPE} ) ${UPDATE_BASEURL}/${SOA_EUROPE} ) linguas_it? ( tob? ( ${UPDATE_BASEURL}/${TOB_EUROPE} ) ${UPDATE_BASEURL}/${SOA_EUROPE} ) linguas_es? ( tob? ( ${UPDATE_BASEURL}/${TOB_EUROPE} ) ${UPDATE_BASEURL}/${SOA_EUROPE} ) linguas_es? ( tob? ( ${UPDATE_BASEURL}/${TOB_EUROPE} ) ${UPDATE_BASEURL}/${SOA_EUROPE} ) linguas_de? ( tob? ( ${UPDATE_BASEURL}/${TOB_EUROPE} ) ${UPDATE_BASEURL}/${SOA_EUROPE} ) tob? ( ${UPDATE_BASEURL}/${TOB_ENGLISH} ) ${UPDATE_BASEURL}/${SOA_ENGLISH}" DESCRIPTION="Baldurs Gate SOA TOB" HOMEPAGE="http://www.bioware.com/games/shadows_amn/ http://www.bioware.com/games/throne_bhaal/" SRC_URI="http://www.tamacom.com/pathconvert/pathconvert.tar.gz http://www.iconarchive.com/icons/3xhumed/mega-games-pack-25/Baldur-s-Gate-2-Shadows-of-Amn-2-128x128.png tob? ( http://www.iconarchive.com/icons/3xhumed/mega-games-pack-25/Baldur-s-Gate-2-Throne-of-Bhaal-2-128x128.png ) ${LINGUAS_SRC_URI}" LICENSE="BG1-EULA" SLOT="1" KEYWORDS="~amd64 x86" IUSE="tob videos ${LANGUAGES}" RESTRICT="strip mirror" RDEPEND=">=games-engines/gemrb-0.5.0" DEPEND="${RDEPEND} app-arch/unshield app-arch/p7zip" GAMES_LICENSE_CHECK=yes launcher=${S}/BaldursGate${SLOT} dir=${GAMES_PREFIX_OPT}/BioWare/BaldursGate${SLOT} Ddir=${D}/${dir} LNDIR="${S}"/pathconvert/lndir/lndir BG2_SET= # This is my fun section where I try to determine which CD/DVD set we have. # Expect this to be very messy and ugly, and hopefully it all works as we want # it to on all of the various media. get_bg2_set() { # First we check to see if we have CD_ROOT defined already. If we do, # this will make our lives so much easier. if [[ -n "${CD_ROOT}" ]] then if [[ -f "${CD_ROOT}"/CD4/Data/CD4CreAn.bif ]] && [[ -f "${CD_ROOT}"/data1.hdr ]] then BG2_SET="dvd" einfo "Baldurs Gate II: Shadows of Amn DVD found..." elif [[ -f "${CD_ROOT}"/data1.hdr ]] then BG2_SET="original_cd" einfo "Baldurs Gate II: Shadows of Amn CD set found..." fi # Now we check to see if we have CD_ROOT_1 set, which means we have a CD # set, or even a DVD set. elif [[ -n "${CD_ROOT_1}" ]] then if [[ -f "${CD_ROOT_1}"/CD4/Data/CD4CreAn.bif ]] && [[ -f "${CD_ROOT_1}"/data1.hdr ]] then BG2_SET="dvd" einfo "Baldurs Gate II: Shadows of Amn DVD found..." elif [[ -f "${CD_ROOT_1}"/data1.hdr ]] then BG2_SET="original_cd" einfo "Baldurs Gate II: Shadows of Amn CD set found..." fi # OK. Neither were set, so now we're going to start our detection and try # to figure out what we have to work from. else local mline= for mline in $(mount | egrep -e '(iso|cdrom|udf)' | awk '{print $3}') do if [[ -f "${mline}"/CD4/Data/CD4CreAn.bif ]] && [[ -f "${mline}"/data1.hdr ]] then BG2_SET="dvd" einfo "Baldurs Gate II: Shadows of Amn DVD found..." elif [[ -f "${mline}"/data1.hdr ]] then BG2_SET="original_cd" einfo "Baldurs Gate II: Shadows of Amn CD set found..." fi done fi } get_cd_set() { while `[[ -z "${BG2_SET}" ]]` do echo "Please insert your first Baldurs Gate II: Shadows of Amn CD/DVD into your drive and" echo "press any key to continue" read -n 1 get_bg2_set done # Here is where we start our CD/DVD detection for changing disks. case "${BG2_SET}" in dvd) export CDROM_NAME_1="DVD1" einfo "Both Shadows of Undrentide and Hordes of the Underdark will" einfo "be installed from your DVD along with Neverwinter Nights." if use tob then einfo "You will also need the SoU CD for this installation." export CDROM_NAME_2="ToB" cdrom_get_cds CD4/Data/CD4CreAn.bif CD5/movies/25Movies.bif else cdrom_get_cds CD4/Data/CD4CreAn.bif fi ;; original_cd) export CDROM_NAME_1="CD1" CDROM_NAME_2="CD2" CDROM_NAME_3="CD3" CDROM_NAME_4="CD4" touch .metadata/orig || die "touch orig" if use tob then einfo "You will also need the SoU CD for this installation." export CDROM_NAME_5="ToB" cdrom_get_cds data1.hdr CD2/Data/MovHD0.bif \ CD3/Data/CD3CreAn.bif CD4/Data/CD4CreAn.bif CD5/movies/25Movies.bif else cdrom_get_cds data1.hdr CD2/Data/MovHD0.bif \ CD3/Data/CD3CreAn.bif CD4/Data/CD4CreAn.bif fi ;; esac } src_unpack() { mkdir -p "${S}" cd "${S}" # We create this .metadata directory so we can keep track of what we have # installed without needing to keep all of these multiple USE flags in all # of the ebuilds. mkdir -p .metadata || die "Creating .metadata" # Since we dont *always* want to do this, we check for USE=cdinstall # Here, we determine which CD/DVD set that we have. This will seem a # bit odd, since well be doing the detection a few times. get_bg2_set # Now that we know what were looking for, lets look for the media. get_cd_set mkdir -p "${S}"/patches cd "${S}"/patches einfo "Unpacking Patch ${SOA_ENGLISH} files..." 7z x -osoa-en -y ${DISTDIR}/${SOA_ENGLISH} || die "unpacking" unshield -L -d soa-en x "${S}"/patches/soa-en/data?.* || die "unshield" if use tob then einfo "Unpacking Patch ${TOB_ENGLISH} files..." 7z x -otob-en -y ${DISTDIR}/${TOB_ENGLISH} || die "unpacking" unshield -L -d tob-en x "${S}"/patches/tob-en/data?.* || die "unshield" fi if use linguas_fr then einfo "Unpacking Patch ${SOA_EUROPE} files..." 7z x -osoa-eu -y ${DISTDIR}/${SOA_EUROPE} || die "unpacking" unshield -L -d soa-eu x "${S}"/patches/soa-eu/data?.* || die "unshield" if use tob then einfo "Unpacking Patch ${TOB_EUROPE} files..." 7z x -otob-eu -y ${DISTDIR}/${TOB_EUROPE} || die "unpacking" unshield -L -d tob-eu x "${S}"/patches/tob-eu/data?.* || die "unshield" fi fi if use linguas_it then einfo "Unpacking Patch ${SOA_EUROPE} files..." 7z x -osoa-eu -y ${DISTDIR}/${SOA_EUROPE} || die "unpacking" unshield -L -d soa-eu x "${S}"/patches/soa-eu/data?.* || die "unshield" if use tob then einfo "Unpacking Patch ${TOB_EUROPE} files..." 7z x -otob-eu -y ${DISTDIR}/${TOB_EUROPE} || die "unpacking" unshield -L -d tob-eu x "${S}"/patches/tob-eu/data?.* || die "unshield" fi fi if use linguas_es then einfo "Unpacking Patch ${SOA_EUROPE} files..." 7z x -osoa-eu -y ${DISTDIR}/${SOA_EUROPE} || die "unpacking" unshield -L -d soa-eu x "${S}"/patches/soa-eu/data?.* || die "unshield" if use tob then einfo "Unpacking Patch ${TOB_EUROPE} files..." 7z x -otob-eu -y ${DISTDIR}/${TOB_EUROPE} || die "unpacking" unshield -L -d tob-eu x "${S}"/patches/tob-eu/data?.* || die "unshield" fi fi if use linguas_de then einfo "Unpacking Patch ${SOA_EUROPE} files..." 7z x -osoa-eu -y ${DISTDIR}/${SOA_EUROPE} || die "unpacking" unshield -L -d soa-eu x "${S}"/patches/soa-eu/data?.* || die "unshield" if use tob then einfo "Unpacking Patch ${TOB_EUROPE} files..." 7z x -otob-eu -y ${DISTDIR}/${TOB_EUROPE} || die "unpacking" unshield -L -d tob-eu x "${S}"/patches/tob-eu/data?.* || die "unshield" fi fi case ${BG2_SET} in dvd) mkdir -p "${S}"/shared-soa cd "${S}" # We dont give the user the option to install SoU/HotU. While some # people might complain about this, most newer NWN stuff requires # them both anyway, so it makes no sense not to install them. einfo "Unpacking files..." unshield -L -d shared-soa x "${CDROM_ROOT}"/data?.* || die "unpacking" # We have to adjust the files after unpacking the cab file. mkdir -p "${S}"/cd1 einfo "Copying CD1 files..." [[ -d "${CDROM_ROOT}"/English ]] && cp -rv "${CDROM_ROOT}"/English cd1 if use linguas_fr then [[ -d "${CDROM_ROOT}"/French ]] && cp -rv "${CDROM_ROOT}"/French cd1 fi if use linguas_it then [[ -d "${CDROM_ROOT}"/Italian ]] && cp -rv "${CDROM_ROOT}"/Italian cd1 fi if use linguas_es then [[ -d "${CDROM_ROOT}"/Spanish ]] && cp -rv "${CDROM_ROOT}"/Spanish cd1 fi if use linguas_de then [[ -d "${CDROM_ROOT}"/German ]] && cp -rv "${CDROM_ROOT}"/German cd1 fi einfo "Copying CD2 files..." mkdir -p "${S}"/cd2 cp -rv "${CDROM_ROOT}"/CD2/* cd2 einfo "Copying CD3 files..." mkdir -p "${S}"/cd3 cp -rv "${CDROM_ROOT}"/CD3/* cd3 einfo "Copying CD4 files..." mkdir -p "${S}"/cd4 cp -rv "${CDROM_ROOT}"/CD4/* cd4 if use tob then mkdir -p "${S}"/shared-tob cdrom_load_next_cd einfo "Unpacking files..." unshield -L -d shared-tob x "${CDROM_ROOT}"/data?.* || die "unpacking" einfo "Copying CD5 (ToB) files..." mkdir -p "${S}"/cd5 cp -rv "${CDROM_ROOT}"/CD5/* cd5 fi ;; original_cd) mkdir -p "${S}"/shared-soa cd "${S}" # We dont give the user the option to install SoU/HotU. While some # people might complain about this, most newer NWN stuff requires # them both anyway, so it makes no sense not to install them. einfo "Unpacking files..." unshield -L -d shared-soa x "${CDROM_ROOT}"/data?.* || die "unpacking" # We have to adjust the files after unpacking the cab file. mkdir -p "${S}"/cd1 einfo "Copying CD1 files..." [[ -d "${CDROM_ROOT}"/English ]] && cp -rv "${CDROM_ROOT}"/English cd1 if use linguas_fr then [[ -d "${CDROM_ROOT}"/French ]] && cp -rv "${CDROM_ROOT}"/French cd1 fi if use linguas_it then [[ -d "${CDROM_ROOT}"/Italian ]] && cp -rv "${CDROM_ROOT}"/Italian cd1 fi if use linguas_es then [[ -d "${CDROM_ROOT}"/Spanish ]] && cp -rv "${CDROM_ROOT}"/Spanish cd1 fi if use linguas_de then [[ -d "${CDROM_ROOT}"/German ]] && cp -rv "${CDROM_ROOT}"/German cd1 fi cdrom_load_next_cd einfo "Copying CD2 files..." mkdir -p "${S}"/cd2 cp -rv "${CDROM_ROOT}"/CD2/* cd2 cdrom_load_next_cd einfo "Copying CD3 files..." mkdir -p "${S}"/cd3 cp -rv "${CDROM_ROOT}"/CD3/* cd3 cdrom_load_next_cd einfo "Copying CD4 files..." mkdir -p "${S}"/cd4 cp -rv "${CDROM_ROOT}"/CD4/* cd4 if use tob then mkdir -p "${S}"/shared-tob cdrom_load_next_cd einfo "Unpacking files..." unshield -L -d shared-tob x "${CDROM_ROOT}"/data?.* || die "unpacking" einfo "Copying CD5 (ToB) files..." mkdir -p "${S}"/cd5 cp -rv "${CDROM_ROOT}"/CD5/* cd5 fi ;; esac # We unpack this for all media sets. unpack pathconvert.tar.gz } src_compile() { cd "${S}"/pathconvert make -C lib cp lib/libpathconvert.a . cd "${S}"/pathconvert/lndir xmkmf make lndir } src_install() { mkdir -p "${Ddir}/Shared" mv -fv "${S}"/shared-soa/hd0_cab/* "${Ddir}/Shared" mkdir -p "${Ddir}"/Shared/cache mv -fv "${S}"/shared-soa/hd0_cache/* "${Ddir}"/Shared/cache mkdir -p "${Ddir}"/Shared/data mv -fv "${S}"/shared-soa/hd0_data/* "${Ddir}"/Shared/data mkdir -p "${Ddir}"/Shared/music mv -fv "${S}"/shared-soa/hd0_music/* "${Ddir}"/Shared/music mkdir -p "${Ddir}"/Shared/override mv -fv "${S}"/shared-soa/hd0_override/* "${Ddir}"/Shared/override mv -fv "${S}"/patches/soa-en/main/override/* "${Ddir}"/Shared/override mkdir -p "${Ddir}"/cd1/English/data mv -fv "${S}"/cd1/English/[Dd]ata/* "${Ddir}"/cd1/English/data mkdir -p "${Ddir}"/cd1/English/movies mv -fv "${S}"/cd1/English/[Mm]ovies/* "${Ddir}"/cd1/English/movies mkdir -p "${Ddir}/Shared-English" [[ -d "${S}"/shared-soa/hd0_cab_english ]] && mv -fv "${S}"/shared-soa/hd0_cab_english/* "${Ddir}"/Shared-English [[ -d "${S}"/shared-soa/_support_english_os_independent_files ]] && mv -fv "${S}"/shared-soa/_support_english_os_independent_files/* "${Ddir}"/Shared-English [[ -d "${S}"/patches/soa-en/english_files ]] && mv -fv "${S}"/patches/soa-en/english_files/* "${Ddir}"/Shared-English mkdir -p "${Ddir}/Shared-English/sounds" [[ -d "${S}"/shared-soa/hd0_sound_english ]] && mv -fv "${S}"/shared-soa/hd0_sound_english/* "${Ddir}"/Shared-English/sounds mkdir -p "${Ddir}/Shared-English/characters" [[ -d "${S}"/shared-soa/hd0_characters_english ]] && mv -fv "${S}"/shared-soa/hd0_characters_english/* "${Ddir}"/Shared-English/characters mkdir -p "${Ddir}/Shared-English/data" [[ -d "${S}"/shared-soa/hd0_data_english ]] && mv -fv "${S}"/shared-soa/hd0_data_english/* "${Ddir}"/Shared-English/data if use tob then mv -fv "${S}"/shared-tob/hd0/* "${Ddir}/Shared" mv -fv "${S}"/shared-tob/minimum_25_data/* "${Ddir}"/Shared/data mv -fv "${S}"/shared-tob/hd025music/* "${Ddir}"/Shared/music mv -fv "${S}"/shared-tob/hd0_override/* "${Ddir}"/Shared/override mv -fv "${S}"/patches/tob-en/main/override/* "${Ddir}"/Shared/override [[ -d "${S}"/patches/tob-eu/language_independent/override ]] && mv -fv "${S}"/patches/tob-eu/language_independent/override/* "${Ddir}"/Shared/override [[ -d "${S}"/shared-tob/_support_language_independent_os_independent_files ]] && mv -fv "${S}"/shared-tob/_support_language_independent_os_independent_files/* "${Ddir}"/Shared [[ -d "${S}"/shared-tob/hd0_english ]] && mv -fv "${S}"/shared-tob/hd0_english/* "${Ddir}"/Shared-English [[ -d "${S}"/shared-tob/_support_english_os_independent_files ]] && mv -fv "${S}"/shared-tob/_support_english_os_independent_files/* "${Ddir}"/Shared-English [[ -d "${S}"/patches/tob-en/main ]] && mv -fv "${S}"/patches/tob-en/main/*.* "${Ddir}"/Shared-English [[ -d "${S}"/shared-tob/minimum_25_sound_english ]] && mv -fv "${S}"/shared-tob/minimum_25_sound_english/* "${Ddir}"/Shared-English/sounds [[ -d "${S}"/shared-tob/minimum_25_characters_english ]] && mv -fv "${S}"/shared-tob/minimum_25_characters_english/* "${Ddir}"/Shared-English/characters [[ -d "${S}"/shared-tob/minimum_25_data_english ]] && mv -fv "${S}"/shared-tob/minimum_25_data_english/* "${Ddir}"/Shared-English/data fi if use linguas_fr then mv -fv "${S}"/patches/soa-eu/main/override/* "${Ddir}"/Shared/override mkdir -p "${Ddir}"/cd1/French/data mv -fv "${S}"/cd1/French/[Dd]ata/* "${Ddir}"/cd1/French/data mkdir -p "${Ddir}"/cd1/French/movies mv -fv "${S}"/cd1/French/[Mm]ovies/* "${Ddir}"/cd1/French/movies mkdir -p "${Ddir}/Shared-French" [[ -d "${S}"/shared-soa/hd0_cab_french ]] && mv -fv "${S}"/shared-soa/hd0_cab_french/* "${Ddir}"/Shared-French [[ -d "${S}"/shared-soa/_support_french_\(standard\)_os_independent_files ]] && mv -fv "${S}"/shared-soa/_support_french_\(standard\)_os_independent_files/* "${Ddir}"/Shared-French [[ -d "${S}"/patches/soa-eu/french ]] && mv -fv "${S}"/patches/soa-eu/french/* "${Ddir}"/Shared-French mkdir -p "${Ddir}/Shared-French/sounds" [[ -d "${S}"/shared-soa/hd0_sound_french ]] && mv -fv "${S}"/shared-soa/hd0_sound_french/* "${Ddir}"/Shared-French/sounds mkdir -p "${Ddir}/Shared-French/characters" [[ -d "${S}"/shared-soa/hd0_characters_french ]] && mv -fv "${S}"/shared-soa/hd0_characters_french/* "${Ddir}"/Shared-French/characters mkdir -p "${Ddir}/Shared-French/data" [[ -d "${S}"/shared-soa/hd0_data_french ]] && mv -fv "${S}"/shared-soa/hd0_data_french/* "${Ddir}"/Shared-French/data if use tob then [[ -d "${S}"/shared-tob/hd0_french ]] && mv -fv "${S}"/shared-tob/hd0_french/* "${Ddir}"/Shared-French [[ -d "${S}"/shared-tob/_support_french_\(standard\)_os_independent_files ]] && mv -fv "${S}"/shared-tob/_support_french_\(standard\)_os_independent_files/* "${Ddir}"/Shared-French [[ -d "${S}"/patches/tob-eu/french ]] && mv -fv "${S}"/patches/tob-eu/french/*.* "${Ddir}"/Shared-French [[ -d "${S}"/shared-tob/minimum_25_sound_french ]] && mv -fv "${S}"/shared-tob/minimum_25_sound_french/* "${Ddir}"/Shared-French/sounds [[ -d "${S}"/shared-tob/minimum_25_characters_french ]] && mv -fv "${S}"/shared-tob/minimum_25_characters_french/* "${Ddir}"/Shared-French/characters [[ -d "${S}"/shared-tob/minimum_25_data_french ]] && mv -fv "${S}"/shared-tob/minimum_25_data_french/* "${Ddir}"/Shared-French/data fi fi if use linguas_it then mv -fv "${S}"/patches/soa-eu/main/override/* "${Ddir}"/Shared/override mkdir -p "${Ddir}"/cd1/Italian/data mv -fv "${S}"/cd1/Italian/[Dd]ata/* "${Ddir}"/cd1/Italian/data mkdir -p "${Ddir}"/cd1/Italian/movies mv -fv "${S}"/cd1/Italian/[Mm]ovies/* "${Ddir}"/cd1/Italian/movies mkdir -p "${Ddir}/Shared-Italian" [[ -d "${S}"/shared-soa/hd0_cab_italian ]] && mv -fv "${S}"/shared-soa/hd0_cab_italian/* "${Ddir}"/Shared-Italian [[ -d "${S}"/shared-soa/_support_italian_os_independent_files ]] && mv -fv "${S}"/shared-soa/_support_italian_os_independent_files/* "${Ddir}"/Shared-Italian [[ -d "${S}"/patches/soa-eu/italian ]] && mv -fv "${S}"/patches/soa-eu/italian/* "${Ddir}"/Shared-Italian mkdir -p "${Ddir}/Shared-Italian/sounds" [[ -d "${S}"/shared-soa/hd0_sound_italian ]] && mv -fv "${S}"/shared-soa/hd0_sound_italian/* "${Ddir}"/Shared-Italian/sounds mkdir -p "${Ddir}/Shared-Italian/characters" [[ -d "${S}"/shared-soa/hd0_characters_italian ]] && mv -fv "${S}"/shared-soa/hd0_characters_italian/* "${Ddir}"/Shared-Italian/characters mkdir -p "${Ddir}/Shared-Italian/data" [[ -d "${S}"/shared-soa/hd0_data_italian ]] && mv -fv "${S}"/shared-soa/hd0_data_italian/* "${Ddir}"/Shared-Italian/data if use tob then [[ -d "${S}"/shared-tob/hd0_italian ]] && mv -fv "${S}"/shared-tob/hd0_italian/* "${Ddir}"/Shared-Italian [[ -d "${S}"/shared-tob/_support_italian_os_independent_files ]] && mv -fv "${S}"/shared-tob/_support_italian_os_independent_files/* "${Ddir}"/Shared-Italian [[ -d "${S}"/patches/tob-eu/italian ]] && mv -fv "${S}"/patches/tob-eu/italian/*.* "${Ddir}"/Shared-Italian [[ -d "${S}"/shared-tob/minimum_25_sound_italian ]] && mv -fv "${S}"/shared-tob/minimum_25_sound_italian/* "${Ddir}"/Shared-Italian/sounds [[ -d "${S}"/shared-tob/minimum_25_characters_italian ]] && mv -fv "${S}"/shared-tob/minimum_25_characters_italian/* "${Ddir}"/Shared-Italian/characters [[ -d "${S}"/shared-tob/minimum_25_data_italian ]] && mv -fv "${S}"/shared-tob/minimum_25_data_italian/* "${Ddir}"/Shared-Italian/data fi fi if use linguas_es then mv -fv "${S}"/patches/soa-eu/main/override/* "${Ddir}"/Shared/override mkdir -p "${Ddir}"/cd1/Spanish/data mv -fv "${S}"/cd1/Spanish/[Dd]ata/* "${Ddir}"/cd1/Spanish/data mkdir -p "${Ddir}"/cd1/Spanish/movies mv -fv "${S}"/cd1/Spanish/[Mm]ovies/* "${Ddir}"/cd1/Spanish/movies mkdir -p "${Ddir}/Shared-Spanish" [[ -d "${S}"/shared-soa/hd0_cab_spanish ]] && mv -fv "${S}"/shared-soa/hd0_cab_spanish/* "${Ddir}"/Shared-Spanish [[ -d "${S}"/shared-soa/_support_spanish_os_independent_files ]] && mv -fv "${S}"/shared-soa/_support_spanish_os_independent_files/* "${Ddir}"/Shared-Spanish [[ -d "${S}"/patches/soa-eu/spanish ]] && mv -fv "${S}"/patches/soa-eu/spanish/* "${Ddir}"/Shared-Spanish mkdir -p "${Ddir}/Shared-Spanish/sounds" [[ -d "${S}"/shared-soa/hd0_sound_spanish ]] && mv -fv "${S}"/shared-soa/hd0_sound_spanish/* "${Ddir}"/Shared-Spanish/sounds mkdir -p "${Ddir}/Shared-Spanish/characters" [[ -d "${S}"/shared-soa/hd0_characters_spanish ]] && mv -fv "${S}"/shared-soa/hd0_characters_spanish/* "${Ddir}"/Shared-Spanish/characters [[ -d "${S}"/patches/soa-eu/spanish/characters ]] && mv -fv "${S}"/patches/soa-eu/spanish/characters/* "${Ddir}"/Shared-Spanish/characters mkdir -p "${Ddir}/Shared-Spanish/data" [[ -d "${S}"/shared-soa/hd0_data_spanish ]] && mv -fv "${S}"/shared-soa/hd0_data_spanish/* "${Ddir}"/Shared-Spanish/data if use tob then [[ -d "${S}"/shared-tob/hd0_spanish ]] && mv -fv "${S}"/shared-tob/hd0_spanish/* "${Ddir}"/Shared-Spanish [[ -d "${S}"/shared-tob/_support_spanish_os_independent_files ]] && mv -fv "${S}"/shared-tob/_support_spanish_os_independent_files/* "${Ddir}"/Shared-Spanish [[ -d "${S}"/patches/tob-eu/spanish ]] && mv -fv "${S}"/patches/tob-eu/spanish/*.* "${Ddir}"/Shared-Spanish [[ -d "${S}"/shared-tob/minimum_25_sound_spanish ]] && mv -fv "${S}"/shared-tob/minimum_25_sound_spanish/* "${Ddir}"/Shared-Spanish/sounds [[ -d "${S}"/shared-tob/minimum_25_characters_spanish ]] && mv -fv "${S}"/shared-tob/minimum_25_characters_spanish/* "${Ddir}"/Shared-Spanish/characters [[ -d "${S}"/shared-tob/minimum_25_data_spanish ]] && mv -fv "${S}"/shared-tob/minimum_25_data_spanish/* "${Ddir}"/Shared-Spanish/data fi fi if use linguas_de then mv -fv "${S}"/patches/soa-eu/main/override/* "${Ddir}"/Shared/override mkdir -p "${Ddir}"/cd1/German/data mv -fv "${S}"/cd1/German/[Dd]ata/* "${Ddir}"/cd1/German/data mkdir -p "${Ddir}"/cd1/German/movies mv -fv "${S}"/cd1/German/[Mm]ovies/* "${Ddir}"/cd1/German/movies mkdir -p "${Ddir}/Shared-German" [[ -d "${S}"/shared-soa/hd0_cab_german ]] && mv -fv "${S}"/shared-soa/hd0_cab_german/* "${Ddir}"/Shared-German [[ -d "${S}"/shared-soa/_support_german_os_independent_files ]] && mv -fv "${S}"/shared-soa/_support_german_os_independent_files/* "${Ddir}"/Shared-German [[ -d "${S}"/patches/soa-eu/german ]] && mv -fv "${S}"/patches/soa-eu/german/* "${Ddir}"/Shared-German mkdir -p "${Ddir}/Shared-German/sounds" [[ -d "${S}"/shared-soa/hd0_sound_german ]] && mv -fv "${S}"/shared-soa/hd0_sound_german/* "${Ddir}"/Shared-German/sounds mkdir -p "${Ddir}/Shared-German/characters" [[ -d "${S}"/shared-soa/hd0_characters_german ]] && mv -fv "${S}"/shared-soa/hd0_characters_german/* "${Ddir}"/Shared-German/characters mkdir -p "${Ddir}/Shared-German/data" [[ -d "${S}"/shared-soa/hd0_data_german ]] && mv -fv "${S}"/shared-soa/hd0_data_german/* "${Ddir}"/Shared-German/data if use tob then [[ -d "${S}"/shared-tob/hd0_german ]] && mv -fv "${S}"/shared-tob/hd0_german/* "${Ddir}"/Shared-German [[ -d "${S}"/shared-tob/_support_german_os_independent_files ]] && mv -fv "${S}"/shared-tob/_support_german_os_independent_files/* "${Ddir}"/Shared-German [[ -d "${S}"/patches/tob-eu/german ]] && mv -fv "${S}"/patches/tob-eu/german/*.* "${Ddir}"/Shared-German [[ -d "${S}"/shared-tob/minimum_25_sound_german ]] && mv -fv "${S}"/shared-tob/minimum_25_sound_german/* "${Ddir}"/Shared-German/sounds [[ -d "${S}"/shared-tob/minimum_25_characters_german ]] && mv -fv "${S}"/shared-tob/minimum_25_characters_german/* "${Ddir}"/Shared-German/characters [[ -d "${S}"/shared-tob/minimum_25_data_german ]] && mv -fv "${S}"/shared-tob/minimum_25_data_german/* "${Ddir}"/Shared-German/data fi fi for d in cd2 cd3 cd4 cd5 do if [[ -d ${d} ]] then mkdir -p "${Ddir}"/${d}/data mv -fv "${S}"/${d}/[Dd]ata/AREA*.* "${Ddir}"/${d}/data mv -fv "${S}"/${d}/[Dd]ata/*.* "${Ddir}"/Shared/data mkdir -p "${Ddir}"/${d}/movies mv -fv "${S}"/${d}/[Mm]ovies/*.* "${Ddir}"/${d}/movies fi done if ! use videos then rm -rf "${S}"/movies/* fi cd "${Ddir}" for d in cd1/English cd1/French cd1/Italian cd1/Spanish cd1/German cd2 cd3 cd4 cd5 Shared Shared-English Shared-French Shared-Italian Shared-Spanish Shared-German do if [[ -d ${d} ]] then ( cd ${d} for f in $(find . -name '*.*') ; do lcf=$(echo ${f} | tr [:upper:] [:lower:]) if [[ ${f} != ${lcf} ]] && [[ -f ${f} ]] then mv ${f} ${lcf} fi done ) fi done find "${Ddir}" -iname "*.exe" -exec rm {} \; 2> /dev/null find "${Ddir}" -iname "*.dll" -exec rm {} \; 2> /dev/null find "${Ddir}" -iname "*.pdf" -exec rm {} \; 2> /dev/null cat > ${launcher} <<-EOF #!/bin/bash # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # # Automatically generated by ${CATEGORY}/${PF} # Exec the acroread script for the language chosen in # LC_ALL/LC_MESSAGES/LANG (first found takes precedence, as in glibc) L=\${LC_ALL} L=\${L:-\${LC_MESSAGES}} L=\${L:-\${LANG}} [[ ! -d ~/.bioware/bg2/save ]] && mkdir -p ~/.bioware/bg2/save if [[ -f ~/.bioware/bg2/GemRB.cfg ]] then exec gemrb -c ~/.bioware/bg2/GemRB.cfg else case \${L} in EOF mkdir -p "${Ddir}"/English ${LNDIR} "${Ddir}"/cd1/English English ${LNDIR} "${Ddir}"/Shared-English English ${LNDIR} "${Ddir}"/Shared English echo "en*) exec cp ${dir}/English/GemRB.cfg ~/.bioware/bg2/GemRB.cfg;;" >> ${launcher} sed -e "s!@DESTDIR@!${dir}!g" \ -e "s!@LANG@!English!g" \ -e "s!@LIBDIR@!$(get_libdir)!g" < ${FILESDIR}/GemRB.cfg > ${Ddir}/English/GemRB.cfg if use linguas_fr then mkdir -p "${Ddir}"/French ${LNDIR} "${Ddir}"/cd1/French French ${LNDIR} "${Ddir}"/Shared-French French ${LNDIR} "${Ddir}"/Shared French echo "fr*) exec cp ${dir}/French/GemRB.cfg ~/.bioware/bg2/GemRB.cfg;;" >> ${launcher} sed -e "s!@DESTDIR@!${dir}!g" \ -e "s!@LANG@!French!g" \ -e "s!@LIBDIR@!$(get_libdir)!g" < ${FILESDIR}/GemRB.cfg > ${Ddir}/French/GemRB.cfg fi if use linguas_it then mkdir -p "${Ddir}"/Italian ${LNDIR} "${Ddir}"/cd1/Italian Italian ${LNDIR} "${Ddir}"/Shared-Italian Italian ${LNDIR} "${Ddir}"/Shared Italian echo "it*) exec cp ${dir}/Italian/GemRB.cfg ~/.bioware/bg2/GemRB.cfg;;" >> ${launcher} sed -e "s!@DESTDIR@!${dir}!g" \ -e "s!@LANG@!Italian!g" \ -e "s!@LIBDIR@!$(get_libdir)!g" < ${FILESDIR}/GemRB.cfg > ${Ddir}/Italian/GemRB.cfg fi if use linguas_es then mkdir -p "${Ddir}"/Spanish ${LNDIR} "${Ddir}"/cd1/Spanish Spanish ${LNDIR} "${Ddir}"/Shared-Spanish Spanish ${LNDIR} "${Ddir}"/Shared Spanish echo "es*) exec cp ${dir}/Spanish/GemRB.cfg ~/.bioware/bg2/GemRB.cfg;;" >> ${launcher} sed -e "s!@DESTDIR@!${dir}!g" \ -e "s!@LANG@!Spanish!g" \ -e "s!@LIBDIR@!$(get_libdir)!g" < ${FILESDIR}/GemRB.cfg > ${Ddir}/Spanish/GemRB.cfg fi if use linguas_de then mkdir -p "${Ddir}"/German ${LNDIR} "${Ddir}"/cd1/German German ${LNDIR} "${Ddir}"/Shared-German German ${LNDIR} "${Ddir}"/Shared German echo "de*) exec cp ${dir}/German/GemRB.cfg ~/.bioware/bg2/GemRB.cfg;;" >> ${launcher} sed -e "s!@DESTDIR@!${dir}!g" \ -e "s!@LANG@!German!g" \ -e "s!@LIBDIR@!$(get_libdir)!g" < ${FILESDIR}/GemRB.cfg > ${Ddir}/German/GemRB.cfg fi cat >> ${launcher} <<-EOF *) exec cp ${dir}/English/GemRB.cfg ~/.bioware/bg2/GemRB.cfg;; esac exec gemrb -c ~/.bioware/bg2/GemRB.cfg fi EOF newicon "${DISTDIR}"/Baldur-s-Gate-2-Shadows-of-Amn-2-128x128.png Baldur-s-Gate-2-Shadows-of-Amn.png make_desktop_entry BaldursGate${SLOT} "Baldur's Gate II - Shadows of Amn ${PV}" Baldur-s-Gate-2-Shadows-of-Amn.png if use tob then newicon "${DISTDIR}"/Baldur-s-Gate-2-Throne-of-Bhaal-2-128x128.png Baldur-s-Gate-2-Throne-of-Bhaal.png make_desktop_entry BaldursGate${SLOT} "Baldur's Gate II - Throne of Bhaal ${PV}" Baldur-s-Gate-2-Throne-of-Bhaal.png fi dobin ${launcher} prepgamesdirs chmod g+rwX ${Ddir} || die "could not chmod" # die }