# 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
}