From eb48cf33be42ed2352797c40a91e43ac17e6ea74 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 28 Aug 2014 21:19:58 +0700 Subject: games/oblige-legacy4: Added (random level generator for FPS games). Signed-off-by: Willy Sudiarto Raharjo --- games/oblige-legacy4/Makefile.unixy | 209 +++++++++++++++++++++++++ games/oblige-legacy4/README | 25 +++ games/oblige-legacy4/doinst.sh | 4 + games/oblige-legacy4/oblige-legacy4.SlackBuild | 97 ++++++++++++ games/oblige-legacy4/oblige-legacy4.desktop | 8 + games/oblige-legacy4/oblige-legacy4.info | 10 ++ games/oblige-legacy4/oblige-legacy4.png | Bin 0 -> 15879 bytes games/oblige-legacy4/slack-desc | 19 +++ 8 files changed, 372 insertions(+) create mode 100644 games/oblige-legacy4/Makefile.unixy create mode 100644 games/oblige-legacy4/README create mode 100644 games/oblige-legacy4/doinst.sh create mode 100644 games/oblige-legacy4/oblige-legacy4.SlackBuild create mode 100644 games/oblige-legacy4/oblige-legacy4.desktop create mode 100644 games/oblige-legacy4/oblige-legacy4.info create mode 100644 games/oblige-legacy4/oblige-legacy4.png create mode 100644 games/oblige-legacy4/slack-desc diff --git a/games/oblige-legacy4/Makefile.unixy b/games/oblige-legacy4/Makefile.unixy new file mode 100644 index 0000000000..97486930c4 --- /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 0000000000..fa5899fad3 --- /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 0000000000..4e8ba7071d --- /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 0000000000..537ec4a899 --- /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 ' 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 0000000000..d1fca99d6c --- /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 0000000000..2b54ef88a3 --- /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 0000000000..7d6b6a0f66 Binary files /dev/null and b/games/oblige-legacy4/oblige-legacy4.png differ diff --git a/games/oblige-legacy4/slack-desc b/games/oblige-legacy4/slack-desc new file mode 100644 index 0000000000..7b383c187a --- /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: -- cgit v1.2.3