136 lines
4 KiB
Bash
136 lines
4 KiB
Bash
# Copyright 1999-2012 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Id$
|
|
|
|
EAPI=5
|
|
inherit eutils unpacker cdrom games
|
|
|
|
DESCRIPTION="Unreal Tournament 2003 - Sequel to the 1999 Game of the Year multi-player first-person shooter"
|
|
HOMEPAGE="http://www.unrealtournament2003.com/"
|
|
SRC_URI="http://download.factoryunreal.com/mirror/UT2003CrashFix.zip"
|
|
|
|
LICENSE="ut2003"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 x86"
|
|
IUSE=""
|
|
RESTRICT="strip"
|
|
|
|
RDEPEND=""
|
|
DEPEND="app-arch/unzip
|
|
games-util/uz2unpack"
|
|
|
|
S=${WORKDIR}
|
|
|
|
dir=${GAMES_PREFIX_OPT}/ut2003
|
|
Ddir=${D}/${dir}
|
|
|
|
pkg_setup() {
|
|
games_pkg_setup
|
|
ewarn "The installed game takes about 2.7GB of space!"
|
|
}
|
|
|
|
src_unpack() {
|
|
cdrom_get_cds System/Packages.md5 StaticMeshes/AWHardware.usx.uz2 \
|
|
Extras/MayaPLE/Maya4PersonalLearningEditionEpic.exe
|
|
unzip "${DISTDIR}"/UT2003CrashFix.zip || die
|
|
}
|
|
|
|
src_install() {
|
|
insinto "${dir}"
|
|
# Disk 1
|
|
einfo "Copying files from Disk 1..."
|
|
doins -r "${CDROM_ROOT}"/{Animations,ForceFeedback,KarmaData,Maps,Sounds,Textures,Web}
|
|
insinto "${dir}"/System
|
|
doins -r "${CDROM_ROOT}"/System/{editorres,*.{bmp,dat,det,est,frt,ini,int,itt,md5,u,upl,url}}
|
|
insinto "${dir}"/Benchmark/Stuff
|
|
doins -r "${CDROM_ROOT}"/Benchmark/Stuff/*
|
|
cdrom_load_next_cd
|
|
|
|
# Disk 2
|
|
insinto "${dir}"
|
|
einfo "Copying files from Disk 2..."
|
|
doins -r "${CDROM_ROOT}"/{Music,Sounds,StaticMeshes,Textures}
|
|
cdrom_load_next_cd
|
|
|
|
# Disk 3
|
|
einfo "Copying files from Disk 3..."
|
|
doins -r "${CDROM_ROOT}"/Sounds
|
|
|
|
# TODO: move this to src_unpack, where it belongs
|
|
unpack_makeself "${CDROM_ROOT}"/linux_installer.sh || die
|
|
tar xf "${S}"/ut2003lnxbins.tar || die
|
|
|
|
# create empty files in Benchmark
|
|
for j in {CSVs,Logs,Results} ; do
|
|
mkdir -p "${Ddir}"/Benchmark/${j} || die
|
|
touch "${Ddir}"/Benchmark/${j}/DO_NOT_DELETE.ME || die
|
|
done
|
|
|
|
# Cleaning up our installation
|
|
rm "${Ddir}"/System/{Build,Def{ault,User},Manifest,UT2003,User}.ini || die
|
|
rm -f "${Ddir}"/System/{Core,Engine,Setup,UnrealGame,Window,XGame,XInterface,XWeapons}.{det,est,frt,int,itt,u} || die
|
|
rm -rf "${Ddir}"/Web/ServerAdmin || die
|
|
rm -f "${Ddir}"/System/{Editor,Fire,IpDrv,UnrealEd,Vehicles,XEffects,XPickups,XWebAdmin}.u || die
|
|
rm -f "${Ddir}"/System/{UWeb,XAdmin}.{int,u} || die
|
|
rm -f "${Ddir}"/System/GamePlay.{det,itt,u} || die
|
|
rm -f "${Ddir}"/System/XMaps.{det,est} "${Ddir}"/System/Xweapons.itt || die
|
|
rm -f "${Ddir}"/System/Manifest.int "${Ddir}"/System/Packages.md5 || die
|
|
|
|
# install extra help files
|
|
insinto "${dir}"/Help
|
|
doins "${S}"/Help/Unreal.bmp
|
|
|
|
# install Default and DefUser ini files
|
|
insinto "${dir}"/System
|
|
doins "${S}"/System/Def{ault,User}.ini
|
|
|
|
# install eula
|
|
insinto "${dir}"
|
|
doins "${S}"/eula/License.int
|
|
|
|
# copying extra/updater
|
|
doins -r "${S}"/{extras,updater}
|
|
rm -f "${Ddir}"/updater/update || die
|
|
|
|
# copy libraries
|
|
exeinto "${dir}"/System
|
|
doexe "${S}"/System/libSDL-1.2.so.0 || die
|
|
|
|
# uncompressing files
|
|
einfo "Uncompressing files... this may take a while..."
|
|
for j in {Animations,Maps,Sounds,StaticMeshes,Textures} ; do
|
|
games_ut_unpack "${Ddir}"/${j} || die "uncompressing files"
|
|
done
|
|
|
|
# installing documentation/icon
|
|
dodoc "${S}"/README.linux || die "dodoc README.linux"
|
|
newicon "${S}"/Unreal.xpm ut2003.xpm || die "copying icon"
|
|
doins "${S}"/README.linux "${S}"/Unreal.xpm || die "copying readme/icon"
|
|
# copy ut2003/ucc
|
|
exeinto "${dir}"
|
|
doexe "${S}"/bin/ut2003 "${S}"/ucc || die "copying ut2003/ucc"
|
|
|
|
# Here we apply DrSiN's crash patch
|
|
cp "${S}"/CrashFix/System/crashfix.u "${Ddir}"/System
|
|
|
|
ed "${Ddir}"/System/Default.ini >/dev/null 2>&1 <<EOT
|
|
$
|
|
?Engine.GameInfo?
|
|
a
|
|
AccessControlClass=crashfix.iaccesscontrolini
|
|
.
|
|
w
|
|
q
|
|
EOT
|
|
|
|
# Here we apply fix for bug #54726
|
|
sed -i -e "s:UplinkToGamespy=True:UplinkToGamespy=False:" \
|
|
"${Ddir}"/System/Default.ini || die
|
|
|
|
# now, since these files are coming off a cd, the times/sizes/md5sums wont
|
|
# be different ... that means portage will try to unmerge some files (!)
|
|
# we run touch on ${D} so as to make sure portage doesnt do any such thing
|
|
find "${Ddir}" -exec touch '{}' + || die
|
|
|
|
prepgamesdirs
|
|
}
|