mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-20 19:41:34 +01:00
games/rigel-engine: Added (Duke Nukem II reimplementation)
Signed-off-by: bedlam <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
8688e336e1
commit
a492e8a4ba
8 changed files with 431 additions and 0 deletions
16
games/rigel-engine/README
Normal file
16
games/rigel-engine/README
Normal file
|
@ -0,0 +1,16 @@
|
|||
rigel-engine (Duke Nukem II reimplementation)
|
||||
|
||||
RigelEngine is a reimplementation of the game Duke Nukem II,
|
||||
originally released by Apogee Software in 1993 for MS-DOS. RigelEngine
|
||||
works as a drop-in replacement for the original executable: It reads
|
||||
the game's data files and plays just like the original, but runs
|
||||
natively on modern operating systems and is written in modern C++
|
||||
code.
|
||||
|
||||
If you're looking for the shareware data files, they're available here:
|
||||
https://archive.org/download/msdos_DUKE2_shareware/DUKE2.zip
|
||||
|
||||
Compared to running the original in an emulator, RigelEngine offers
|
||||
many modern enhancements and usability improvements.
|
||||
|
||||
The executable and man page are called "RigelEngine".
|
117
games/rigel-engine/RigelEngine.6
Normal file
117
games/rigel-engine/RigelEngine.6
Normal file
|
@ -0,0 +1,117 @@
|
|||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
.de1 rstReportMargin
|
||||
\\$1 \\n[an-margin]
|
||||
level \\n[rst2man-indent-level]
|
||||
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
-
|
||||
\\n[rst2man-indent0]
|
||||
\\n[rst2man-indent1]
|
||||
\\n[rst2man-indent2]
|
||||
..
|
||||
.de1 INDENT
|
||||
.\" .rstReportMargin pre:
|
||||
. RS \\$1
|
||||
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
||||
. nr rst2man-indent-level +1
|
||||
.\" .rstReportMargin post:
|
||||
..
|
||||
.de UNINDENT
|
||||
. RE
|
||||
.\" indent \\n[an-margin]
|
||||
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.nr rst2man-indent-level -1
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "RIGELENGINE" 6 "2023-01-23" "0.9.1" "SlackBuilds.org"
|
||||
.SH NAME
|
||||
RigelEngine \- reimplementation of Duke Nukem II
|
||||
.\" RST source for RigelEngine(1) man page. Convert with:
|
||||
.
|
||||
.\" rst2man.py RigelEngine.rst > RigelEngine.6
|
||||
.
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
RigelEngine [\fB\-s\fP | \fB\-\-skip\-intro\fP] [\fB\-d\fP | \fB\-\-debug\-mode\fP] [\fB\-\-no\-audio\fP] [\fB\-\-play\-demo\fP] [\fB\-l\fP | \fB\-\-play\-level\fP \fIlevel\-name\fP] [\fB\-\-difficulty\fP \fIeasy|medium|hard\fP] [\fB\-\-player\-pos\fP \fIx,y\fP] [\fIgame\-path\fP]
|
||||
.SH DESCRIPTION
|
||||
.sp
|
||||
\fBRigelEngine\fP is a modern reimplementation of the game Duke Nukem II,
|
||||
originally released in 1993 for MS\-DOS by Apogee Software.
|
||||
.sp
|
||||
In order to run RigelEngine, the game data from the original game is
|
||||
required. Both the shareware version and the registered version work.
|
||||
When launching RigelEngine for the first time, it will show a file
|
||||
browser UI and ask you to select the location of your Duke Nukem
|
||||
II installation. The chosen path will be stored in the game\(aqs user
|
||||
profile, so that you don\(aqt have to select it again next time.
|
||||
.sp
|
||||
It\(aqs also possible to pass the path to the game files as argument on
|
||||
the command line.
|
||||
.sp
|
||||
The only files actually used by RigelEngine are \fBNUKEM2.CMP\fP (the main
|
||||
data tile; required) and \fBNUKEM2.F1\fP through \fBNUKEM2.F5\fP (intro movie
|
||||
files; actually optional).
|
||||
.SH OPTIONS
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-?, \-h, \-\-help
|
||||
Show built\-in help and exit.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-s\fP,\fB \-\-skip\-intro
|
||||
Skip intro movies/Apogee logo, go straight to main menu.
|
||||
.TP
|
||||
.B \-d\fP,\fB \-\-debug\-mode
|
||||
Enable debugging features.
|
||||
.TP
|
||||
.B \-\-no\-audio
|
||||
Disable all audio output.
|
||||
.TP
|
||||
.B \-\-play\-demo
|
||||
Play pre\-recorded demo.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \fB\-l\fP, \fB\-\-play\-level\fP \fIlevel\-name\fP
|
||||
Directly jump to given map, skipping intro/menu etc.
|
||||
.TP
|
||||
.B \fB\-\-difficulty\fP \fIeasy|medium|hard\fP
|
||||
Difficulty to use when jumping to a level.
|
||||
.TP
|
||||
.B \fB\-\-player\-pos\fP \fIx,y\fP
|
||||
Position to place the player at when jumping to a level.
|
||||
.TP
|
||||
.B \fIgame\-path\fP
|
||||
Path to original game\(aqs installation. If not provided here, the game will show a folder browser UI.
|
||||
.UNINDENT
|
||||
.SH FILES
|
||||
.sp
|
||||
\fB$XDG_DATA_HOME/lethal\-guitar/Rigel Engine/\fP
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
Per\-user configuration, savegames, and log file are stored here.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
The default value of \fB$XDG_DATA_HOME\fP is the same as \fB$HOME\fP\&.
|
||||
.SH COPYRIGHT
|
||||
.sp
|
||||
See the file /usr/doc/rigel\-engine\-0.9.1/LICENSE.md for license information.
|
||||
.SH AUTHORS
|
||||
.sp
|
||||
RigelEngine was written by lethal\-guitar.
|
||||
.sp
|
||||
This man page written for the SlackBuilds.org project
|
||||
by B. Watson, and is licensed under the WTFPL.
|
||||
.SH SEE ALSO
|
||||
.sp
|
||||
/usr/doc/rigel\-engine\-0.9.1/README.md
|
||||
.sp
|
||||
\fI\%https://github.com/lethal\-guitar/RigelEngine/wiki\fP
|
||||
.\" Generated by docutils manpage writer.
|
||||
.
|
102
games/rigel-engine/RigelEngine.rst
Normal file
102
games/rigel-engine/RigelEngine.rst
Normal file
|
@ -0,0 +1,102 @@
|
|||
.. RST source for RigelEngine(1) man page. Convert with:
|
||||
.. rst2man.py RigelEngine.rst > RigelEngine.6
|
||||
|
||||
.. |version| replace:: 0.9.1
|
||||
.. |date| date::
|
||||
|
||||
===========
|
||||
RigelEngine
|
||||
===========
|
||||
|
||||
---------------------------------
|
||||
reimplementation of Duke Nukem II
|
||||
---------------------------------
|
||||
|
||||
:Manual section: 6
|
||||
:Manual group: SlackBuilds.org
|
||||
:Date: |date|
|
||||
:Version: |version|
|
||||
|
||||
SYNOPSIS
|
||||
========
|
||||
|
||||
RigelEngine [**-s** | **--skip-intro**] [**-d** | **--debug-mode**] [**--no-audio**] [**--play-demo**] [**-l** | **--play-level** *level-name*] [**--difficulty** *easy|medium|hard*] [**--player-pos** *x,y*] [*game-path*]
|
||||
|
||||
DESCRIPTION
|
||||
===========
|
||||
|
||||
**RigelEngine** is a modern reimplementation of the game Duke Nukem II,
|
||||
originally released in 1993 for MS-DOS by Apogee Software.
|
||||
|
||||
In order to run RigelEngine, the game data from the original game is
|
||||
required. Both the shareware version and the registered version work.
|
||||
When launching RigelEngine for the first time, it will show a file
|
||||
browser UI and ask you to select the location of your Duke Nukem
|
||||
II installation. The chosen path will be stored in the game's user
|
||||
profile, so that you don't have to select it again next time.
|
||||
|
||||
It's also possible to pass the path to the game files as argument on
|
||||
the command line.
|
||||
|
||||
The only files actually used by RigelEngine are **NUKEM2.CMP** (the main
|
||||
data tile; required) and **NUKEM2.F1** through **NUKEM2.F5** (intro movie
|
||||
files; actually optional).
|
||||
|
||||
OPTIONS
|
||||
=======
|
||||
|
||||
-?, -h, --help
|
||||
Show built-in help and exit.
|
||||
|
||||
-s, --skip-intro
|
||||
Skip intro movies/Apogee logo, go straight to main menu.
|
||||
|
||||
-d, --debug-mode
|
||||
Enable debugging features.
|
||||
|
||||
--no-audio
|
||||
Disable all audio output.
|
||||
|
||||
--play-demo
|
||||
Play pre-recorded demo.
|
||||
|
||||
**-l**, **--play-level** *level-name*
|
||||
Directly jump to given map, skipping intro/menu etc.
|
||||
|
||||
**--difficulty** *easy|medium|hard*
|
||||
Difficulty to use when jumping to a level.
|
||||
|
||||
**--player-pos** *x,y*
|
||||
Position to place the player at when jumping to a level.
|
||||
|
||||
*game-path*
|
||||
Path to original game's installation. If not provided here, the game will show a folder browser UI.
|
||||
|
||||
FILES
|
||||
=====
|
||||
|
||||
**$XDG_DATA_HOME/lethal-guitar/Rigel Engine/**
|
||||
|
||||
Per-user configuration, savegames, and log file are stored here.
|
||||
|
||||
The default value of **$XDG_DATA_HOME** is the same as **$HOME**.
|
||||
|
||||
COPYRIGHT
|
||||
=========
|
||||
|
||||
See the file /usr/doc/rigel-engine-|version|/LICENSE.md for license information.
|
||||
|
||||
AUTHORS
|
||||
=======
|
||||
|
||||
RigelEngine was written by lethal-guitar.
|
||||
|
||||
This man page written for the SlackBuilds.org project
|
||||
by B. Watson, and is licensed under the WTFPL.
|
||||
|
||||
SEE ALSO
|
||||
========
|
||||
|
||||
/usr/doc/rigel-engine-|version|/README.md
|
||||
|
||||
https://github.com/lethal-guitar/RigelEngine/wiki
|
9
games/rigel-engine/doinst.sh
Normal file
9
games/rigel-engine/doinst.sh
Normal file
|
@ -0,0 +1,9 @@
|
|||
if [ -x /usr/bin/update-desktop-database ]; then
|
||||
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
|
||||
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 -f usr/share/icons/hicolor >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
48
games/rigel-engine/git2tarxz.sh
Normal file
48
games/rigel-engine/git2tarxz.sh
Normal file
|
@ -0,0 +1,48 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Create source tarball from rigel-engine git repo, including
|
||||
# submodules. The auto-generated source tarballs from github don't
|
||||
# have the submodules, which is the only reason this exists...
|
||||
|
||||
# Note that this script doesn't need to be run as root. It does need to
|
||||
# be able to write to the current directory it's run from.
|
||||
|
||||
# Takes one optional argument, which is the commit or tag to create a
|
||||
# tarball of. With no arg, HEAD is used.
|
||||
|
||||
PRGNAM=rigel-engine
|
||||
CLONE_URL=https://github.com/lethal-guitar/RigelEngine/
|
||||
|
||||
set -e
|
||||
|
||||
GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
|
||||
rm -rf $GITDIR
|
||||
git clone $CLONE_URL $GITDIR
|
||||
|
||||
CWD="$( pwd )"
|
||||
cd $GITDIR
|
||||
|
||||
if [ "$1" != "" ]; then
|
||||
git reset --hard "$1" || exit 1
|
||||
fi
|
||||
|
||||
git submodule update --init --recursive
|
||||
|
||||
GIT_SHA=$( git rev-parse --short HEAD )
|
||||
|
||||
DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 )
|
||||
|
||||
VERTAG=$( git tag -l | tail -1 )
|
||||
|
||||
VERSION=${VERTAG}+${DATE}_${GIT_SHA}
|
||||
|
||||
find . -name .git\* -print0 | xargs -0 rm -rf
|
||||
|
||||
cd "$CWD"
|
||||
rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
|
||||
mv $GITDIR $PRGNAM-$VERSION
|
||||
tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
|
||||
|
||||
echo
|
||||
echo "Created tarball: $PRGNAM-$VERSION.tar.xz"
|
||||
echo "VERSION=$VERSION"
|
110
games/rigel-engine/rigel-engine.SlackBuild
Normal file
110
games/rigel-engine/rigel-engine.SlackBuild
Normal file
|
@ -0,0 +1,110 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Slackware build script for rigel-engine
|
||||
|
||||
# Written by B. Watson (urchlay@slackware.uk)
|
||||
|
||||
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
|
||||
|
||||
# If you're wondering why I host my own source tarball instead of
|
||||
# using the github one, it's because the github tarball is missing the
|
||||
# submodules.
|
||||
|
||||
# If you're wondering why the package is called rigel-engine and not
|
||||
# RigelEngine, it's because I dislike MixedCase package names. Not
|
||||
# going to change it.
|
||||
|
||||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PRGNAM=rigel-engine
|
||||
SRCNAM=RigelEngine
|
||||
VERSION=${VERSION:-0.9.1}
|
||||
GITVER="v0.9.1+20221210_84ae53f0" # result of "sh git2tarxz.sh v0.9.1"
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
i?86) ARCH=i586 ;;
|
||||
arm*) ARCH=arm ;;
|
||||
*) ARCH=$( uname -m ) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
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"
|
||||
LIBDIRSUFFIX=""
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$GITVER
|
||||
tar xvf $CWD/$PRGNAM-$GITVER.tar.xz
|
||||
cd $PRGNAM-$GITVER
|
||||
chown -R root:root .
|
||||
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
|
||||
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
|
||||
|
||||
# Use full path in .desktop file.
|
||||
sed -i '/^Exec=/s,=,=/usr/games/,' dist/linux/*.desktop
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake \
|
||||
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_BINDIR=/usr/games \
|
||||
-DCMAKE_BUILD_TYPE=Release ..
|
||||
make
|
||||
make install/strip DESTDIR=$PKG
|
||||
cd ..
|
||||
|
||||
# A couple of extra icon sizes exist, include them.
|
||||
for px in 16 32; do
|
||||
size=${px}x${px}
|
||||
dir=$PKG/usr/share/icons/hicolor/$size/apps
|
||||
mkdir -p $dir
|
||||
install -m0644 dist/icon_original/$px.png $dir
|
||||
done
|
||||
|
||||
# man page written for this SlackBuild, made from README.md and --help.
|
||||
PKGMAN6=$PKG/usr/man/man6
|
||||
mkdir -p $PKGMAN6
|
||||
gzip -9c < $CWD/$SRCNAM.6 > $PKGMAN6/$SRCNAM.6.gz
|
||||
# symlink to the package name, too:
|
||||
ln -s $SRCNAM.6.gz $PKGMAN6/$PRGNAM.6.gz
|
||||
|
||||
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
mkdir -p $PKGDOC
|
||||
cp -a AUTHORS* CONTRIB* LICENSE* README* $PKGDOC
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
10
games/rigel-engine/rigel-engine.info
Normal file
10
games/rigel-engine/rigel-engine.info
Normal file
|
@ -0,0 +1,10 @@
|
|||
PRGNAM="rigel-engine"
|
||||
VERSION="0.9.1"
|
||||
HOMEPAGE="https://github.com/lethal-guitar/RigelEngine/"
|
||||
DOWNLOAD="https://slackware.uk/~urchlay/src/rigel-engine-v0.9.1+20221210_84ae53f0.tar.xz"
|
||||
MD5SUM="e76c8abe342f59300e54a88c8788ea05"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
MAINTAINER="B. Watson"
|
||||
EMAIL="urchlay@slackware.uk"
|
19
games/rigel-engine/slack-desc
Normal file
19
games/rigel-engine/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description.
|
||||
# Line up the first '|' above the ':' following the base package name, and
|
||||
# the '|' on the right side marks the last column you can put a character in.
|
||||
# You must make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
rigel-engine: rigel-engine (Duke Nukem II reimplementation)
|
||||
rigel-engine:
|
||||
rigel-engine: RigelEngine is a reimplementation of the game Duke Nukem II,
|
||||
rigel-engine: originally released by Apogee Software in 1993 for MS-DOS. RigelEngine
|
||||
rigel-engine: works as a drop-in replacement for the original executable: It reads
|
||||
rigel-engine: the game's data files and plays just like the original, but runs
|
||||
rigel-engine: natively on modern operating systems and is written in modern C++
|
||||
rigel-engine: code.
|
||||
rigel-engine:
|
||||
rigel-engine:
|
||||
rigel-engine:
|
Loading…
Reference in a new issue