169 lines
4.8 KiB
Bash
169 lines
4.8 KiB
Bash
# Copyright 1999-2017 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=5
|
|
|
|
inherit eutils unpacker cdrom games
|
|
|
|
DESCRIPTION="Futuristic FPS (Game Of The Year edition)"
|
|
HOMEPAGE="http://www.oldunreal.com/"
|
|
SRC_URI="http://www.ut-files.com/Patches/ut-install-${PV}-GOTY.run
|
|
http://www.ut-files.com/Patches/ipdrv-${PV}-linux-08-20-02.zip -> IpDrv-${PV}-Linux-08-20-02.zip"
|
|
|
|
LICENSE="all-rights-reserved"
|
|
SLOT="0"
|
|
KEYWORDS="x86"
|
|
IUSE="3dfx S3TC nls opengl"
|
|
RESTRICT="mirror bindist"
|
|
|
|
DEPEND="!games-fps/unreal-tournament
|
|
app-arch/unzip
|
|
"
|
|
RDEPEND="
|
|
opengl? ( virtual/opengl[abi_x86_32(-)] )
|
|
x11-libs/libXext[abi_x86_32(-)]
|
|
x11-libs/libX11[abi_x86_32(-)]
|
|
x11-libs/libXau[abi_x86_32(-)]
|
|
x11-libs/libXdmcp[abi_x86_32(-)]
|
|
"
|
|
|
|
S=${WORKDIR}
|
|
|
|
src_unpack() {
|
|
cdrom_get_cds System/ Help/chaosut
|
|
unpack_makeself ut-install-${PV}-GOTY.run
|
|
unpack IpDrv-${PV}-Linux-08-20-02.zip
|
|
}
|
|
|
|
src_install() {
|
|
local dir=${GAMES_PREFIX_OPT}/${PN/-goty/}
|
|
local Ddir=${D}/${dir}
|
|
dodir "${dir}"
|
|
|
|
###########
|
|
### PRE ###
|
|
# System
|
|
if use 3dfx ; then
|
|
tar -zxf Glide.ini.tar.gz -C "${Ddir}" || die "install Glide ini"
|
|
else
|
|
tar -zxf OpenGL.ini.tar.gz -C "${Ddir}" || die "install OpenGL ini"
|
|
fi
|
|
tar -zxf data.tar.gz -C "${Ddir}" || die "extract System data"
|
|
|
|
# the most important things, ucc & ut :)
|
|
exeinto "${dir}"
|
|
doexe bin/x86/{ucc,ut} || die "install ucc/ut"
|
|
sed -i -e "s:\`FindPath \$0\`:${dir}:" "${ED}/${dir}"/ucc || die
|
|
|
|
# export some symlinks so ppl can run
|
|
dodir "${GAMES_BINDIR}"
|
|
dosym "${dir}"/ucc "${GAMES_BINDIR}"/ucc
|
|
dosym "${dir}"/ut "${GAMES_BINDIR}"/ut
|
|
### PRE ###
|
|
###########
|
|
|
|
###########
|
|
### CD1 ###
|
|
# Help, Logs, Music, Sounds, Textures, Web
|
|
cp -rf "${CDROM_ROOT}"/{Help,Logs,Music,Textures,Web} "${Ddir}"/ || die "copy Help, Logs, Music, Textures, Web CD1"
|
|
dodir "${dir}"/Sounds
|
|
if use nls ; then
|
|
cp -rf "${CDROM_ROOT}"/Sounds/* "${Ddir}"/Sounds/ || die "copy Sounds CD1"
|
|
else
|
|
cp -rf "${CDROM_ROOT}"/Sounds/*.uax "${Ddir}"/Sounds/ || die "copy Sounds CD1"
|
|
fi
|
|
|
|
# System
|
|
dodir "${dir}"/System
|
|
if use nls ; then
|
|
cp "${CDROM_ROOT}"/System/*.{est,frt,itt,int,u} "${Ddir}"/System/ || die "copy System data CD1"
|
|
else
|
|
cp "${CDROM_ROOT}"/System/*.{int,u} "${Ddir}"/System/ || die "copy System data CD1"
|
|
fi
|
|
|
|
# now we uncompress the maps
|
|
einfo "Uncompressing CD1 Maps ... this may take some time"
|
|
dodir "${dir}"/Maps
|
|
cd "${Ddir}"
|
|
export HOME=${T}
|
|
export UT_DATA_PATH="${Ddir}"/System
|
|
for f in `find "${CDROM_ROOT}"/Maps/ -name '*.uz' -printf '%f '` ; do
|
|
./ucc decompress "${CDROM_ROOT}"/Maps/${f} -nohomedir || die "uncompressing map CD1 ${f}"
|
|
mv System/${f:0:${#f}-3} Maps/ || die "copy map CD1 ${f}"
|
|
done
|
|
### CD1 ###
|
|
###########
|
|
|
|
### Have user switch cds if need be ###
|
|
cdrom_load_next_cd
|
|
|
|
###########
|
|
### CD2 ###
|
|
# Help, Sounds
|
|
cp -rf "${CDROM_ROOT}"/{Help,Sounds} "${Ddir}"/ || die "copy Help, Sounds CD2"
|
|
|
|
# S3TC Textures
|
|
if use S3TC ; then
|
|
cp -rf "${CDROM_ROOT}"/Textures "${Ddir}"/ || die "copy S3TC Textures CD2"
|
|
else
|
|
cp -rf "${CDROM_ROOT}"/Textures/{JezzTex,Jezztex2,SnowDog,chaostex{,2}}.utx "${Ddir}"/Textures/ || die "copy Textures CD2"
|
|
fi
|
|
|
|
# System
|
|
cp -rf "${CDROM_ROOT}"/System/*.{u,int} "${Ddir}"/System/ || die "copy System CD2"
|
|
|
|
# now we uncompress the maps
|
|
einfo "Uncompressing CD2 Maps ... this may take some time"
|
|
dodir "${dir}"/Maps
|
|
cd "${Ddir}"
|
|
export HOME=${T}
|
|
export UT_DATA_PATH="${Ddir}"/System
|
|
for f in `find "${CDROM_ROOT}"/maps/ -name '*.uz' -printf '%f '` ; do
|
|
./ucc decompress "${CDROM_ROOT}"/maps/${f} -nohomedir || die "uncompressing map CD2 ${f}"
|
|
mv System/${f:0:${#f}-3} Maps/ || die "copy map CD2 ${f}"
|
|
done
|
|
### CD2 ###
|
|
###########
|
|
|
|
###########
|
|
### END ###
|
|
cd "${S}"
|
|
|
|
# Textures
|
|
tar -zxf Credits.tar.gz -C "${Ddir}" || die "extract credits texture"
|
|
# NetGamesUSA.com
|
|
tar -zxf NetGamesUSA.com.tar.gz -C "${Ddir}"/ || die "extract NetGamesUSA.com"
|
|
|
|
# Patch UT-GOTY
|
|
cd setup.data
|
|
cp patch.dat{,.orig} || die "cp failed"
|
|
sed -e 's:sh uz-maps.sh:echo:' patch.dat.orig > patch.dat || die "sed failed"
|
|
./bin/Linux/x86/loki_patch patch.dat "${Ddir}" || die "failed to patch"
|
|
cd "${S}"
|
|
|
|
# now we install the IpDrv.so patch
|
|
insinto "${dir}"/System
|
|
doins IpDrv.so || die "install IpDrv.so patch"
|
|
|
|
# install a few random files
|
|
insinto "${dir}"
|
|
doins README icon.{bmp,xpm} || die "installing random files"
|
|
|
|
# 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 '{}' \;
|
|
### END ###
|
|
###########
|
|
|
|
prepgamesdirs
|
|
}
|
|
|
|
pkg_postinst() {
|
|
games_pkg_postinst
|
|
elog "You might want to install the bonus packs too."
|
|
elog "Many servers on the internet use them, and the"
|
|
elog "majority of players do too."
|
|
elog
|
|
elog "Just run: emerge unreal-tournament-bonuspacks"
|
|
}
|