# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils games DESCRIPTION="Viking hack and slay game" HOMEPAGE="http://www.runegame.com" SRC_URI="rune-all-0.3.tar.bz2" LICENSE="LOKI-EULA" SLOT="0" KEYWORDS="amd64 x86" RESTRICT="strip" IUSE="" RDEPEND="virtual/opengl dev-util/xdelta x86? ( x11-libs/libX11 x11-libs/libXext >=media-libs/libsdl-1.2.9-r1 ) amd64? ( app-emulation/emul-linux-x86-xlibs app-emulation/emul-linux-x86-compat app-emulation/emul-linux-x86-sdl )" DEPEND="" S=${WORKDIR} GAMES_CHECK_LICENSE="yes" dir=${GAMES_PREFIX_OPT}/${PN} Ddir=${D}/${dir} src_unpack() { export CDROM_SET_NAMES=("Linux Rune CD" "Windows Rune CD Version 1.07") einfo "This game will NOT work with any Windows Rune CD prior to version 1.07.\nIf you are one of those unlucky persons, you can try out app-emulation/wine, with wine Rune works great and it is possible to install the 1.08 patch." cdrom_get_cds System/rune-bin:CDVERSION107FILE #FIXME: find working filename dodir "${dir}" if [[ ${CDROM_SET} -eq 0 ]] then # unpack the data files tar xzf "${CDROM_ROOT}"/data.tar.gz || die "Could not unpack data.tar.gz" elif [[ ${CDROM_SET} -eq 1 ]] then # unpack the rune-all-0.3.tar.bz2 unpack ${A} || die "Could not unpack rune-all-0.3.tar.bz2" fi } src_install() { insinto "${dir}" exeinto "${dir}" einfo "Copying files... this may take a while..." case ${CDROM_SET} in 0) for x in Help Maps Meshes Sounds System Textures Web do doins -r $x || die "copying $x" done # copy linux specific files doins -r "${CDROM_ROOT}"/System \ || die "Could not copy Linux specific files" # the most important things: rune and ucc :) doexe "${CDROM_ROOT}"/bin/x86/rune \ || die "Could not install rune executable" fperms 750 ${dir}/System/{ucc{,-bin},rune-bin} \ || die "Could not make executables executable" # installing documentation/icon dodoc "${CDROM_ROOT}"/{README,CREDITS} || die "Could not dodoc README.linux" newicon "${CDROM_ROOT}"/icon.xpm rune.xpm || die "Could not copy pixmap" ;; 1) # copying Maps Sounds and Web for x in Maps Sounds Web do doins -r "${CDROM_ROOT}"/$x || die "copying $x" done # copying the texture files dodir ${dir}/Textures for x in $(find "${CDROM_ROOT}"/Textures/ -type f -printf '%f ') do echo -ne '\271\325\036\214' | cat - ${CDROM_ROOT}/Textures/$x \ |sed -e '1 s/\(....\)..../\1/' > ${Ddir}/Textures/$x \ || die "modifying and copying $x" done doins -r ${S}/System || die "Could not copy Linux specific files" doins -r ${S}/Help || die "Could not copy Help data" for x in $(find ${S}/patch/{System,Maps,Meshes} 2> /dev/null |\ sed -n -e "s:.*/\([^/]\+/[^/]\+\)\.patch$:\1:p") do xdelta patch ${S}/patch/${x}.patch ${CDROM_ROOT}/${x} ${S}/patch/${x} doins ${S}/patch/${x} || die "Could not copy Patch data" done insinto ${dir}/System # copying system files from the Windows CD for x in "${CDROM_ROOT}"/System/*.{int,u,url}; do doins $x || die "copying $x" done # modify the files mv ${Ddir}/System/OpenGlDrv.int ${Ddir}/System/OpenGLDrv.int \ || die "Could not modify System file OpenGlDrv.int" mv ${Ddir}/Textures/bloodFX.utx ${Ddir}/Textures/BloodFX.utx \ || die "Could not modify Texture file bloodFX.utx" mv ${Ddir}/Textures/RUNESTONES.UTX ${Ddir}/Textures/RUNESTONES.utx \ || die "Could not modify Texture file RUNESTONES.UTX" mv ${Ddir}/Textures/tedd.utx ${Ddir}/Textures/Tedd.utx \ || die "Could not modify Texture file tedd.utx" mv ${Ddir}/Textures/UNDERANCIENT.utx ${Ddir}/Textures/UnderAncient.utx \ || die "Could not modify Texture file UNDERANCIENT.utx" rm ${Ddir}/System/{Setup.int,SGLDrv.int,MeTaLDrv.int,Manifest.int,D3DDrv.int,Galaxy.int,SoftDrv.int,WinDrv.int,Window.int} || die "Could not delete not needed System files" # the most important things: rune and ucc :) doexe ${S}/bin/x86/rune || die "Could not install rune executable" fperms 750 ${dir}/System/{ucc,ucc-bin,rune-bin} \ || die "Could not make executables executable" # installing documentation/icon dodoc "${S}"/{README,CREDITS} || die "Could not dodoc README.linux" doicon "${S}"/rune.xpm rune.xpm || die "Could not copy pixmap" ;; esac use amd64 && mv ${Ddir}/System/libSDL-1.2.so.0 \ ${Ddir}/System/libSDL-1.2.so.0.backup games_make_wrapper ${PN} ./rune "${dir}" make_desktop_entry rune "Rune" rune.xpm "Game;ActionGame" find ${Ddir} -exec touch '{}' \; prepgamesdirs }