# Maintainer: Slash # Contributor: Andrew Simmons pkgname=quake2 pkgver=r0.16.2 pkgrel=6 pkgdesc="Quake 2 engine. You need the retail .pak files to play." url="http://www.icculus.org/quake2/" arch=('i686' 'x86_64') license=('GPL') depends=('bash' 'libjpeg' 'sdl' 'libxxf86vm' 'libxxf86dga') install="quake2.install" source=("http://www.icculus.org/quake2/files/quake2-${pkgver}.tar.gz" 'http://www.gamers.org/pub/idgames/idstuff/quake2/source/xatrixsrc320.shar.Z' 'http://www.gamers.org/pub/idgames/idstuff/quake2/source/roguesrc320.shar.Z' 'http://www.gamers.org/pub/idgames/idstuff/quake2/q2-3.20-x86-full-ctf.exe' 'http://www.icculus.org/quake2/files/maxpak.pak' 'http://www.icculus.org/quake2/files/pak10.pak' 'http://www.icculus.org/quake2/files/pak11.pak' 'http://www.icculus.org/quake2/files/pak12.pak' 'http://www.icculus.org/quake2/files/pak13.pak' 'http://www.icculus.org/quake2/files/pak14.pak' 'http://www.icculus.org/quake2/files/pak16.pak' 'http://www.icculus.org/quake2/files/pak17.pak' 'http://www.icculus.org/quake2/files/pak19.pak' 'quake2.sh' 'q2ded.sh' 'xatrix.sh' 'rogue.sh' 'ctf.sh' 'snd_alsa.c' 'gnusource.patch' 'map_command_fix.patch' 'updates_for_gcc.patch') sha256sums=('98cea3cbd70bd1f195e5190d0ae047c636e00e21dbc6cc5bdee4acd52876d3e9' '94bf596cd85d38ea294b99ccb0ebb5e4b9776cca335001b3803e2d8407395589' 'ceefb2fd748961cb0bc3244220f3eb09d8f7b8ca2eb32cdf9b284727a2fdc919' 'f82197c8c8089202a4b3a85d8833b0c2e827a709d205c760369407c212488baa' '653569fe880f1ed5f7529483ac961b22078482e6ff0e83f4d9d1bc503c866770' '196dc096c1f4fd620c19a09593e5b770ddbeed7d864ca3a95383f7bf9538fbc3' 'dcddd989b568cb28aa6c2a877d81df50a71fd9a649ce6dd44f454efe13e26a73' '170af42c090940c89f1bf16e8518733bc39dac070e0d42e4eacad727b37de256' '085b22e5a9f23299e6f0519e402711725cdac51fc399ce577d0d701df0a72681' '78d3b02d20f856b3a0680035b0d67a80a16bede372eef3330b58c755387ff1ff' 'eb21fbc6d0bcd69fb1d3768bcb7f0bbff03e28c18c67f239497d15749913ded3' 'e9585c18ec1f53b95dad833f76ac2df54586d3171e0f3a93ba7c2acce8d915be' 'ee7d5aaee977a8dd198c61a2bcca446b2ab421ee6eaa3a18159671dd742a9540' 'df049ce47922b5d13784f24f7e0457ec48ee1ff19254c3d6c473da684474e490' '238f2efc57f1dc04f604932afda4da5332c3798b689bb9edff951b8e405e8fc5' 'ca832709e8b9dd92ff95959a884127be1804d85381f494b14713c860ae6db471' '8655b4216ea95d2408dcc28de53e53df587aa6959a95c62cc6d7f3eb63492202' 'ea50ae5cca9d633fe2ad30c59beb2ad350130bdd2a78f773639794f2c12d1ed1' 'fd434189a6242ad288e5827c8285e0dca3f26fe447be50204d4b6817cb1ae624' '9ac34f2bebbb6d4a19c590e00db8e5b0034b3ffe2a245a595e28ab43d65d7617' '7ce69543faf226e871dbe78c058a3499f5c283860ae2d9e39e397178123264ec' '637c94188ee5fb147fae56fd368b7b184f3a111adc1099ec0da0a95046c93d6a') PKGEXT='.pkg.tar' # Computer Architecture Variable used by Quake2 [ "${CARCH}" = "i686" ] && _dirarch=i386 [ "${CARCH}" = "x86_64" ] && _dirarch=x86_64 prepare() { cd "${srcdir}" # Create Temporary Directories install -d "${pkgname}-${pkgver}/src/xatrix" "${pkgname}-${pkgver}/src/rogue" # Extract and patch The Reckoning (xatrix) and Ground Zero (rouge) Expansions for _addon in xatrix rogue; do _shar="${_addon}src320.shar" cp "${srcdir}/${_shar}.Z" "${srcdir}/${pkgname}-${pkgver}/src/${_addon}" cd "${srcdir}/${pkgname}-${pkgver}/src/${_addon}" # Extract msg "Unpacking ${_shar}.Z" uncompress "${_shar}.Z" # Remove Prompts /bin/sed -i -e 's:^read ans:ans=yes :' "${_shar}" /bin/sed -i -e 's:^more </#include /" -i g_local.h fi # Patches (Both Expansions) /bin/sed -e "s/extern\tint\tjacket_armor_index/static\tint\tjacket_armor_index/" -i g_local.h /bin/sed -e "s/extern\tint\tcombat_armor_index/static\tint\tcombat_armor_index/" -i g_local.h /bin/sed -e "s/extern\tint\tbody_armor_index/static\tint\tbody_armor_index/" -i g_local.h done msg "The Reckoning and Ground Zero Expansion patching complete" cd "${srcdir}/${pkgname}-${pkgver}/" # Patch from SVN cp "${srcdir}/snd_alsa.c" ./src/linux/snd_alsa.c # x86_64 patch from Gentoo patch -p1 < "${srcdir}/gnusource.patch" # libjpeg Fix /bin/sed -i -e 's:jpeg_mem_src:_&:' \ "${srcdir}/${pkgname}-${pkgver}/src/ref_candygl/gl_image.c" # Map command fix by h3xx /usr/bin/patch -p1 < "${srcdir}/map_command_fix.patch" # Updates to compile using newer gcc releases /usr/bin/patch -p1 < "${srcdir}/updates_for_gcc.patch" msg "Quake 2 patching complete" } build() { cd "${srcdir}/${pkgname}-${pkgver}/" msg "Compiling Quake 2" # Compile Quake 2 make -s BUILD_XATRIX=YES \ BUILD_ROGUE=YES \ BUILD_DEDICATED=YES \ BUILD_CTF=YES \ BUILD_QMAX=YES \ build_release } package() { cd "${srcdir}/${pkgname}-${pkgver}/release${_dirarch}" # Create Destination Directories install -d "${pkgdir}/opt/quake2/"{baseq2,ctf,xatrix,rogue} # Install Binary install -m 755 quake2 "${pkgdir}/opt/quake2/quake2" # Install Binary (SDL) install -m 755 sdlquake2 "${pkgdir}/opt/quake2/sdlquake2" # Install Base Game Library install -m 755 "game${_dirarch}.so" "${pkgdir}/opt/quake2/baseq2/" # Install CTF Library install -m 755 "ctf/game${_dirarch}.so" "${pkgdir}/opt/quake2/ctf/" # Install Xatrix Library install -m 755 "xatrix/game${_dirarch}.so" "${pkgdir}/opt/quake2/xatrix/" # Install Rogue Library install -m 755 "rogue/game${_dirarch}.so" "${pkgdir}/opt/quake2/rogue/" # Install Additional Libraries cp ref_*.so "${pkgdir}/opt/quake2/" cd "${srcdir}" # Extract CTF Patch Data mkdir "${srcdir}/q2" cp "${srcdir}/q2-3.20-x86-full-ctf.exe" "${srcdir}/q2" cd "${srcdir}/q2" unzip -L q2-3.20-x86-full-ctf.exe # Install CTF Patch Data cp baseq2/pak1.pak baseq2/pak2.pak "${pkgdir}/opt/quake2/baseq2/" cp -r baseq2/players "${pkgdir}/opt/quake2/baseq2/" cp ctf/* "${pkgdir}/opt/quake2/ctf/" # Install Q2Max Pak File install "${srcdir}/maxpak.pak" "${pkgdir}/opt/quake2/baseq2/" # Install Additional pak Files for i in {10,11,12,13,14,16,17,19}; do install -m 644 "${srcdir}/pak${i}.pak" \ "${pkgdir}/opt/quake2/baseq2/pak${i}.pak" done; # Install Game Launchers install -D -m 755 "${srcdir}/quake2.sh" "${pkgdir}/usr/bin/quake2" install -D -m 755 "${srcdir}/q2ded.sh" "${pkgdir}/usr/bin/q2ded" install -D -m 755 "${srcdir}/xatrix.sh" "${pkgdir}/usr/bin/quake2-the-reckoning" install -D -m 755 "${srcdir}/rogue.sh" "${pkgdir}/usr/bin/quake2-ground-zero" install -D -m 755 "${srcdir}/ctf.sh" "${pkgdir}/usr/bin/quake2-ctf" }