diff options
author | B. Watson <yalhcru@gmail.com> | 2012-01-15 23:21:38 -0600 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2012-01-15 23:21:38 -0600 |
commit | 9daa6f9f29d694e2482ca75bce19a19dabfaed81 (patch) | |
tree | 93ddb2dd01d326a7dc7ef9b5fb4735b1b4ee531a | |
parent | fa40eb3d306cada6a7d06c40aab779a93ff9769d (diff) | |
download | slackbuilds-9daa6f9f29d694e2482ca75bce19a19dabfaed81.tar.gz |
games/odamex: Added (Online Doom Multiplayer Experience)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
-rw-r--r-- | games/odamex/README | 18 | ||||
-rw-r--r-- | games/odamex/doinst.sh | 10 | ||||
-rw-r--r-- | games/odamex/odamex.6 | 212 | ||||
-rw-r--r-- | games/odamex/odamex.SlackBuild | 97 | ||||
-rw-r--r-- | games/odamex/odamex.info | 10 | ||||
-rw-r--r-- | games/odamex/slack-desc | 19 | ||||
-rw-r--r-- | games/odamex/waddir.diff | 22 |
7 files changed, 388 insertions, 0 deletions
diff --git a/games/odamex/README b/games/odamex/README new file mode 100644 index 0000000000..9e096a8886 --- /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 0000000000..1f8ff67ded --- /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 0000000000..fb01805d3f --- /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 0000000000..9cdd6a5514 --- /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 0000000000..588fcdc9f9 --- /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 0000000000..d6bb8da2b1 --- /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 0000000000..ea82a16778 --- /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());
|