games/odamex: Added (Online Doom Multiplayer Experience)

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
B. Watson 2012-01-15 23:21:38 -06:00 committed by Robby Workman
parent fa40eb3d30
commit 9daa6f9f29
7 changed files with 388 additions and 0 deletions

18
games/odamex/README Normal file
View file

@ -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).

10
games/odamex/doinst.sh Normal file
View file

@ -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

212
games/odamex/odamex.6 Normal file
View file

@ -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.

View file

@ -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}

10
games/odamex/odamex.info Normal file
View file

@ -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"

19
games/odamex/slack-desc Normal file
View 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 ':'.
|-----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:

22
games/odamex/waddir.diff Normal file
View file

@ -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());