| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI="5" |
| |
| inherit cdrom eutils versionator games unpacker |
| |
| # MY_PV will be e.g. "beta1" |
| MY_PN="ssamtse" |
| MY_PV=$(get_version_component_range 2-2) |
| |
| DESCRIPTION="Serious Sam: The Second Encounter" |
| HOMEPAGE="http://www.croteam.com/ |
| http://www.seriouszone.com/" |
| SRC_URI="http://icculus.org/betas/ssam/${MY_PN}-${MY_PV}.sh.bin" |
| |
| LICENSE="LOKI-EULA" |
| SLOT="0" |
| KEYWORDS="-* ~amd64 ~x86" |
| RESTRICT="strip" |
| IUSE="alsa" |
| |
| DEPEND=">=app-arch/unshield-0.6" |
| RDEPEND=" |
| >=media-libs/libogg-1.3.1[abi_x86_32(-)] |
| >=media-libs/libsdl-1.2.15-r5[X,joystick,opengl,video,abi_x86_32(-)] |
| virtual/opengl[abi_x86_32(-)] |
| alsa? ( |
| >=media-libs/libsdl-1.2.15-r5[alsa,sound,abi_x86_32(-)] |
| >=media-libs/libvorbis-1.3.3-r1[abi_x86_32(-)] |
| ) |
| " |
| |
| S=${WORKDIR} |
| |
| QA_TEXTRELS=" |
| opt/ssamtse/Bin/libEntitiesMP.so |
| opt/ssamtse/Bin/libGameMP.so |
| opt/ssamtse/Bin/libamp11lib.so |
| opt/ssamtse/Bin/libShaders.so |
| " |
| |
| QA_FLAGS_IGNORED=" |
| opt/ssamtse/Bin/libEntitiesMP.so |
| opt/ssamtse/Bin/libGameMP.so |
| opt/ssamtse/Bin/libamp11lib.so |
| opt/ssamtse/Bin/libShaders.so |
| opt/ssamtse/Bin/ssam_lnxded |
| opt/ssamtse/Bin/ssam_lnxded.dynamic |
| opt/ssamtse/Bin/ssam_lnx.dynamic |
| opt/ssamtse/Bin/ssam_lnx |
| " |
| |
| pkg_setup() { |
| games_pkg_setup |
| |
| cdrom_get_cds "Install/SE1_00.gro" |
| } |
| |
| src_unpack() { |
| mkdir Levels Mods |
| |
| unpack_makeself "${MY_PN}-${MY_PV}.sh.bin" |
| unpack ./setupstuff.tar.gz |
| unpack ./bins.tar.bz2 |
| } |
| |
| src_prepare() { |
| # Switch to dynamic executable - runs at sane speeds on modern hardware |
| sed -i -e 's;exec "./ssam_lnx";exec "./ssam_lnx.dynamic";' bin/${MY_PN} \ |
| || die "dynamic binary update failed" |
| } |
| |
| src_install() { |
| local dir=${GAMES_PREFIX_OPT}/${MY_PN} |
| |
| # Remove bundled libs |
| rm -f Bin/{libogg.so,libvorbis.so,libvorbisfile.so} |
| |
| einfo "Copying from ${CDROM_ROOT}" |
| insinto "${dir}" |
| doins -r "${CDROM_ROOT}"/Install/* || die "doins CD failed" |
| |
| # Correct paths of copied resource files |
| mv "${D}/${dir}"/Locales/eng/Controls/* "${D}/${dir}"/Controls/ |
| mv "${D}/${dir}"/Locales/eng/Data/Var/* "${D}/${dir}"/Data/Var/ |
| mv "${D}/${dir}"/Locales/eng/Demos/* "${D}/${dir}"/Demos/ |
| mv "${D}/${dir}"/Locales/eng/Help/* "${D}/${dir}"/Help/ |
| mv "${D}/${dir}"/Locales/eng/Mods/Warped/Scripts/Addons/WarpedTweak.des "${D}/${dir}"/Mods/Warped/Scripts/Addons/ |
| mv "${D}/${dir}"/Locales/eng/Mods/Warped/Readme.html "${D}/${dir}"/Mods/Warped/ |
| mv "${D}/${dir}"/Locales/eng/Mods/*.des "${D}/${dir}"/Mods/ |
| mv "${D}/${dir}"/Locales/eng/Scripts/Addons/* "${D}/${dir}"/Scripts/Addons/ |
| mv "${D}/${dir}"/Locales/eng/Scripts/CustomOptions/* "${D}/${dir}"/Scripts/CustomOptions/ |
| mv "${D}/${dir}"/Locales/eng/Scripts/NetSettings/* "${D}/${dir}"/Scripts/NetSettings/ |
| rm -rf "${D}/${dir}"/Locales |
| |
| # The data CABs contain optional multiplayer maps in the "Levels" directory |
| einfo "Extracting additional levels" |
| unshield x "${D}/${dir}"/data1.cab >/dev/null || die "unshield data1.cab failed" |
| rm "${D}/${dir}"/data?.cab |
| |
| # Correct paths of extracted levels |
| mv Levels/Levels/LevelsMP/* Levels/LevelsMP/ |
| rm -rf Levels/Levels |
| mv Levels/LevelsMP/Technology/* Levels/ |
| rmdir Levels/LevelsMP/Technology |
| mv Levels/Mods/Warped/ Mods/ |
| rmdir Levels/Mods/ |
| |
| doins -r Bin Data Levels Mods *.txt README* \ |
| || die "doins main failed" |
| |
| # Install bins last to ensure they are marked executable |
| exeinto "${dir}" |
| doexe bin/${MY_PN} |
| exeinto "${dir}"/Bin |
| doexe Bin/{ssam_lnx*,*.so} |
| |
| # Remove useless Windows files |
| rm -rf "${D}/${dir}/Bin"/{*.exe,*.dll,*.DLL,GameSpy} |
| rm -f "${D}/${dir}"/{*.exe,*.ex_,*.bmp,*.inx,*.hdr,*.bin} |
| |
| dodoc README.linux |
| |
| newicon ssam.xpm ${MY_PN}.xpm |
| games_make_wrapper ${MY_PN} ./${MY_PN} "${dir}" "${dir}" |
| make_desktop_entry ${MY_PN} "Serious Sam - Second Encounter" ${MY_PN} |
| |
| # Ensure that file datestamps from the CD are sane |
| find "${D}/${dir}" -exec touch '{}' \; |
| |
| prepgamesdirs |
| } |
| |
| pkg_postinst() { |
| games_pkg_postinst |
| |
| elog "The warning regarding 'XiG-SUNDRY-NONSTANDARD missing' is harmless." |
| elog "Important information about the Linux port is at:" |
| elog " http://files.seriouszone.com/download.php?fileid=616" |
| echo |
| } |