aboutsummaryrefslogtreecommitdiff
path: root/games/odamex
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2012-01-15 23:21:38 -0600
committerRobby Workman <rworkman@slackbuilds.org>2012-01-15 23:21:38 -0600
commit9daa6f9f29d694e2482ca75bce19a19dabfaed81 (patch)
tree93ddb2dd01d326a7dc7ef9b5fb4735b1b4ee531a /games/odamex
parentfa40eb3d306cada6a7d06c40aab779a93ff9769d (diff)
games/odamex: Added (Online Doom Multiplayer Experience)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'games/odamex')
-rw-r--r--games/odamex/README18
-rw-r--r--games/odamex/doinst.sh10
-rw-r--r--games/odamex/odamex.6212
-rw-r--r--games/odamex/odamex.SlackBuild97
-rw-r--r--games/odamex/odamex.info10
-rw-r--r--games/odamex/slack-desc19
-rw-r--r--games/odamex/waddir.diff22
7 files changed, 388 insertions, 0 deletions
diff --git a/games/odamex/README b/games/odamex/README
new file mode 100644
index 0000000000000..9e096a8886a8e
--- /dev/null
+++ b/games/odamex/README
@@ -0,0 +1,18 @@
+Odamex (Online Doom Multiplayer Experience) is a modification of DOOM
+to allow players to compete with each other over the Internet using the
+client/server architecture.
+
+This requires either wxGTK or wxPython.
+To hear in-game music, install either eawpats or freepats.
+
+You'll also need the game data (WAD file) from one of the following:
+
+Shareware Doom v1.9 (DOOM1.WAD)
+Ultimate Doom v1.9 (DOOM.WAD)
+Doom II v1.9 (DOOM2.WAD)
+Final Doom: TNT Evilution v1.9 (TNT.WAD)
+Final Doom: The Plutonia Experiment v1.9 (PLUTONIA.WAD)
+FreeDoom v0.6.2 (FREEDOOM.WAD)
+
+Place the WAD file(s) in /usr/share/games/doom. The filenames can be
+all lowercase (doom.wad) or all uppercase (DOOM.WAD).
diff --git a/games/odamex/doinst.sh b/games/odamex/doinst.sh
new file mode 100644
index 0000000000000..1f8ff67dedb29
--- /dev/null
+++ b/games/odamex/doinst.sh
@@ -0,0 +1,10 @@
+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/odamex/odamex.6 b/games/odamex/odamex.6
new file mode 100644
index 0000000000000..fb01805d3ff3a
--- /dev/null
+++ b/games/odamex/odamex.6
@@ -0,0 +1,212 @@
+.TH ODAMEX "6" "December 2011" "SlackBuilds.org" "Games"
+.SH NAME
+odamex \- Source port of Doom engine, with client/server multiplayer.
+.SH SYNOPSIS
+.B odamex
+[\fIoptions...\fR]
+.P
+.B odasrv
+[\fIoptions...\fR]
+.P
+.B odalaunch
+.SH DESCRIPTION
+Odamex (Online Doom Multiplayer Experience) is a modification of DOOM
+to allow players to compete with each other over the Internet using the
+client/server architecture.
+.P
+\fBodamex\fR is the client, also used for single\-player games.
+.P
+\fBodasrv\fR is the dedicated server (which runs in a tty).
+.P
+\fBodalaunch\fR is the server browser, used for finding multiplayer games
+on the 'net. It launches \fBodamex\fR with appropriate arguments.
+.P
+\fBodamex\fR is a source port of the Doom engine. It requires the data (aka WAD)
+file from one or more of the supported games. See \fBWAD FILES\fR, below, for a full
+explanation.
+.SH OPTIONS
+.SS File Options
+.TP
+\fB\-iwad\fR \fI<wadfile>\fR
+The IWAD file to use (in other words, which game to play). The filename extension
+\fI.wad\fR or \fI.WAD\fR is not required, and the name is case\-insensitive. See
+\fBWAD FILES\fR, below, for more information.
+.TP
+\fB\-waddir\fR
+Colon\-separated list of directories to search for WAD files, including the IWAD. See
+\fBWAD FILES\fR, below, for more information.
+.TP
+\fB\-file\fR \fI<wadfile>\fR
+Add a PWAD (patch WAD). Used for custom levels, music, etc. Does NOT work
+if using the shareware IWAD (doom1.wad).
+.TP
+\fB\-config\fR \fI<configfile>\fR
+Use \fIconfigfile\fR instead of the default config file (which is
+\fI~/.odamex/odamex.cfg\fR).
+.TP
+\fB\-confile\fR \fI<scriptfile>\fR
+Execute the console commands in \fIscriptfile\fR at startup.
+.TP
+\fB\-deh\fR \fI<dehacked-file>\fR
+Load a .deh file. Used for game mods.
+.TP
+\fB\-bex\fR \fI<bex-file>\fR
+Load a .bex file. Used for game mods.
+.SS Game Options
+.TP
+\fB\-warp\fR \fI<level>\fR
+Skip the intro, start the game at the given level. For Doom I and its variants,
+the level is given as a 2\-digit number (episode and map, e.g. \fB21\fR for
+episode 2, map 1). For Doom II and variants,
+the level is just the level number.
+.TP
+\fB\-nomonsters\fR
+Self\-explanatory. Usually used for multiplayer deathmatch games.
+.TP
+\fB\-timer\fR \fI<minutes>\fR
+Force levels to end after specified number of minutes.
+.TP
+\fB\-avg\fR
+"Austin Virtual Gaming" mode, equivalent to \fB\-timer 20\fR.
+.TP
+\fB\-fast\fR
+Fast monster mode (similar to "Nightmare" difficulty level).
+.TP
+\fB\-respawn\fR
+Monsters respawn after being killed (similar to "Nightmare" difficulty level).
+.TP
+\fB\-skill\fR \fI<skill-level>\fR
+Set skill level (useful with \fB\-warp\fR). Level is a number from 1 to 5, where
+1 is "I'm Too Young To Die" and 5 is "Nightmare".
+.SS Video/Audio Options
+.TP
+\fB\-width\fR \fI<pixels>\fR, \fB\-height\fR \fI<pixels>\fR
+Set video mode.
+.TP
+\fB\-novideo\fR, \fB\-nosound\fR, \fB\-nomusic\fR, \fB\-nomouse\fR
+Disable various features.
+.SS Network Options
+.TP
+\fB\-port\fR \fI<port>\fR
+Set the UDP port to use for netplay. Default is 10667.
+.TP
+\fB\-connect\fR \fI<server>\fR
+Connect to netplay server \fIserver\fR on startup.
+.TP
+\fB\-maxclients\fR \fI<count>\fR
+Set maximum number of allowed clients for dedicated server.
+.SS Demo Options
+.TP
+\fB\-record \fI<demoname>\fR
+Record a single\-player demo.
+.TP
+\fB\-playdemo \fI<demoname>\fR
+Play a previously\-recorded single\-player demo.
+.TP
+\fB\-netrecord \fI<demoname>\fR
+Record a network demo.
+.TP
+\fB\-netplay \fI<demoname>\fR
+Play a previously\-recorded network demo.
+.SS Undocumented Options
+.TP
+\fB\-heapsize \fI<size>\fR
+Set the heap size. Not obvious what this is good for.
+.TP
+\fB\-devparm\fR
+???
+.TP
+\fB\-blockmap\fR
+???
+.TP
+\fB\-stepmode\fR
+???
+.TP
+\fB\-bits\fR
+???
+.TP
+\fB\-fork\fR
+???
+.SH WAD FILES
+\fBodamex\fR (and Doom\-related games in general) load all game resources
+such as graphics, sound, and levels from a file known as an IWAD file.
+.P
+\fBodamex\fR supports the following IWAD files:
+.P
+.TP
+\fBdoom2f.wad\fR, \fBdoom2.wad\fR
+Doom II v1.9
+.TP
+\fBplutonia.wad\fR
+Final Doom: The Plutonia Experiment v1.9
+.TP
+\fBtnt.wad\fR
+Final Doom: TNT Evilution Experiment v1.9
+.TP
+\fBdoomu.wad\fR, \fBdoom.wad\fR
+Ultimate Doom v1.9
+.TP
+\fBdoom1.wad\fR
+Shareware Doom v1.9
+.TP
+\fBfreedoom.wad\fR, \fBfreedm.wad\fR
+FreeDoom v0.6.2
+.TP
+\fBchex.wad\fR
+Chex Quest
+.P
+If no \-iwad argument is given, \fBodamex\fR looks for each IWAD file
+in the order listed above, and uses the first one found.
+If \-iwad is given, \fBodamex\fR looks only for the named IWAD file. In
+either case,
+the WAD filenames
+can be in all\-lowercase or all\-uppercase.
+.P
+\fBodamex\fR also requires the file \fBodamex.wad\fR, which is part of \fBodamex\fR
+and is installed with it. This file must be found at runtime, or the application
+will abort.
+.P
+When searching for WAD files (odamex.wad, the IWAD, or a PWAD for the \-file option),
+\fBodamex\fR searches the following directories, in order:
+.P
+The current directory.
+.br
+The argument of the \-waddir option, if given.
+.br
+The path(s) listed in the \fBDOOMWADDIR\fR environment variable.
+.br
+The path(s) listed in the \fBDOOMWADPATH\fR environment variable.
+.br
+The user's home directory.
+.br
+The contents of the \fBwaddirs\fR cvar.
+.br
+The hard\-coded path \fB/usr/share/games/doom\fR.
+.P
+\-waddir, the waddirs cvar, DOOMWADDIR, and DOOMWADPATH are colon\-separated
+lists of directories.
+.SH OTHER FILES
+.TP
+\fB~/.odamex/\fR
+Config file \fBodamex.cfg\fR is located here. Will be created if it
+doesn't already exist. Also, saved games and recorded demos are stored here.
+.SH ENVIRONMENT
+.TP
+\fBDOOMWADDIR\fR, \fBDOOMWADPATH\fR
+Colon\-separated lists of directories to search for WAD files.
+.TP
+\fBHOME\fR
+WAD files are also searched for here.
+\fB
+.TP
+\fBSDL_VIDEODRIVER\fR, \fBSDL_AUDIODRIVER\fR
+See the SDL documentation for use of these.
+.SH AUTHORS
+Dean "deathz0r" Joseph
+.br
+Alex "AlexMax" Mayfield
+.br
+Ralph "Ralphis" Vickers
+.P
+This man page written by B. Watson for the SlackBuilds.org project,
+but it may be freely used by anyone for any purpose.
diff --git a/games/odamex/odamex.SlackBuild b/games/odamex/odamex.SlackBuild
new file mode 100644
index 0000000000000..9cdd6a5514122
--- /dev/null
+++ b/games/odamex/odamex.SlackBuild
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+# Slackware build script for odamex
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+PRGNAM=odamex
+VERSION=${VERSION:-0.5.6}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -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-src-$VERSION
+tar xvf $CWD/$PRGNAM-src-$VERSION.tar.bz2
+cd $PRGNAM-src-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+sed -i "s/-g -Wall -O2/$SLKCFLAGS/" Makefile
+
+# N.B. we want the game to look in /usr/share/games/doom for wad files,
+# to match the already-existing zdoom and prboom slackbuilds. Makefile
+# adds the /doom part to RESDIR itself. The patch adds this dir to the
+# default wad search path (otherwise we have to always run the game with
+# the -waddir option).
+
+patch -p1 < $CWD/waddir.diff
+
+make INSTALLDIR=/usr/games RESDIR=/usr/share/games
+make install INSTALLDIR=$PKG/usr/games RESDIR=$PKG/usr/share/games
+strip $PKG/usr/games/*
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/tech
+
+# The distributed docs are DOS CRLF text files, and they're executable. Ugh.
+for doc in CHANGELOG LICENSE MAINTAINERS README TODO odasrv.cfg; do
+ sed 's/\r//' < $doc > $PKG/usr/doc/$PRGNAM-$VERSION/$doc
+done
+mv $PKG/usr/doc/$PRGNAM-$VERSION/odasrv.cfg $PKG/usr/doc/$PRGNAM-$VERSION/odasrv.cfg.sample
+install -m0644 doc/tech/* $PKG/usr/doc/$PRGNAM-$VERSION/tech
+
+# Man page created for this slackbuild
+mkdir -p $PKG/usr/man/man6
+gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
+
+# Desktop stuff
+mkdir -p $PKG/usr/share/{applications,pixmaps}
+for exe in $PRGNAM odasrv odalaunch; do
+ sed -e '/^Encoding/d' -e 's,/usr/share/doom,/usr/share/games/doom,' \
+ < installer/arch/$exe.desktop \
+ > $PKG/usr/share/applications/$exe.desktop
+ cat media/icon_${exe}_512.png > $PKG/usr/share/pixmaps/$exe.png
+done
+
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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:-tgz}
diff --git a/games/odamex/odamex.info b/games/odamex/odamex.info
new file mode 100644
index 0000000000000..588fcdc9f9f20
--- /dev/null
+++ b/games/odamex/odamex.info
@@ -0,0 +1,10 @@
+PRGNAM="odamex"
+VERSION="0.5.6"
+HOMEPAGE="http://odamex.net/"
+DOWNLOAD="http://downloads.sourceforge.net/odamex/odamex-src-0.5.6.tar.bz2"
+MD5SUM="acc6aeac1ae9e4cd3504400a3a17178f"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
+APPROVED="rworkman"
diff --git a/games/odamex/slack-desc b/games/odamex/slack-desc
new file mode 100644
index 0000000000000..d6bb8da2b140f
--- /dev/null
+++ b/games/odamex/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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+odamex: Odamex (Online Doom Multiplayer Experience)
+odamex:
+odamex: Odamex (Online Doom Multiplayer Experience) is a modification of DOOM
+odamex: to allow players to compete with each other over the Internet using
+odamex: the client/server architecture.
+odamex:
+odamex:
+odamex:
+odamex:
+odamex:
+odamex:
diff --git a/games/odamex/waddir.diff b/games/odamex/waddir.diff
new file mode 100644
index 0000000000000..ea82a16778c0a
--- /dev/null
+++ b/games/odamex/waddir.diff
@@ -0,0 +1,22 @@
+diff -Naur odamex-src-0.5.6/client/src/d_main.cpp odamex-src-0.5.6.patched//client/src/d_main.cpp
+--- odamex-src-0.5.6/client/src/d_main.cpp 2011-11-05 00:00:05.000000000 -0400
++++ odamex-src-0.5.6.patched//client/src/d_main.cpp 2011-12-23 07:23:12.000000000 -0500
+@@ -845,6 +845,7 @@
+ D_AddSearchDir(dirs, getenv("DOOMWADPATH"), separator);
+ D_AddSearchDir(dirs, getenv("HOME"), separator);
+ D_AddSearchDir(dirs, waddirs.cstring(), separator);
++ D_AddSearchDir(dirs, "/usr/share/games/doom", separator);
+
+ dirs.erase(std::unique(dirs.begin(), dirs.end()), dirs.end());
+
+diff -Naur odamex-src-0.5.6/server/src/d_main.cpp odamex-src-0.5.6.patched//server/src/d_main.cpp
+--- odamex-src-0.5.6/server/src/d_main.cpp 2011-11-04 23:59:48.000000000 -0400
++++ odamex-src-0.5.6.patched//server/src/d_main.cpp 2011-12-23 07:22:56.000000000 -0500
+@@ -629,6 +629,7 @@
+ D_AddSearchDir(dirs, getenv("DOOMWADPATH"), separator);
+ D_AddSearchDir(dirs, getenv("HOME"), separator);
+ D_AddSearchDir(dirs, waddirs.cstring(), separator);
++ D_AddSearchDir(dirs, "/usr/share/games/doom", separator);
+
+
+ dirs.erase(std::unique(dirs.begin(), dirs.end()), dirs.end());