| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| CDROM_OPTIONAL="yes" |
| inherit eutils cdrom check-reqs games |
| |
| DESCRIPTION="Arx Fatalis data files" |
| HOMEPAGE="http://www.arkane-studios.com/uk/arx.php" |
| SRC_URI="cdinstall? ( http://download.zenimax.com/arxfatalis/patches/1.21/ArxFatalis_1.21_MULTILANG.exe ) |
| gog? ( setup_arx_fatalis_2.0.0.7.exe )" |
| |
| LICENSE="cdinstall? ( ArxFatalis-EULA-JoWooD ) gog? ( GOG-EULA )" |
| SLOT="0" |
| KEYWORDS="~amd64 ~x86" |
| IUSE="gog" |
| REQUIRED_USE="^^ ( cdinstall gog )" |
| RESTRICT="binchecks mirror gog? ( fetch )" |
| |
| RDEPEND="games-rpg/arx-libertatis" |
| DEPEND="app-arch/innoextract |
| cdinstall? ( app-arch/cabextract )" |
| |
| CHECKREQS_DISK_BUILD="621M" |
| CHECKREQS_DISK_USR="617M" |
| |
| S=${WORKDIR} |
| |
| detect_language() { |
| speech_checksum=$(find '.' -iname "speech.pak" \ |
| -exec md5sum -b '{}' \; | sed "s/ .*//g") |
| if [[ -z $speech_checksum ]] ; then |
| speech_checksum=$(find '.' -iname "speech_default.pak" \ |
| -exec md5sum -b '{}' \; | sed "s/ .*//g") |
| fi |
| |
| # check if the checksum is of a known localisation and set data_lang to |
| # the language string to be used with the 1.21 patch installer |
| case "$speech_checksum" in |
| '4c3fdb1f702700255924afde49081b6e') data_lang='german' ;; |
| # Bundled version of AF included with NVIDIA card |
| 'ab8a93161688d793a7c78fbefd7d133e') data_lang='german' ;; |
| '4e8f962d8204bcfd79ce6f3226d6d6de') data_lang='english' ;; |
| '2f88c67ae1537919e69386d27583125b') data_lang='spanish' ;; |
| '4edf9f8c799190590b4cd52cfa5f91b1') data_lang='french' ;; |
| '81f05dea47c52d43f01c9b44dd8fe962') data_lang='italian' ;; |
| '677163bc319cd1e9aa1b53b5fb3e9402') data_lang='russian' ;; |
| '') eerror "speech*.pak not found" |
| die "speech*.pak not found" ;; |
| *) eerror "unsupported data language - speech*.pak checksum:" \ |
| "$speech_checksum" \ |
| "please file a gentoo bug" |
| die "unsupported data language, file a gentoo bug" ;; |
| esac |
| } |
| |
| pkg_nofetch() { |
| einfo "Please download ${A} from your GOG.com account after buying Arx Fatalis" |
| einfo "and put it into ${DISTDIR}." |
| } |
| |
| src_unpack() { |
| local data_lang |
| |
| if use cdinstall ; then |
| cdrom_get_cds bin/Arx.ttf |
| find "${CDROM_ROOT}" -iname "setup*.cab" -exec cabextract '{}' \; |
| detect_language |
| else |
| # gog only offers english |
| data_lang="english" |
| fi |
| |
| einfo "Data language: $data_lang" |
| innoextract --lowercase --language=${data_lang} \ |
| "${DISTDIR}"/${A} || die |
| } |
| |
| src_install() { |
| insinto "${GAMES_DATADIR}"/arx |
| doins -r app/{graph,misc} |
| find . -iname "*.pak" -exec doins '{}' \; |
| |
| dodoc app/{manual,map}.pdf |
| |
| # convert to lowercase |
| cd "${D}" |
| find . -type f -exec sh -c 'echo "${1}" |
| lower="`echo "${1}" | tr [:upper:] [:lower:]`" |
| [ "${1}" = "${lower}" ] || mv "${1}" "${lower}"' - {} \; |
| |
| prepgamesdirs |
| } |