diff options
author | B. Watson <yalhcru@gmail.com> | 2021-11-08 15:42:25 -0500 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2021-12-04 10:08:54 +0700 |
commit | 80ec56515c4c0246bc07f15f1b76cee1a8f271f9 (patch) | |
tree | 4a808d523abf0d99362c171b2b8c9c7dc531d0cd /games | |
parent | 4ef8aa3c658088889eae38d5c70ab86f0c50c9cf (diff) |
games/eduke32: Updated for version 20211102_9751_8970754aa.
Signed-off-by: B. Watson <yalhcru@gmail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games')
35 files changed, 266 insertions, 208 deletions
diff --git a/games/eduke32/README b/games/eduke32/README index 3ffb125dab298..75f9511c0bd9c 100644 --- a/games/eduke32/README +++ b/games/eduke32/README @@ -1,32 +1,33 @@ -EDuke32 is a fork of the JFDuke3D port of Duke Nukem 3D (aka Duke3D), -merging it with EDuke to provide many new features for mod authors. -Also included is a map editor (mapster32). - -To play the game, you will need the DUKE32.GRP file from either -the Duke Nukem 3D CD-ROM, or from the shareware version of Duke -Nukem 3D. For convenience, the shareware GRP file has been packaged -as eduke32_shareware_data, also available from slackbuilds.org. -See README_game_data.txt - -eduke32 is an SDL application. It can be built with either SDL 1.2 -(included in Slackware), or SDL 2 (from SlackBuilds.org). By default, -SDL 2 is used if it's installed, otherwise SDL 1.2 is used. To force -building with SDL 1.2, export SDL2=no in the environment before -building eduke32. - -If you want to play the HRP (High Resolution Pack), get the -eduke32_hires_pack package from slackbuilds.org. - -To hear the in-game music, either use the Music Pack (see -eduke32_hires_pack), or else install a set of MIDI patches (either -freepats or eawpats) from slackbuilds.org. The game looks for -/etc/timidity/timidity.cfg, but timidity doesn't actually have to be -installed. - -By default, the Build utilities (kextract kgroup transpal wad2art -wad2map) are built by this script and installed in /usr/games. If you -don't want these, you can set BUILD_UTILS=no in the environment before -running the SlackBuild script. - -Note for 64-bit users: Despite the "32" in the name, this software -builds and runs just fine as 64-bit native binaries :) +eduke32 (engine for Duke Nukem 3D, Shadow Warrior, Ion Fury) + +EDuke32 [1] is a fork of the JFDuke3D port of Duke Nukem 3D (aka +Duke3D), merging it with EDuke to provide many new features for mod +authors. + +Included in the package are: + +- eduke32 (Duke Nukem 3D engine; also plays Nam/Napalm and WWII GI) [3] +- voidsw (Shadow Warrior engine) +- fury (Ion Fury engine) +- mapster32 (map editor for Duke Nukem 3D) +- wangulator (map editor for Shadow Warrior) +- the Build engine tools (kextract, kgroup, etc) [2] + +To play the games, you will need the .GRP file from each game. See +README_game_data.txt. + +If you want to play the HRP (High Resolution Pack) in eduke32, install +the eduke32_hires_pack package from slackbuilds.org. There's also a +jfsw_hires_pack that works with voidsw. + +Notes: + +[1] Despite the "32" in the name, this software builds and runs just + fine as 64-bit native binaries :) + +[2] If you're installing both eduke32 and jfsw, don't build jfsw with + TOOLS=yes (or else the packages will conflict). + +[3] eduke32 is no longer capable of playing BloodCM, because BloodCM's + last release was in 2016. The bloodcm build has been removed from + SBo. If you want to play Blood, install nblood. diff --git a/games/eduke32/README_game_data.txt b/games/eduke32/README_game_data.txt index 96f85bd8cbc62..e9ccc43202665 100644 --- a/games/eduke32/README_game_data.txt +++ b/games/eduke32/README_game_data.txt @@ -1,23 +1,47 @@ +Although EDuke32 has been released under the GPL, the game data +(graphics, sounds, levels, etc) is still proprietary. -Although the Duke Nukem 3D code has been released under the GPL, the game -data (graphics, sounds, levels, etc) is still proprietary, (c) 3D Realms. - -To play the game, you must provide the data files. There are a couple of -options: +For Duke Nukem 3D (eduke32), there are a couple of options: - Buy the game, and copy DUKE3D.GRP and DUKE.RTS file from the game CD to - /usr/share/games/eduke32/ or your ~/.eduke32 directory. + /usr/share/games/eduke32/ or your ~/.config/eduke32 directory. Note: DUKE3D.GRP should be named "duke3d.grp" (lowercase), but DUKE.RTS should be uppercase. -- Use the files from the shareware version, which is still available for - download from the 3D Realms site. For convenience, you may install the - eduke32_shareware_data package from slackbuilds.org, which simply creates - a Slackware package from the files in the shareware Duke3D installer. +- Or, install the eduke32_shareware_data package from slackbuilds.org. This + only gives you the first episode of the game. + +For Nam/Napalm (eduke32): + +1. copy NAM.GRP or NAPALM.GRP to /usr/share/games/eduke32 + +2. copy GAME.CON to /usr/share/games/eduke32/NAM.CON (or NAPALM.CON). + Do NOT name it GAME.CON, or Duke Nukem 3D will fail to start! + +For WW2GI (eduke32): + +1. copy WW2GI.GRP ENHANCE.CON, XDEFS.CON, and XUSER.CON to + /usr/share/games/eduke32 + +2. copy GAME.CON to /usr/share/games/eduke32/WW2GI.CON (again, don't + name it GAME.CON). + +For Shadow Warrior (voidsw): + +- Buy the game, and copy SW.GRP to /usr/share/games/eduke32/ + +- Or, install one or more of these SBo packages: + + jfsw_demo_data (shareware; first 4 levels only) + jfsw_registered_data (full game) + jfsw_wanton_destruction (expansion pack) + jfsw_twin_dragon (expansion pack) -For information on playing user-created levels or other Build engine games -(such as Nam), see http://wiki.eduke32.com/ and http://www.eduke32.com/ + (Yes, voidsw will find the game data in /usr/share/games/jfsw) -If you want to play the HRP (High Resolution Pack), get the -eduke32_hires_pack package from slackbuilds.org +For Ion Fury (fury), presumably you copy the .grp file from the game +directory to ~/.config/fury. The engine doesn't look anywhere else for +the data files. I don't own this game, so I can't go into more detail. +If you do own this game, email me with the details and I'll update +this documentation. diff --git a/games/eduke32/compilefix.diff b/games/eduke32/compilefix.diff deleted file mode 100644 index 7b7ae7e49afaa..0000000000000 --- a/games/eduke32/compilefix.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur eduke32_20160704-5811.orig/build/src/util/generateicon.c eduke32_20160704-5811/build/src/util/generateicon.c ---- eduke32_20160704-5811.orig/build/src/util/generateicon.c 2013-10-06 03:50:16.000000000 -0400 -+++ eduke32_20160704-5811/build/src/util/generateicon.c 2016-08-07 23:58:35.091530858 -0400 -@@ -64,7 +64,7 @@ - - memset(&icon, 0, sizeof(icon)); - -- kpzload(argv[1], (intptr_t*)&icon.pixels, (int32_t*)&bpl, (int32_t*)&icon.width, (int32_t*)&icon.height); -+ kpzload(argv[1], (intptr_t*)&icon.pixels, (int32_t*)&icon.width, (int32_t*)&icon.height); - if (!icon.pixels) { - Bfprintf(stderr, "Failure loading %s\n", argv[1]); - return 1; diff --git a/games/eduke32/eduke32.desktop b/games/eduke32/desktop/eduke32.desktop index 2190c3cc97aaf..858b4d2ddef1f 100644 --- a/games/eduke32/eduke32.desktop +++ b/games/eduke32/desktop/eduke32.desktop @@ -1,9 +1,8 @@ [Desktop Entry] Name=EDuke32 GenericName=Duke Nukem 3D Engine -Comment=EDuke32 Duke Nukem 3D Engine Icon=eduke32 -Exec=eduke32 +Exec=/usr/games/eduke32 Terminal=false Type=Application Categories=Game;ActionGame; diff --git a/games/eduke32/desktop/fury.desktop b/games/eduke32/desktop/fury.desktop new file mode 100644 index 0000000000000..ff60cf1f9ac9d --- /dev/null +++ b/games/eduke32/desktop/fury.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Fury +GenericName=Ion Fury Engine +Icon=fury +Exec=/usr/games/fury +Terminal=false +Type=Application +Categories=Game;ActionGame; diff --git a/games/eduke32/mapster32.desktop b/games/eduke32/desktop/mapster32.desktop index 432e44e25f7cc..280f04f486cc9 100644 --- a/games/eduke32/mapster32.desktop +++ b/games/eduke32/desktop/mapster32.desktop @@ -1,9 +1,8 @@ [Desktop Entry] Name=Mapster32 -GenericName=Duke Nukem 3D Editor -Comment=Mapster32 Duke Nukem 3D Editor +GenericName=Duke Nukem 3D Map Editor Icon=eduke32 -Exec=mapster32 +Exec=/usr/games/mapster32 Terminal=false Type=Application Categories=Game;ActionGame; diff --git a/games/eduke32/desktop/voidsw.desktop b/games/eduke32/desktop/voidsw.desktop new file mode 100644 index 0000000000000..558a2db691a67 --- /dev/null +++ b/games/eduke32/desktop/voidsw.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=VoidSW +GenericName=Shadow Warrior +Icon=voidsw +Exec=/usr/games/voidsw +Terminal=false +Type=Application +Categories=Game;ActionGame; diff --git a/games/eduke32/desktop/wangulator.desktop b/games/eduke32/desktop/wangulator.desktop new file mode 100644 index 0000000000000..a99aee7356205 --- /dev/null +++ b/games/eduke32/desktop/wangulator.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Wangulator +GenericName=Shadow Warrior Map Editor +Icon=voidsw +Exec=/usr/games/wangulator +Terminal=false +Type=Application +Categories=Game;ActionGame; diff --git a/games/eduke32/doinst.sh b/games/eduke32/doinst.sh index 59eb079d1557a..eff4bc5182267 100644 --- a/games/eduke32/doinst.sh +++ b/games/eduke32/doinst.sh @@ -1,3 +1,9 @@ if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications 2>/dev/null fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/games/eduke32/eduke32.SlackBuild b/games/eduke32/eduke32.SlackBuild index 373d4f78d1587..9bae23a3e9278 100644 --- a/games/eduke32/eduke32.SlackBuild +++ b/games/eduke32/eduke32.SlackBuild @@ -6,6 +6,24 @@ # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. +# Note to self: in 20211102_9751_8970754aa, ekenbuild won't compile. + +# TODO: man page(s). eduke32.6 is ancient. + +# 20211108 bkw: +# - update for 20211102_9751_8970754aa. +# - include voidsw (shadow warrior), wangulator (sw map editor), and +# fury (ion fury) executables. +# - fix the tools compilation (again). +# - get rid of wrapper script, upstream now supports looking for +# data in /usr/share/games/eduke32, and creates its own ~/.config/eduke32 +# to save settings/etc in. +# - stop the game from creating a log file in the current dir. +# - rewrite README_game_data.txt, it's now complete for all the games +# except Ion Fury. +# - fix the @!%!#$% mouse sensitivity in voidsw. +# - get rid of SDL1 build. + # 20170128 bkw: # - update for 20170123_6052 # - add new utilities @@ -27,14 +45,11 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=eduke32 -VERSION=${VERSION:-20170123_6052} +VERSION=${VERSION:-20211102_9751_8970754aa} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -54,92 +69,106 @@ fi if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" - LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" - LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" - LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" fi set -e -SRCVER=${VERSION/_/-} +SRCVER="$( echo $VERSION | tr _ - )" rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf ${PRGNAM}_${SRCVER} -tar xvf $CWD/${PRGNAM}_src_${SRCVER}.tar.xz +tar xvf $CWD/${PRGNAM}_src_${SRCVER}.tar.xz --exclude=platform cd ${PRGNAM}_${SRCVER} chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; - -# this was always undocumented, defaulted to "no" in Slack <= 14.1. -# should be safe to default to "yes" now that 14.2 has libvpx. -if [ "${VPX:-yes}" != "yes" ]; then - VPXFLAG="USE_LIBVPX=0" -else - ANDVPX=" and libvpx" -fi +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +# Notes to self: +# - adding LDFLAGS="-fuse-ld=gold" doesn't seem to affect the link times. +# - SLKCFLAGS get applied, but also a bunch of other optimizations. +runmake() { + echo "===> runmake args: '$@'" + make RELEASE=1 \ + PRETTY_OUTPUT=0 \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + "$@" +} + +installbins() { + echo "===> installbins args: '$@'" + install -s -m0755 $@ $PKG/usr/games/ +} + +# 20211108 bkw: recent eduke32 no longer needs a wrapper script, +# except that it wants to write a logfile to the current dir where +# it was run. Since the log is just a copy of the game's stdout, +# we don't actually need it, so: +sed -i '/OSD_SetLogFile/d' \ + source/duke3d/src/game.cpp \ + source/duke3d/src/astub.cpp \ + source/kenbuild/src/game.cpp \ + source/kenbuild/src/bstub.cpp \ + source/sw/src/game.cpp \ + source/sw/src/jnstub.cpp # On some systems, the game spits out tons of warnings: # Error: glGetTexLevelParameteriv returned GL_FALSE! # These don't seem to actually hurt anything (the game looks # and plays fine), so let's get rid of them to clean up # the log output. -sed -i '/"Error: glGetTexLevelParameteriv/d' build/src/texcache.c - -# SDL2 might be preferred for some users. Specifically, those of us -# who use a left-handed mouse (SDL1 gets the button mappings backwards). -SDL2=${SDL2:-auto} -SDL_TARGET=1 -if [ "$SDL2" = "auto" ]; then - sdl2-config --version >/dev/null && SDL_TARGET=2 -elif [ "$SDL2" = "yes" ]; then - SDL_TARGET=2 -else - SDL_TARGET=1 -fi - -# Mildly confusing: the Makefile uses ARCH for arch-specific cflags -make \ - ARCH="" \ - OPTIMIZATIONS="$SLKCFLAGS" \ - SDL_TARGET=$SDL_TARGET \ - $VPXFLAG - -# Build the utilities, if requested. -if [ "${BUILD_UTILS:-yes}" = "yes" ]; then - make utils sdlutils \ - OPTIMIZATIONS="$SLKCFLAGS" \ - ARCH="" \ - $VPXFLAG \ - SDL_TARGET=$SDL_TARGET \ - - for i in kextract kgroup transpal wad2art wad2map kmd2tool \ - md2tool generateicon cacheinfo arttool givedepth \ - mkpalette unpackssi map2stl ivfrate makesdlkeytrans - do - install -s -D -m0755 $i $PKG/usr/games/$i - done -fi - -install -D -m0755 $PRGNAM $PKG/usr/libexec/$PRGNAM/$PRGNAM -install -D -m0755 mapster32 $PKG/usr/libexec/$PRGNAM/mapster32 +sed -i '/"Error: glGetTexLevelParameteriv/d' source/build/src/texcache.cpp + +# voidsw's in-game menus don't let you crank the mouse sensitivity up high +# enough. the mouse barely does anything at the default setting, and it's +# still too slow-moving to be usable at the max. +sed -i 's,8192,660,g' source/sw/src/config.cpp source/sw/src/menus.cpp +sed -i '/MouseAnalogScale/s,65536,131071,' source/sw/src/config.cpp + +# Our twin dragon is a different repack from the ones voidsw knows +# about. Also, upstream incorrectly says the Wanton Destruction +# wd.grp requires sw.grp as a dependency. Actually, it's a +# complete/standalone game, add-on or not, so this patch fixes that. +patch -p1 < $CWD/twin_dragon.diff + +# Make eduke32 load autoload content from the system dir. voidsw +# already does this. +patch -p1 < $CWD/system_autoload.diff + +# eduke32 and mapster: +runmake + +# voidsw and wangulator: +runmake sw + +mkdir -p $PKG/usr/games +installbins $PRGNAM mapster32 voidsw wangulator + +# the tools: +# patch does 2 things: fix linking (add mimalloc as a dep) and +# get rid of the generateicon tool (which still fails to build). +patch -p1 < $CWD/tools.diff +runmake tools +installbins arttool bsuite cacheinfo givedepth ivfrate kextract kgroup \ + kmd2tool makesdlkeytrans map2stl md2tool mkpalette transpal \ + unpackssi wad2art wad2map + +# fury (which would fail without the 'make clean' first): +make clean +runmake fury FURY=1 +installbins fury mkdir -p $PKG/usr/man/man6 gzip -9c $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz -# Wrapper script to make things behave nicer -install -D -m0755 $CWD/$PRGNAM.wrapper $PKG/usr/games/$PRGNAM -( cd $PKG/usr/games ; ln -s $PRGNAM mapster32 ) - # Mapster help files mkdir -p $PKG/usr/share/games/$PRGNAM cd package/sdk @@ -147,14 +176,26 @@ cp *.hlp *.HLP names.h tiles.cfg $PKG/usr/share/games/$PRGNAM cd - mkdir -p $PKG/usr/share/applications -cp $CWD/mapster32.desktop $CWD/$PRGNAM.desktop $PKG/usr/share/applications +for i in $CWD/desktop/*.desktop; do + cat $i > $PKG/usr/share/applications/$( basename $i ) +done mkdir -p $PKG/usr/share/pixmaps -cp $CWD/$PRGNAM.png $PKG/usr/share/pixmaps +for subdir in $CWD/icons/*; do + name=$( basename $subdir ) + for i in $subdir/*.png; do + px=$( basename $i | cut -d. -f1 ) + size=${px}x${px} + dir=$PKG/usr/share/icons/hicolor/$size/apps + mkdir -p $dir + cat $i > $dir/$name.png + done + ln -s ../icons/hicolor/48x48/apps/$name.png $PKG/usr/share/pixmaps/$name.png +done mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp build/doc/* $PKG/usr/doc/$PRGNAM-$VERSION -cp build/buildlic.txt source/gpl-2.0.txt $CWD/README_game_data.txt \ +cp source/build/doc/* $PKG/usr/doc/$PRGNAM-$VERSION +cp source/build/buildlic.txt source/duke3d/gpl-2.0.txt $CWD/README_game_data.txt \ $PKG/usr/doc/$PRGNAM-$VERSION cp -r package/sdk/samples $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild @@ -163,9 +204,7 @@ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild ln -s ../../../doc/$PRGNAM-$VERSION/README_game_data.txt . ) mkdir -p $PKG/install -sed -e "s,@SDL_TARGET@,$SDL_TARGET," \ - -e "s,@ANDVPX@,$ANDVPX," \ - $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG diff --git a/games/eduke32/eduke32.info b/games/eduke32/eduke32.info index 6c633a7ef515a..8c2eacf117d2d 100644 --- a/games/eduke32/eduke32.info +++ b/games/eduke32/eduke32.info @@ -1,8 +1,8 @@ PRGNAM="eduke32" -VERSION="20170123_6052" -HOMEPAGE="http://www.eduke32.com/" -DOWNLOAD="http://dukeworld.duke4.net/eduke32/synthesis/20170123-6052/eduke32_src_20170123-6052.tar.xz" -MD5SUM="b3109ceca104bb4550ebeb58fc5b38f6" +VERSION="20211102_9751_8970754aa" +HOMEPAGE="https://www.eduke32.com/" +DOWNLOAD="https://dukeworld.duke4.net/eduke32/synthesis/20211102-9751-8970754aa/eduke32_src_20211102-9751-8970754aa.tar.xz" +MD5SUM="2a3aa3e991a411a3018068a6b97043a3" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" diff --git a/games/eduke32/eduke32.png b/games/eduke32/eduke32.png Binary files differdeleted file mode 100644 index 58d4f7cf18884..0000000000000 --- a/games/eduke32/eduke32.png +++ /dev/null diff --git a/games/eduke32/eduke32.wrapper b/games/eduke32/eduke32.wrapper deleted file mode 100644 index 7509c7f09dfa3..0000000000000 --- a/games/eduke32/eduke32.wrapper +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - -# Wrapper script for eduke32 and mapster32. -# Ensure ~/.eduke32 exists, populate with a symlink forest. -# Need this because the game normally expects to run from its own dir. -# This version supports game mods. Currently only tested with bloodcm. - -SHAREDIR=/usr/share/games/eduke32 -BINDIR=/usr/libexec/eduke32 -USERDIR=$HOME/.eduke32 - -PROG="$( basename $0 )" -mkdir -p $USERDIR - -if ! cd $USERDIR; then - echo 2>&1 "$PROG: Can't create $USERDIR directory" - exit 1 -fi - -# These files need to be present, but not writable, symlinks -# to /usr/share are OK. -for i in m32help.hlp SEHELP.HLP STHELP.HLP names.h tiles.cfg; do - if [ -e $SHAREDIR/$i -a ! -e $i ]; then - ln -s $SHAREDIR/$i $i - fi -done - -# For directories, it's more complex. - -# We don't know in advance what directories might be present, since -# packages can install game mods (e.g. bloodcm). So link them all. -# Unfortunately it can't be a simple symlink, because the *.cfg files -# inside mod directories need to really exist in $USERDIR, writable by -# the user, so he can save his settings. - -# The autoload subdir isn't a mod, but it's treated the same way so -# individual users can have different autoload stuff. If you install -# eduke32_hires_pack, this means users can disable it by removing their -# symlink in ~/.eduke32/autoload (without disturbing anything else they -# might have in autoload). - -# I wish there were a simpler way to do this. The only other solution -# would be to patch the eduke32 source, to make it save .cfg files in a -# different location than the game data dirs... but I'd rather handle it -# with a wrapper script because it's easier to debug. - -# So, here's how we handle the directories: -for i in $SHAREDIR/*/; do - dir=$( basename $i ) - if [ ! -e $dir ]; then - mkdir $dir - ln -s $SHAREDIR/$dir/* $dir - rm -f $dir/*.cfg - cp $SHAREDIR/$dir/*.cfg $dir - fi -done - -# If this is left over in $USERDIR, it's from a previous version of this -# script, and it doesn't belong there. samples/ isn't a mod, it's actually -# documentation, and is now installed in /usr/doc/eduke32-$VERSION. -rm -f samples - -exec $BINDIR/$PROG "$@" diff --git a/games/eduke32/icons/eduke32/128.png b/games/eduke32/icons/eduke32/128.png Binary files differnew file mode 100644 index 0000000000000..6284bc15ba467 --- /dev/null +++ b/games/eduke32/icons/eduke32/128.png diff --git a/games/eduke32/icons/eduke32/16.png b/games/eduke32/icons/eduke32/16.png Binary files differnew file mode 100644 index 0000000000000..f5de16215d5ce --- /dev/null +++ b/games/eduke32/icons/eduke32/16.png diff --git a/games/eduke32/icons/eduke32/24.png b/games/eduke32/icons/eduke32/24.png Binary files differnew file mode 100644 index 0000000000000..7efbca88f90cd --- /dev/null +++ b/games/eduke32/icons/eduke32/24.png diff --git a/games/eduke32/icons/eduke32/256.png b/games/eduke32/icons/eduke32/256.png Binary files differnew file mode 100644 index 0000000000000..f7585c4e626c5 --- /dev/null +++ b/games/eduke32/icons/eduke32/256.png diff --git a/games/eduke32/icons/eduke32/32.png b/games/eduke32/icons/eduke32/32.png Binary files differnew file mode 100644 index 0000000000000..cf72dec8e9190 --- /dev/null +++ b/games/eduke32/icons/eduke32/32.png diff --git a/games/eduke32/icons/eduke32/48.png b/games/eduke32/icons/eduke32/48.png Binary files differnew file mode 100644 index 0000000000000..260006b871110 --- /dev/null +++ b/games/eduke32/icons/eduke32/48.png diff --git a/games/eduke32/icons/eduke32/64.png b/games/eduke32/icons/eduke32/64.png Binary files differnew file mode 100644 index 0000000000000..800a0d993d751 --- /dev/null +++ b/games/eduke32/icons/eduke32/64.png diff --git a/games/eduke32/icons/fury/16.png b/games/eduke32/icons/fury/16.png Binary files differnew file mode 100644 index 0000000000000..542f54b9ec0c9 --- /dev/null +++ b/games/eduke32/icons/fury/16.png diff --git a/games/eduke32/icons/fury/24.png b/games/eduke32/icons/fury/24.png Binary files differnew file mode 100644 index 0000000000000..8a626445e5ff5 --- /dev/null +++ b/games/eduke32/icons/fury/24.png diff --git a/games/eduke32/icons/fury/32.png b/games/eduke32/icons/fury/32.png Binary files differnew file mode 100644 index 0000000000000..cf8eeac8269e2 --- /dev/null +++ b/games/eduke32/icons/fury/32.png diff --git a/games/eduke32/icons/fury/48.png b/games/eduke32/icons/fury/48.png Binary files differnew file mode 100644 index 0000000000000..15a6f3a3d678a --- /dev/null +++ b/games/eduke32/icons/fury/48.png diff --git a/games/eduke32/icons/fury/64.png b/games/eduke32/icons/fury/64.png Binary files differnew file mode 100644 index 0000000000000..9a94c4845c744 --- /dev/null +++ b/games/eduke32/icons/fury/64.png diff --git a/games/eduke32/icons/voidsw/128.png b/games/eduke32/icons/voidsw/128.png Binary files differnew file mode 100644 index 0000000000000..77cdf70f68bbf --- /dev/null +++ b/games/eduke32/icons/voidsw/128.png diff --git a/games/eduke32/icons/voidsw/16.png b/games/eduke32/icons/voidsw/16.png Binary files differnew file mode 100644 index 0000000000000..ebbd8f0872a15 --- /dev/null +++ b/games/eduke32/icons/voidsw/16.png diff --git a/games/eduke32/icons/voidsw/256.png b/games/eduke32/icons/voidsw/256.png Binary files differnew file mode 100644 index 0000000000000..8ae928472a496 --- /dev/null +++ b/games/eduke32/icons/voidsw/256.png diff --git a/games/eduke32/icons/voidsw/32.png b/games/eduke32/icons/voidsw/32.png Binary files differnew file mode 100644 index 0000000000000..f4534322aa83e --- /dev/null +++ b/games/eduke32/icons/voidsw/32.png diff --git a/games/eduke32/icons/voidsw/48.png b/games/eduke32/icons/voidsw/48.png Binary files differnew file mode 100644 index 0000000000000..8f6aca3acf975 --- /dev/null +++ b/games/eduke32/icons/voidsw/48.png diff --git a/games/eduke32/icons/voidsw/64.png b/games/eduke32/icons/voidsw/64.png Binary files differnew file mode 100644 index 0000000000000..a62c2f3c8aeb6 --- /dev/null +++ b/games/eduke32/icons/voidsw/64.png diff --git a/games/eduke32/slack-desc b/games/eduke32/slack-desc index 9d6373e6a7ff7..458febc6913ea 100644 --- a/games/eduke32/slack-desc +++ b/games/eduke32/slack-desc @@ -6,14 +6,14 @@ # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| -eduke32: eduke32 (enhanced "Duke Nukem 3D" engine) +eduke32: eduke32 (engine for Duke Nukem 3D, Shadow Warrior, Ion Fury) eduke32: eduke32: EDuke32 is a fork of the JFDuke3D port of Duke Nukem 3D (aka Duke3D), eduke32: merging it with EDuke to provide many new features for mod authors. -eduke32: Also included is a map editor (mapster32). eduke32: -eduke32: To play the game, you will need the DUKE3D.GRP file from either the -eduke32: Duke Nukem 3D CD-ROM, or from the shareware version of Duke Nukem 3D. -eduke32: -eduke32: This package built with SDL @SDL_TARGET@@ANDVPX@. +eduke32: Included in the package are eduke32 (Duke Nukem 3D engine; also plays +eduke32: Nam/Napalm and WWII GI), voidsw (Shadow Warrior engine), fury (Ion +eduke32: Fury engine), mapster32 (map editor for Duke Nukem 3D), wangulator +eduke32: (map editor for Shadow Warrior), plus the Build engine tools such +eduke32: as kextract, kgroup, etc. eduke32: diff --git a/games/eduke32/system_autoload.diff b/games/eduke32/system_autoload.diff new file mode 100644 index 0000000000000..a480d87a19cfd --- /dev/null +++ b/games/eduke32/system_autoload.diff @@ -0,0 +1,11 @@ +diff -Naur eduke32_20211102-9751-8970754aa/source/duke3d/src/common.cpp eduke32_20211102-9751-8970754aa.patched/source/duke3d/src/common.cpp +--- eduke32_20211102-9751-8970754aa/source/duke3d/src/common.cpp 2021-11-03 00:31:19.000000000 -0400 ++++ eduke32_20211102-9751-8970754aa.patched/source/duke3d/src/common.cpp 2021-11-09 12:06:08.273092333 -0500 +@@ -449,6 +449,7 @@ + + if (autoload) + { ++ G_LoadGroupsInDir("/usr/share/games/eduke32/autoload"); + G_LoadGroupsInDir("autoload"); + + if (i != -1) diff --git a/games/eduke32/tools.diff b/games/eduke32/tools.diff new file mode 100644 index 0000000000000..22807c3dc435d --- /dev/null +++ b/games/eduke32/tools.diff @@ -0,0 +1,18 @@ +diff -Naur eduke32_20211102-9751-8970754aa/GNUmakefile eduke32_20211102-9751-8970754aa.patched/GNUmakefile +--- eduke32_20211102-9751-8970754aa/GNUmakefile 2021-11-03 00:31:19.000000000 -0400 ++++ eduke32_20211102-9751-8970754aa.patched/GNUmakefile 2021-11-07 15:41:44.198560499 -0500 +@@ -439,13 +439,12 @@ + + tools_cflags := $(engine_cflags) + +-tools_deps := engine_tools ++tools_deps := engine_tools mimalloc + + tools_targets := \ + arttool \ + bsuite \ + cacheinfo \ +- generateicon \ + givedepth \ + ivfrate \ + kextract \ diff --git a/games/eduke32/twin_dragon.diff b/games/eduke32/twin_dragon.diff new file mode 100644 index 0000000000000..9a6be0324c750 --- /dev/null +++ b/games/eduke32/twin_dragon.diff @@ -0,0 +1,12 @@ +diff -Naur eduke32_20211102-9751-8970754aa/source/sw/src/grpscan.cpp eduke32_20211102-9751-8970754aa.patched/source/sw/src/grpscan.cpp +--- eduke32_20211102-9751-8970754aa/source/sw/src/grpscan.cpp 2021-11-03 00:31:20.000000000 -0400 ++++ eduke32_20211102-9751-8970754aa.patched/source/sw/src/grpscan.cpp 2021-11-07 15:00:27.613722670 -0500 +@@ -50,7 +50,7 @@ + { "Shadow Warrior Shareware 1.1", 0xF21A6B35u, 25833456, GAMEFLAG_SHAREWARE, 0, 0, nullptr }, + { "Shadow Warrior Shareware 1.2", 0x08A7FA1Fu, 26056769, GAMEFLAG_SHAREWARE, 0, 0, nullptr }, + { "Shadow Warrior Mac Demo", 0x4227F535u, 26056769, GAMEFLAG_SHAREWARE, 0, 0, nullptr }, +- { "Wanton Destruction", SWWD_CRC, 48698128, GAMEFLAG_SWWD, GRP_HAS_DEPENDENCY, SWREG12_CRC, nullptr }, ++ { "Wanton Destruction", SWWD_CRC, 48698128, GAMEFLAG_SWWD, 0, 0, nullptr }, + { "Twin Dragon", SWTD_CRC, 12499012, GAMEFLAG_SWTD, GRP_HAS_DEPENDENCY, SWREG12_CRC, process_tdragongrp }, + { "Twin Dragon", 0xACC8DCDEu, 6235578, GAMEFLAG_SWTD, GRP_HAS_DEPENDENCY, SWREG12_CRC, nullptr }, + { "Twin Dragon", 0xB5B71277u, 6236287, GAMEFLAG_SWTD, GRP_HAS_DEPENDENCY, SWREG12_CRC, nullptr }, // commonly available repack |