aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2014-08-28 21:19:58 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2014-08-30 14:19:24 +0700
commiteb48cf33be42ed2352797c40a91e43ac17e6ea74 (patch)
treec62cba7b2db54a487e226e797c9ab741ae8a1e05
parent1a8505d193d59137751c4ce060b215638fad8d22 (diff)
games/oblige-legacy4: Added (random level generator for FPS games).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--games/oblige-legacy4/Makefile.unixy209
-rw-r--r--games/oblige-legacy4/README25
-rw-r--r--games/oblige-legacy4/doinst.sh4
-rw-r--r--games/oblige-legacy4/oblige-legacy4.SlackBuild97
-rw-r--r--games/oblige-legacy4/oblige-legacy4.desktop8
-rw-r--r--games/oblige-legacy4/oblige-legacy4.info10
-rw-r--r--games/oblige-legacy4/oblige-legacy4.pngbin0 -> 15879 bytes
-rw-r--r--games/oblige-legacy4/slack-desc19
8 files changed, 372 insertions, 0 deletions
diff --git a/games/oblige-legacy4/Makefile.unixy b/games/oblige-legacy4/Makefile.unixy
new file mode 100644
index 000000000000..97486930c4b0
--- /dev/null
+++ b/games/oblige-legacy4/Makefile.unixy
@@ -0,0 +1,209 @@
+#----------------------------------------------------------------
+# OBLIGE
+#----------------------------------------------------------------
+#
+# GNU Makefile for Unix/Linux with system-wide install
+#
+# Using this makefile (make, make install) will place the
+# executable, script and data files in standard Unixy places.
+# The script and data files can be overridden by files in the
+# $HOME/.oblige-legacy4 directory.
+#
+# NOTE: a system-wide FLTK library is assumed
+#
+
+PROGRAM=oblige-legacy4
+
+# prefix choices: /usr /usr/local /opt
+INSTALL_PREFIX=/usr/local
+
+SCRIPT_DIR=$(INSTALL_PREFIX)/share/oblige-legacy4
+
+CXX=g++
+
+LIB_LOC=lib_linux
+OBJ_DIR=obj_linux
+
+OPTIMISE=-O2
+
+# operating system choices: UNIX WIN32
+OS=UNIX
+
+
+#--- Internal stuff from here -----------------------------------
+
+# assumes system-wide FLTK installation
+FLTK_CONFIG=fltk-config
+FLTK_FLAGS=$(shell $(FLTK_CONFIG) --cflags)
+FLTK_LIBS=$(shell $(FLTK_CONFIG) --use-images --ldflags)
+
+CXXFLAGS=$(OPTIMISE) -Wall -D$(OS) -Ilua_src -Iglbsp_src $(FLTK_FLAGS)
+LDFLAGS=-L/usr/X11R6/lib
+LIBS=-lm -lz $(FLTK_LIBS)
+
+CXXFLAGS += -DFHS_INSTALL
+
+
+#----- OBLIGE Objects ----------------------------------------------
+
+OBJS= $(OBJ_DIR)/main.o \
+ $(OBJ_DIR)/m_cookie.o \
+ $(OBJ_DIR)/m_lua.o \
+ $(OBJ_DIR)/m_spots.o \
+ $(OBJ_DIR)/lib_argv.o \
+ $(OBJ_DIR)/lib_file.o \
+ $(OBJ_DIR)/lib_signal.o \
+ $(OBJ_DIR)/lib_util.o \
+ $(OBJ_DIR)/lib_grp.o \
+ $(OBJ_DIR)/lib_pak.o \
+ $(OBJ_DIR)/lib_wad.o \
+ $(OBJ_DIR)/lib_zip.o \
+ $(OBJ_DIR)/sys_assert.o \
+ $(OBJ_DIR)/sys_debug.o \
+ $(OBJ_DIR)/img_bolt.o \
+ $(OBJ_DIR)/img_pill.o \
+ $(OBJ_DIR)/img_carve.o \
+ $(OBJ_DIR)/img_relief.o \
+ $(OBJ_DIR)/img_font1.o \
+ \
+ $(OBJ_DIR)/csg_bsp.o \
+ $(OBJ_DIR)/csg_clip.o \
+ $(OBJ_DIR)/csg_main.o \
+ $(OBJ_DIR)/csg_doom.o \
+ $(OBJ_DIR)/csg_nukem.o \
+ $(OBJ_DIR)/csg_quake.o \
+ $(OBJ_DIR)/dm_extra.o \
+ $(OBJ_DIR)/g_doom.o \
+ $(OBJ_DIR)/g_nukem.o \
+ $(OBJ_DIR)/g_quake.o \
+ $(OBJ_DIR)/g_quake2.o \
+ $(OBJ_DIR)/g_wolf.o \
+ $(OBJ_DIR)/q_common.o \
+ $(OBJ_DIR)/q_light.o \
+ $(OBJ_DIR)/q_tjuncs.o \
+ $(OBJ_DIR)/q_vis.o \
+ $(OBJ_DIR)/vis_buffer.o \
+ \
+ $(OBJ_DIR)/twister.o \
+ $(OBJ_DIR)/tx_forge.o \
+ $(OBJ_DIR)/tx_skies.o \
+ $(OBJ_DIR)/ui_about.o \
+ $(OBJ_DIR)/ui_build.o \
+ $(OBJ_DIR)/ui_chooser.o \
+ $(OBJ_DIR)/ui_console.o \
+ $(OBJ_DIR)/ui_dialog.o \
+ $(OBJ_DIR)/ui_game.o \
+ $(OBJ_DIR)/ui_hyper.o \
+ $(OBJ_DIR)/ui_level.o \
+ $(OBJ_DIR)/ui_map.o \
+ $(OBJ_DIR)/ui_module.o \
+ $(OBJ_DIR)/ui_rchoice.o \
+ $(OBJ_DIR)/ui_play.o \
+ $(OBJ_DIR)/ui_window.o
+
+$(OBJ_DIR)/%.o: gui/%.cc
+ $(CXX) $(CXXFLAGS) -o $@ -c $<
+
+
+#----- LUA Objects --------------------------------------------------
+
+LUA_OBJS=\
+ $(OBJ_DIR)/lua/lapi.o \
+ $(OBJ_DIR)/lua/lcode.o \
+ $(OBJ_DIR)/lua/ldebug.o \
+ $(OBJ_DIR)/lua/ldo.o \
+ $(OBJ_DIR)/lua/ldump.o \
+ $(OBJ_DIR)/lua/lfunc.o \
+ $(OBJ_DIR)/lua/lgc.o \
+ $(OBJ_DIR)/lua/llex.o \
+ $(OBJ_DIR)/lua/lmem.o \
+ $(OBJ_DIR)/lua/lobject.o \
+ $(OBJ_DIR)/lua/lopcodes.o \
+ $(OBJ_DIR)/lua/lparser.o \
+ $(OBJ_DIR)/lua/lstate.o \
+ $(OBJ_DIR)/lua/lstring.o \
+ $(OBJ_DIR)/lua/ltable.o \
+ $(OBJ_DIR)/lua/ltm.o \
+ $(OBJ_DIR)/lua/lundump.o \
+ $(OBJ_DIR)/lua/lvm.o \
+ $(OBJ_DIR)/lua/lzio.o \
+ \
+ $(OBJ_DIR)/lua/lauxlib.o \
+ $(OBJ_DIR)/lua/lbaselib.o \
+ $(OBJ_DIR)/lua/ldblib.o \
+ $(OBJ_DIR)/lua/liolib.o \
+ $(OBJ_DIR)/lua/lmathlib.o \
+ $(OBJ_DIR)/lua/loslib.o \
+ $(OBJ_DIR)/lua/ltablib.o \
+ $(OBJ_DIR)/lua/lstrlib.o \
+ $(OBJ_DIR)/lua/loadlib.o \
+ $(OBJ_DIR)/lua/linit.o
+
+LUA_CXXFLAGS=$(OPTIMISE) -Wall -DLUA_ANSI
+
+$(OBJ_DIR)/lua/%.o: lua_src/%.cc
+ $(CXX) $(LUA_CXXFLAGS) -o $@ -c $<
+
+
+#----- glBSP Objects ------------------------------------------------
+
+GLBSP_OBJS= \
+ $(OBJ_DIR)/glbsp/analyze.o \
+ $(OBJ_DIR)/glbsp/blockmap.o \
+ $(OBJ_DIR)/glbsp/glbsp.o \
+ $(OBJ_DIR)/glbsp/level.o \
+ $(OBJ_DIR)/glbsp/node.o \
+ $(OBJ_DIR)/glbsp/reject.o \
+ $(OBJ_DIR)/glbsp/seg.o \
+ $(OBJ_DIR)/glbsp/system.o \
+ $(OBJ_DIR)/glbsp/util.o \
+ $(OBJ_DIR)/glbsp/wad.o
+
+GLBSP_CXXFLAGS=$(OPTIMISE) -Wall -DINLINE_G=inline
+
+$(OBJ_DIR)/glbsp/%.o: glbsp_src/%.cc
+ $(CXX) $(GLBSP_CXXFLAGS) -o $@ -c $<
+
+
+#----- Targets ----------------------------------------------------
+
+all: $(PROGRAM)
+
+clean:
+ rm -f $(PROGRAM) $(OBJ_DIR)/*.o ERRS
+ rm -f $(OBJ_DIR)/lua/*.o
+ rm -f $(OBJ_DIR)/glbsp/*.o
+
+$(PROGRAM): $(OBJS) $(LUA_OBJS) $(GLBSP_OBJS)
+ $(CXX) $^ -o $@ $(LDFLAGS) $(LIBS)
+
+stripped: $(PROGRAM)
+ strip --strip-unneeded $(PROGRAM)
+
+install: stripped
+ install -o root -m 755 $(PROGRAM) $(INSTALL_PREFIX)/bin/
+ install -d $(SCRIPT_DIR)/scripts
+ install -d $(SCRIPT_DIR)/data
+ install -d $(SCRIPT_DIR)/data/doom1_boss
+ install -d $(SCRIPT_DIR)/data/doom2_boss
+ install -d $(SCRIPT_DIR)/games
+ install -d $(SCRIPT_DIR)/engines
+ install -d $(SCRIPT_DIR)/modules
+ install -d $(SCRIPT_DIR)/prefabs
+ install -o root -m 644 scripts/*.lua $(SCRIPT_DIR)/scripts
+ install -o root -m 644 data/*.* $(SCRIPT_DIR)/data
+ install -o root -m 644 data/doom1_boss/*.* $(SCRIPT_DIR)/data/doom1_boss
+ install -o root -m 644 data/doom2_boss/*.* $(SCRIPT_DIR)/data/doom2_boss
+ install -o root -m 644 games/*.lua $(SCRIPT_DIR)/games
+ install -o root -m 644 engines/*.lua $(SCRIPT_DIR)/engines
+ install -o root -m 644 modules/*.lua $(SCRIPT_DIR)/modules
+ install -o root -m 644 prefabs/*.lua $(SCRIPT_DIR)/prefabs
+
+uninstall:
+ rm -v $(INSTALL_PREFIX)/bin/$(PROGRAM)
+ rm -Rv $(SCRIPT_DIR)
+
+.PHONY: all clean stripped install uninstall
+
+#--- editor settings ------------
+# vi:ts=8:sw=8:noexpandtab
diff --git a/games/oblige-legacy4/README b/games/oblige-legacy4/README
new file mode 100644
index 000000000000..fa5899fad37b
--- /dev/null
+++ b/games/oblige-legacy4/README
@@ -0,0 +1,25 @@
+OBLIGE v4 is a random level generator for various classic games, including
+DOOM, DOOM II, Heretic, and Quake. The goal is to produce high quality
+levels which are fun to play.
+
+This is an older version of oblige, with support for Heretic and Quake.
+If you want the latest version (6.x), install oblige. It can coexist
+with this version, but lacks support for Heretic and Quake. 6.x also uses
+a different alrogithm for level generation.
+
+A Doom (or Heretic, or Quake) engine is required if you actually want to
+play the levels you generate. Currently there are builds on SBo for zdoom,
+gzdoom, prboom, chocolate-doom, odamex, skulltag, and maybe a few more.
+
+Also required: the data file(s) for whichever game(s) you're playing
+(registered versions, not shareware):
+
+Game: File:
+Doom doom.wad
+Doom II doom2.wad
+FreeDoom freedoom.wad, from SBo freedoom build
+Ultimate Doom doom.wad or doomu.wad (?)
+TNT Evilution tnt.wad
+Plutonia plutonia.wad
+Heretic heretic.wad
+Quake pak0.pak and pak1.pak
diff --git a/games/oblige-legacy4/doinst.sh b/games/oblige-legacy4/doinst.sh
new file mode 100644
index 000000000000..4e8ba7071dea
--- /dev/null
+++ b/games/oblige-legacy4/doinst.sh
@@ -0,0 +1,4 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
diff --git a/games/oblige-legacy4/oblige-legacy4.SlackBuild b/games/oblige-legacy4/oblige-legacy4.SlackBuild
new file mode 100644
index 000000000000..537ec4a8993a
--- /dev/null
+++ b/games/oblige-legacy4/oblige-legacy4.SlackBuild
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+# Slackware build script for oblige-legacy4
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# 20140827 bkw:
+# - rename this build to oblige-legacy4 so we can update oblige to v6.
+# keep both around for now, as v6 lacks heretic/quake support.
+
+# 20140213 bkw: bump BUILD to 2.
+# Makefile.unixy updated so it installs data/doom[12]_boss (thanks to Black
+# Rider for the bug report). Also get rid of +x permissions on the data files
+# in /usr/share.
+
+PRGNAM=oblige-legacy4
+VERSION=${VERSION:-4.28b}
+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
+
+OLDNAM="oblige"
+SRCVER=${VERSION//./}
+SRCNAM="Oblige" # grrrr!
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr/bin $PKG/usr/share/$PRGNAM $OUTPUT
+cd $TMP
+rm -rf ${SRCNAM}-${VERSION}-source
+unzip $CWD/$OLDNAM-$SRCVER-source.zip
+cd ${SRCNAM}-${VERSION}-source
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \;
+
+# Makefile.unixy originally came from the oblige author, I've hacked
+# it up to make it work with oblige 4.x and SBo's fltk13.
+cp $CWD/Makefile.unixy Makefile
+
+# Fix a missing include
+sed -i '1i#include <unistd.h>' gui/lib_util.cc
+
+# Legacy version shouldn't use same /usr/share and dotfile dir as
+# current version.
+sed -i "s,\.$OLDNAM,.$PRGNAM,g" doc/File_Layout.txt gui/main.cc
+sed -i "s,share/$OLDNAM,share/$PRGNAM," gui/main.cc
+
+make INSTALL_PREFIX=/usr OPTIMISE="$SLKCFLAGS" FLTK_CONFIG=fltk13-config
+make install INSTALL_PREFIX=$PKG/usr
+
+mkdir -p $PKG/usr/share/pixmaps $PKG/usr/share/applications
+cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
+cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp *.txt doc/*.txt $PKG/usr/doc/$PRGNAM-$VERSION
+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/oblige-legacy4/oblige-legacy4.desktop b/games/oblige-legacy4/oblige-legacy4.desktop
new file mode 100644
index 000000000000..d1fca99d6c6f
--- /dev/null
+++ b/games/oblige-legacy4/oblige-legacy4.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Oblige (Legacy Version)
+GenericName=Doom/Heretic/Quake Level Generator
+Icon=oblige-legacy4
+Exec=oblige-legacy4 %f
+Terminal=false
+Categories=Game;ActionGame;Utility;
diff --git a/games/oblige-legacy4/oblige-legacy4.info b/games/oblige-legacy4/oblige-legacy4.info
new file mode 100644
index 000000000000..2b54ef88a344
--- /dev/null
+++ b/games/oblige-legacy4/oblige-legacy4.info
@@ -0,0 +1,10 @@
+PRGNAM="oblige-legacy4"
+VERSION="4.28b"
+HOMEPAGE="http://oblige.sourceforge.net/"
+DOWNLOAD="http://downloads.sourceforge.net/project/oblige/Oblige/4.28/oblige-428b-source.zip"
+MD5SUM="ae89031dcff12958bb866505c266c49f"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="fltk13"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/games/oblige-legacy4/oblige-legacy4.png b/games/oblige-legacy4/oblige-legacy4.png
new file mode 100644
index 000000000000..7d6b6a0f6656
--- /dev/null
+++ b/games/oblige-legacy4/oblige-legacy4.png
Binary files differ
diff --git a/games/oblige-legacy4/slack-desc b/games/oblige-legacy4/slack-desc
new file mode 100644
index 000000000000..7b383c187ab9
--- /dev/null
+++ b/games/oblige-legacy4/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------------------------------------------------------|
+oblige-legacy4: oblige-legacy4 (random level generator for classic FPS games)
+oblige-legacy4:
+oblige-legacy4: OBLIGE is a random level generator for various classic games,
+oblige-legacy4: including DOOM, DOOM II, Heretic, and Quake. The goal is to produce
+oblige-legacy4: high quality levels which are fun to play.
+oblige-legacy4:
+oblige-legacy4: This is an older version with support for Heretic and Quake.
+oblige-legacy4:
+oblige-legacy4:
+oblige-legacy4:
+oblige-legacy4: