aboutsummaryrefslogtreecommitdiff
path: root/games/commandergenius
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-08-21 20:39:07 +0100
committerDavid Spencer <idlemoor@slackbuilds.org>2016-08-28 00:22:59 +0100
commit86734105b545024f24170ea0829ab0e571e9f753 (patch)
tree48f544df55b4b031fffc06a57ea31d7886bd19e4 /games/commandergenius
parent143c95cef219c4f10d67e5127f6778b5aa0dc9a8 (diff)
games/commandergenius: Added (engine for Commander Keen games).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
Diffstat (limited to 'games/commandergenius')
-rw-r--r--games/commandergenius/README45
-rw-r--r--games/commandergenius/commandergenius.6122
-rw-r--r--games/commandergenius/commandergenius.SlackBuild129
-rw-r--r--games/commandergenius/commandergenius.info10
-rw-r--r--games/commandergenius/commandergenius.rst110
-rw-r--r--games/commandergenius/doinst.sh9
-rw-r--r--games/commandergenius/slack-desc19
7 files changed, 444 insertions, 0 deletions
diff --git a/games/commandergenius/README b/games/commandergenius/README
new file mode 100644
index 000000000000..a74c26cca696
--- /dev/null
+++ b/games/commandergenius/README
@@ -0,0 +1,45 @@
+commandergenius (engine for Commander Keen games)
+
+Commander Genius is an open-source clone of Commander Keen which allows
+you to play the games, and some of the mods made for it. All of the
+original data files are required to do so, however the authors have
+provided convenient way to download some of the games (choose "Game
+Center" at the main menu). It's also possible to use the data files from
+an installed copy of one or more of the games.
+
+Supported games:
+
+Keen 1 - Version 1.33 [*]
+Keen 2 - Version 1.33
+Keen 3 - Version 1.33
+Keen 4 - Version 1.4 (EGA) [*]
+Keen 5 - Version 1.4 (EGA)
+Keen 6 - Version 1.4 (EGA) (version 1.5 known not to work!)
+Keen Dreams - Version v1.13 (EGA) [*]
+
+[*] = downloadable from Game Center
+
+Other versions might work, but there are no guarantees. For the games not
+available via the in-game Game Center, place the data files somewhere
+under /usr/share/games/commandergenius or ~/.CommanderGenius, and edit
+~/.CommanderGenius/games.cfg to tell the game where to find the files.
+
+commandergenius also has a HQP (High Quality Pack) with enhanced graphics
+and sound for Keen 1 through 4. For Keen 1 and Keen 4, choose "Keen 1
+Special" and "Keen 4 Special" from the Game Center, to get the HQP versions
+of the games. For Keen 2 and Keen 3, the HQP will automatically be used
+if the games are installed to ~/.CommanderGenius/games/keen2 and
+~/.CommanderGenius/games/keen3, with games.cfg entries like so:
+
+&Dir=games/keen2/keen2.exe
+/Name=keen2
+
+&Dir=games/keen3/keen3.exe
+/Name=keen3
+
+If you *don't* want the HQP to be used, use different directory names
+for the above (e.g. ckeen2 and ckeen3).
+
+commandergenius can be built with either SDL 1.2 or SDL 2.0. By default,
+SDL2 is used if found, otherwise SDL1 is used. To build with SDL1 even
+if SDL2 is installed, set 'SDL2=no' in the script's environment.
diff --git a/games/commandergenius/commandergenius.6 b/games/commandergenius/commandergenius.6
new file mode 100644
index 000000000000..5732294b093b
--- /dev/null
+++ b/games/commandergenius/commandergenius.6
@@ -0,0 +1,122 @@
+.\" Man page generated from reStructuredText.
+.
+.TH COMMANDERGENIUS 6 "2016-08-21" "1.9.5.3-Beta" "SlackBuilds.org"
+.SH NAME
+commandergenius \- open source engine for Commander Keen games
+.
+.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
+..
+.\" RST source for commandergenius(6) man page. Convert with:
+.
+.\" rst2man.py commandergenius.rst > commandergenius.6
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.\" converting from pod:
+.
+.\" s/B<\([^>]*\)>/**\1**/g
+.
+.\" s/I<\([^>]*\)>/*\1*/g
+.
+.SH SYNOPSIS
+.sp
+commandergenius [\fIdir=dir\fP] [\fIfinale=<on|off>\fP]
+.sp
+CGeniusExe [\fIdir=dir\fP] [\fIfinale=<on|off>\fP]
+.SH DESCRIPTION
+.sp
+Commander Genius is an open\-source clone of Commander Keen which allows
+you to play the games, and some of the mods made for it. All of the
+original data files are required to do so, however the authors have
+provided convenient way to download some of the games (choose "Game
+Center" at the main menu). It\(aqs also possible to use the data files from
+an installed copy of one or more of the games.
+.sp
+Supported games are Keen 1 through 6, plus Keen Dreams and several
+fan\-made mods.
+.sp
+This man page is a brief summary. Full documentation can be found
+in:
+.sp
+/usr/doc/commandergenius\-1953beta/README
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \fIdir=dir\fP
+Launch game in the given directory. This is a relative path from
+one of the directories configured in \fIcgenius.cfg\fP; absolute paths
+are not allowed.
+.TP
+.B \fIfinale=<on|off>\fP
+Skip directly to the finale (ending) of the game.
+.UNINDENT
+.SH FILES
+.INDENT 0.0
+.TP
+.B \fI/usr/share/games/commandergenius\fP
+System\-wide directory. Games may be installed here for use by
+multiple players, in the \fIgames/\fP subdirectory. Also, content from
+the HQP (high quality pack) is installed here.
+.TP
+.B \fI~/.CommanderGenius\fP
+Per\-user directory, containing any games downloaded from the in\-game
+Game Center. Also contains these files:
+.TP
+.B \fIcgenius.cfg\fP
+Main config file, rewritten on game exit. Contains user preferences.
+Normally not edited by hand, but it\(aqs possible to do so.
+.TP
+.B \fIgames.cfg\fP
+List of installed games and their directory paths.
+.TP
+.B \fICGLog.html\fP
+Log file created by the game.
+.TP
+.B \fIdownloads/\fP
+Zip files downloaded within the Game Center are saved here.
+.TP
+.B \fIgames/\fP
+Files extracted from downloaded zip files are stored here. Also,
+users may manually copy game data files here and add them to
+\fIgames.cfg\fP, to install games not available from the Game Center.
+.UNINDENT
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/commandergenius\-1953beta/COPYRIGHT for license information.
+.SH AUTHORS
+.sp
+commandergenius was written by Gerstrong <\fI\%gerstrong@gmail.com\fP>.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+The commandergenius homepage:
+.sp
+\fI\%https://github.com/gerstrong/Commander\-Genius\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/games/commandergenius/commandergenius.SlackBuild b/games/commandergenius/commandergenius.SlackBuild
new file mode 100644
index 000000000000..2f166f5093be
--- /dev/null
+++ b/games/commandergenius/commandergenius.SlackBuild
@@ -0,0 +1,129 @@
+#!/bin/sh
+
+# Slackware build script for commandergenius
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+PRGNAM=commandergenius
+VERSION=${VERSION:-1.9.5.3beta}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+# note that upstream has -O3 hardcoded *after* the specified flags,
+# so the -O2 here doesn't actually do anything. The -fPIC and arch/tune
+# stuff still applies though.
+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
+
+# I wish upstream would pick a name and stick with it... they also use
+# ~/.CommanderGenius for user data, and their README mentions CGenius.
+SRCNAM="Commander-Genius"
+EXENAME="CGeniusExe"
+DESKTOP="cgenius.desktop"
+
+# the real VERSION is from version.h in the source. the tarball names
+# omit the dots.
+SRCVER="$( echo $VERSION | sed 's,\.,,g' )"
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$SRCVER
+tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz || tar xvf $CWD/v$SRCVER.tar.gz
+cd $SRCNAM-$SRCVER
+chown -R root:root .
+
+# permissions are blethcherous, please don't revert to template here.
+find -L . -type f -a -exec chmod 644 '{}' '+'
+find -L . -type d -a -exec chmod 755 '{}' '+'
+
+# placate desktop-file-validate
+sed -i 's,Application;,,' share/$DESKTOP
+
+# SDL 2 is optional. I prefer it, others may not.
+SDLOPT="-DUSE_SDL2=no"
+SDLVER=1
+if sdl2-config --version 2>/dev/null && [ "${SDL2:-yes}" != "no" ]; then
+ SDLOPT="-DUSE_SDL2=yes"
+ SDLVER=2
+fi
+
+echo "=== Building with $SDLOPT"
+
+mkdir -p build
+cd build
+ cmake \
+ $SDLOPT \
+ -DGAMES_SHAREDIR:STRING=/usr/share/games \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make VERBOSE=1
+ make install/strip DESTDIR=$PKG
+cd ..
+
+# upstream installs 2 identical-looking (but not byte-identical) icons
+rm -f $PKG/usr/share/icons/hicolor/512x512/apps/CGLogo.png
+ln -s ../../../../games/$PRGNAM/cglogo512.png \
+ $PKG/usr/share/icons/hicolor/512x512/apps/CGLogo.png
+
+# grrrr. don't force command-line users to remember the name is CGeniusExe
+ln -s $EXENAME $PKG/usr/games/$PRGNAM
+
+# the High Quality Pack. this is redundant for Keen 1 and 4 (just download
+# the Special versions of these games), so we only install the data for
+# 2 and 3. strace shows the files are being loaded, but TBH I haven't
+# played these games enough to notice the difference with/without the HQP.
+rm -rf hqp/games/keen1 hqp/games/keen4
+cp -a hqp/* $PKG/usr/share/games/$PRGNAM
+
+# man page written for this SlackBuild.
+mkdir -p $PKG/usr/man/man6
+gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
+ln -s $PRGNAM.6.gz $PKG/usr/man/man6/$EXENAME.6.gz
+
+# upstream installs most of the docs in /usr/share/games/$PRGNAM...
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a COPYRIGHT $PKG/usr/doc/$PRGNAM-$VERSION
+for i in README changelog.txt Readme_hqp.txt; do
+ ln -s ../../share/games/$PRGNAM/$i $PKG/usr/doc/$PRGNAM-$VERSION
+done
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+sed "s,@SDLVER@,$SDLVER," < $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:-tgz}
diff --git a/games/commandergenius/commandergenius.info b/games/commandergenius/commandergenius.info
new file mode 100644
index 000000000000..f479479ba13e
--- /dev/null
+++ b/games/commandergenius/commandergenius.info
@@ -0,0 +1,10 @@
+PRGNAM="commandergenius"
+VERSION="1.9.5.3beta"
+HOMEPAGE="https://github.com/gerstrong/Commander-Genius"
+DOWNLOAD="https://github.com/gerstrong/Commander-Genius/archive/v1953beta.tar.gz"
+MD5SUM="7226389ae8a423dc9086936a9b403111"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/games/commandergenius/commandergenius.rst b/games/commandergenius/commandergenius.rst
new file mode 100644
index 000000000000..2609fb6b83c8
--- /dev/null
+++ b/games/commandergenius/commandergenius.rst
@@ -0,0 +1,110 @@
+.. RST source for commandergenius(6) man page. Convert with:
+.. rst2man.py commandergenius.rst > commandergenius.6
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 1.9.5.3-Beta
+.. |dotlessversion| replace:: 1953beta
+.. |date| date::
+
+.. converting from pod:
+.. s/B<\([^>]*\)>/**\1**/g
+.. s/I<\([^>]*\)>/*\1*/g
+
+===============
+commandergenius
+===============
+
+-------------------------------------------
+open source engine for Commander Keen games
+-------------------------------------------
+
+:Manual section: 6
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+commandergenius [*dir=dir*] [*finale=<on|off>*]
+
+CGeniusExe [*dir=dir*] [*finale=<on|off>*]
+
+DESCRIPTION
+===========
+
+Commander Genius is an open-source clone of Commander Keen which allows
+you to play the games, and some of the mods made for it. All of the
+original data files are required to do so, however the authors have
+provided convenient way to download some of the games (choose "Game
+Center" at the main menu). It's also possible to use the data files from
+an installed copy of one or more of the games.
+
+Supported games are Keen 1 through 6, plus Keen Dreams and several
+fan-made mods.
+
+This man page is a brief summary. Full documentation can be found
+in:
+
+/usr/doc/commandergenius-|dotlessversion|/README
+
+OPTIONS
+=======
+
+*dir=dir*
+ Launch game in the given directory. This is a relative path from
+ one of the directories configured in *cgenius.cfg*; absolute paths
+ are not allowed.
+
+*finale=<on|off>*
+ Skip directly to the finale (ending) of the game.
+
+FILES
+=====
+
+*/usr/share/games/commandergenius*
+ System-wide directory. Games may be installed here for use by
+ multiple players, in the *games/* subdirectory. Also, content from
+ the HQP (high quality pack) is installed here.
+
+*~/.CommanderGenius*
+ Per-user directory, containing any games downloaded from the in-game
+ Game Center. Also contains these files:
+
+*cgenius.cfg*
+ Main config file, rewritten on game exit. Contains user preferences.
+ Normally not edited by hand, but it's possible to do so.
+
+*games.cfg*
+ List of installed games and their directory paths.
+
+*CGLog.html*
+ Log file created by the game.
+
+*downloads/*
+ Zip files downloaded within the Game Center are saved here.
+
+*games/*
+ Files extracted from downloaded zip files are stored here. Also,
+ users may manually copy game data files here and add them to
+ *games.cfg*, to install games not available from the Game Center.
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/commandergenius-|dotlessversion|/COPYRIGHT for license information.
+
+AUTHORS
+=======
+
+commandergenius was written by Gerstrong <gerstrong@gmail.com>.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+The commandergenius homepage:
+
+https://github.com/gerstrong/Commander-Genius
diff --git a/games/commandergenius/doinst.sh b/games/commandergenius/doinst.sh
new file mode 100644
index 000000000000..3e5691a052b5
--- /dev/null
+++ b/games/commandergenius/doinst.sh
@@ -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 usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
diff --git a/games/commandergenius/slack-desc b/games/commandergenius/slack-desc
new file mode 100644
index 000000000000..68937c922614
--- /dev/null
+++ b/games/commandergenius/slack-desc
@@ -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------------------------------------------------------|
+commandergenius: commandergenius (engine for Commander Keen games)
+commandergenius:
+commandergenius: Commander Genius is an open-source clone of Commander Keen which
+commandergenius: allows you to play the games, and some of the mods made for it. All
+commandergenius: of the original data files are required to do so.
+commandergenius:
+commandergenius: This package was built with SDL @SDLVER@.
+commandergenius:
+commandergenius:
+commandergenius:
+commandergenius: