From eee86e8329d10433ccacf7c939bff2cc28f1d3b6 Mon Sep 17 00:00:00 2001 From: B. Watson Date: Sat, 6 Sep 2014 00:41:31 +0700 Subject: games/wolf4sdl: Added (Wolfenstein 3D engine). Signed-off-by: Willy Sudiarto Raharjo --- games/wolf4sdl/README | 12 ++ games/wolf4sdl/datadir.diff | 312 ++++++++++++++++++++++++++++ games/wolf4sdl/doinst.sh | 3 + games/wolf4sdl/exename.diff | 32 +++ games/wolf4sdl/slack-desc | 19 ++ games/wolf4sdl/wolf4sdl-spear-demo.desktop | 8 + games/wolf4sdl/wolf4sdl-spear-full.desktop | 8 + games/wolf4sdl/wolf4sdl-wolf3d-demo.desktop | 8 + games/wolf4sdl/wolf4sdl-wolf3d-full.desktop | 8 + games/wolf4sdl/wolf4sdl.6 | 229 ++++++++++++++++++++ games/wolf4sdl/wolf4sdl.SlackBuild | 138 ++++++++++++ games/wolf4sdl/wolf4sdl.info | 14 ++ games/wolf4sdl/wolf4sdl.png | Bin 0 -> 753 bytes 13 files changed, 791 insertions(+) create mode 100644 games/wolf4sdl/README create mode 100644 games/wolf4sdl/datadir.diff create mode 100644 games/wolf4sdl/doinst.sh create mode 100644 games/wolf4sdl/exename.diff create mode 100644 games/wolf4sdl/slack-desc create mode 100644 games/wolf4sdl/wolf4sdl-spear-demo.desktop create mode 100644 games/wolf4sdl/wolf4sdl-spear-full.desktop create mode 100644 games/wolf4sdl/wolf4sdl-wolf3d-demo.desktop create mode 100644 games/wolf4sdl/wolf4sdl-wolf3d-full.desktop create mode 100644 games/wolf4sdl/wolf4sdl.6 create mode 100644 games/wolf4sdl/wolf4sdl.SlackBuild create mode 100644 games/wolf4sdl/wolf4sdl.info create mode 100644 games/wolf4sdl/wolf4sdl.png (limited to 'games') diff --git a/games/wolf4sdl/README b/games/wolf4sdl/README new file mode 100644 index 0000000000..ba2a6454f9 --- /dev/null +++ b/games/wolf4sdl/README @@ -0,0 +1,12 @@ +wolf4sdl (Wolfenstein 3D engine) + +Wolf4SDL is an open-source SDL port of id Software's classic first-person +shooter Wolfenstein 3D. It is meant to keep the original feel while +taking advantage of some modern improvements. + +This build includes the game data files from the shareware/demo versions +of Wolfenstein 3D and its sequel Spear of Destiny. + +To play the full versions of the games, you need the *.wl*, *.sod, +and/or *.sd* files from your installed copies of the games. Copy them to +"/usr/share/games/wolf3d". Filenames must be all-lowercase. diff --git a/games/wolf4sdl/datadir.diff b/games/wolf4sdl/datadir.diff new file mode 100644 index 0000000000..b62ea0be08 --- /dev/null +++ b/games/wolf4sdl/datadir.diff @@ -0,0 +1,312 @@ +diff -Naur Wolf4SDL-1.7-src.orig//Makefile Wolf4SDL-1.7-src/Makefile +--- Wolf4SDL-1.7-src.orig//Makefile 2008-02-18 01:54:38.000000000 -0500 ++++ Wolf4SDL-1.7-src/Makefile 2012-01-13 16:43:43.000000000 -0500 +@@ -17,6 +17,7 @@ + LDFLAGS_SDL ?= $(shell $(SDL_CONFIG) --libs) + + ++CFLAGS += -DPREFIX='"$(PREFIX)"' + CFLAGS += $(CFLAGS_SDL) + + #CFLAGS += -Wall +@@ -64,6 +65,7 @@ + SRCS += wl_play.cpp + SRCS += wl_state.cpp + SRCS += wl_text.cpp ++SRCS += datafile.cpp + + DEPS = $(filter %.d, $(SRCS:.c=.d) $(SRCS:.cpp=.d)) + OBJS = $(filter %.o, $(SRCS:.c=.o) $(SRCS:.cpp=.o)) +diff -Naur Wolf4SDL-1.7-src.orig//datafile.cpp Wolf4SDL-1.7-src/datafile.cpp +--- Wolf4SDL-1.7-src.orig//datafile.cpp 1969-12-31 19:00:00.000000000 -0500 ++++ Wolf4SDL-1.7-src/datafile.cpp 2012-01-13 16:41:32.000000000 -0500 +@@ -0,0 +1,60 @@ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "datafile.h" ++ ++static char *datapath = NULL; ++ ++static void set_data_path(void) { ++ if(datapath) return; ++ datapath = getenv("WOLF4PATH"); ++ if(datapath) return; ++ ++ // 20120113 bkw: should this be "C:\\WOLF3D" on Windows? ++ datapath = (char *)PREFIX "/share/games/wolf3d"; ++} ++ ++int datafile_exists(const char *file) { ++ char datafile[PATH_MAX]; ++ struct stat statbuf; ++ ++ set_data_path(); ++ ++ if(stat(file, &statbuf)) ++ return 1; ++ ++ sprintf(datafile, "%s/%s", datapath, file); ++ return stat(datafile, &statbuf); ++} ++ ++int datafile_open(const char *file, int flags) { ++ char datafile[PATH_MAX]; ++ int handle; ++ ++ set_data_path(); ++ ++ if( (handle = open(file, flags)) > 0 ) ++ return handle; ++ ++ sprintf(datafile, "%s/%s", datapath, file); ++ return open(datafile, flags); ++} ++ ++FILE *datafile_fopen(const char *file, const char *mode) { ++ char datafile[PATH_MAX]; ++ FILE *f; ++ ++ set_data_path(); ++ ++ if( (f = fopen(file, mode)) ) ++ return f; ++ ++ sprintf(datafile, "%s/%s", datapath, file); ++ return fopen(datafile, mode); ++} +diff -Naur Wolf4SDL-1.7-src.orig//datafile.h Wolf4SDL-1.7-src/datafile.h +--- Wolf4SDL-1.7-src.orig//datafile.h 1969-12-31 19:00:00.000000000 -0500 ++++ Wolf4SDL-1.7-src/datafile.h 2012-01-13 16:41:41.000000000 -0500 +@@ -0,0 +1,22 @@ ++ ++#include ++/* ++20120113 bkw: ++Functions for loading game data files. ++ ++All these functions search for files in: ++ ++- The current directory ++- The directory specified by $WOLF4PATH if set ++- If WOLF4PATH not set, fall back to PREFIX/share/games/wolf3d ++ ++*/ ++ ++/* returns true if file exists in the data path, otherwise false */ ++int datafile_exists(const char *file); ++ ++/* returns a filehandle to the file if found, or -1 if not */ ++int datafile_open(const char *file, int flags); ++ ++/* returns a FILE* if found, or NULL if not */ ++FILE *datafile_fopen(const char *file, const char *mode); +diff -Naur Wolf4SDL-1.7-src.orig//id_ca.cpp Wolf4SDL-1.7-src/id_ca.cpp +--- Wolf4SDL-1.7-src.orig//id_ca.cpp 2009-02-24 15:13:22.000000000 -0500 ++++ Wolf4SDL-1.7-src/id_ca.cpp 2012-01-13 16:40:25.000000000 -0500 +@@ -24,6 +24,7 @@ + #include + #endif + ++#include "datafile.h" + #include "wl_def.h" + #pragma hdrstop + +@@ -185,7 +186,7 @@ + { + int32_t size; + +- const int handle = open(filename, O_RDONLY | O_BINARY); ++ const int handle = datafile_open(filename, O_RDONLY | O_BINARY); + if (handle == -1) + return false; + +@@ -463,7 +464,7 @@ + strcpy(fname,gdictname); + strcat(fname,graphext); + +- handle = open(fname, O_RDONLY | O_BINARY); ++ handle = datafile_open(fname, O_RDONLY | O_BINARY); + if (handle == -1) + CA_CannotOpen(fname); + +@@ -474,7 +475,7 @@ + strcpy(fname,gheadname); + strcat(fname,graphext); + +- handle = open(fname, O_RDONLY | O_BINARY); ++ handle = datafile_open(fname, O_RDONLY | O_BINARY); + if (handle == -1) + CA_CannotOpen(fname); + +@@ -513,7 +514,7 @@ + strcpy(fname,gfilename); + strcat(fname,graphext); + +- grhandle = open(fname, O_RDONLY | O_BINARY); ++ grhandle = datafile_open(fname, O_RDONLY | O_BINARY); + if (grhandle == -1) + CA_CannotOpen(fname); + +@@ -555,7 +556,7 @@ + strcpy(fname,mheadname); + strcat(fname,extension); + +- handle = open(fname, O_RDONLY | O_BINARY); ++ handle = datafile_open(fname, O_RDONLY | O_BINARY); + if (handle == -1) + CA_CannotOpen(fname); + +@@ -574,14 +575,14 @@ + strcpy(fname, "gamemaps."); + strcat(fname, extension); + +- maphandle = open(fname, O_RDONLY | O_BINARY); ++ maphandle = datafile_open(fname, O_RDONLY | O_BINARY); + if (maphandle == -1) + CA_CannotOpen(fname); + #else + strcpy(fname,mfilename); + strcat(fname,extension); + +- maphandle = open(fname, O_RDONLY | O_BINARY); ++ maphandle = datafile_open(fname, O_RDONLY | O_BINARY); + if (maphandle == -1) + CA_CannotOpen(fname); + #endif +@@ -646,7 +647,7 @@ + strcpy(fname,afilename); + strcat(fname,audioext); + +- audiohandle = open(fname, O_RDONLY | O_BINARY); ++ audiohandle = datafile_open(fname, O_RDONLY | O_BINARY); + if (audiohandle == -1) + CA_CannotOpen(fname); + } +diff -Naur Wolf4SDL-1.7-src.orig//id_pm.cpp Wolf4SDL-1.7-src/id_pm.cpp +--- Wolf4SDL-1.7-src.orig//id_pm.cpp 2008-05-25 04:40:50.000000000 -0400 ++++ Wolf4SDL-1.7-src/id_pm.cpp 2012-01-13 16:42:23.000000000 -0500 +@@ -1,3 +1,4 @@ ++#include "datafile.h" + #include "wl_def.h" + + int ChunksInFile; +@@ -19,7 +20,7 @@ + char fname[13] = "vswap."; + strcat(fname,extension); + +- FILE *file = fopen(fname,"rb"); ++ FILE *file = datafile_fopen(fname,"rb"); + if(!file) + CA_CannotOpen(fname); + +diff -Naur Wolf4SDL-1.7-src.orig//wl_menu.cpp Wolf4SDL-1.7-src/wl_menu.cpp +--- Wolf4SDL-1.7-src.orig//wl_menu.cpp 2010-11-01 13:17:58.000000000 -0400 ++++ Wolf4SDL-1.7-src/wl_menu.cpp 2012-01-13 16:55:02.000000000 -0500 +@@ -14,6 +14,7 @@ + #include + #endif + ++#include "datafile.h" + #include "wl_def.h" + #pragma hdrstop + +@@ -4029,12 +4030,12 @@ + // + #ifdef JAPAN + #ifdef JAPDEMO +- if(!stat("vswap.wj1", &statbuf)) ++ if(datafile_exists("vswap.wj1")) + { + strcpy (extension, "wj1"); + numEpisodesMissing = 5; + #else +- if(!stat("vswap.wj6", &statbuf)) ++ if(datafile_exists("vswap.wj6")) + { + strcpy (extension, "wj6"); + #endif +@@ -4052,7 +4053,7 @@ + // ENGLISH + // + #ifdef UPLOAD +- if(!stat("vswap.wl1", &statbuf)) ++ if(datafile_exists("vswap.wl1")) + { + strcpy (extension, "wl1"); + numEpisodesMissing = 5; +@@ -4061,7 +4062,7 @@ + Quit ("NO WOLFENSTEIN 3-D DATA FILES to be found!"); + #else + #ifndef SPEAR +- if(!stat("vswap.wl6", &statbuf)) ++ if(datafile_exists("vswap.wl6")) + { + strcpy (extension, "wl6"); + NewEmenu[2].active = +@@ -4074,7 +4075,7 @@ + } + else + { +- if(!stat("vswap.wl3", &statbuf)) ++ if(datafile_exists("vswap.wl3")) + { + strcpy (extension, "wl3"); + numEpisodesMissing = 3; +@@ -4082,7 +4083,7 @@ + } + else + { +- if(!stat("vswap.wl1", &statbuf)) ++ if(datafile_exists("vswap.wl1")) + { + strcpy (extension, "wl1"); + numEpisodesMissing = 5; +@@ -4099,28 +4100,28 @@ + #ifndef SPEARDEMO + if(param_mission == 0) + { +- if(!stat("vswap.sod", &statbuf)) ++ if(datafile_exists("vswap.sod")) + strcpy (extension, "sod"); + else + Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); + } + else if(param_mission == 1) + { +- if(!stat("vswap.sd1", &statbuf)) ++ if(datafile_exists("vswap.sd1")) + strcpy (extension, "sd1"); + else + Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); + } + else if(param_mission == 2) + { +- if(!stat("vswap.sd2", &statbuf)) ++ if(datafile_exists("vswap.sd2")) + strcpy (extension, "sd2"); + else + Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); + } + else if(param_mission == 3) + { +- if(!stat("vswap.sd3", &statbuf)) ++ if(datafile_exists("vswap.sd3")) + strcpy (extension, "sd3"); + else + Quit ("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); +@@ -4130,7 +4131,7 @@ + strcpy (graphext, "sod"); + strcpy (audioext, "sod"); + #else +- if(!stat("vswap.sdm", &statbuf)) ++ if(datafile_exists("vswap.sdm")) + { + strcpy (extension, "sdm"); + } diff --git a/games/wolf4sdl/doinst.sh b/games/wolf4sdl/doinst.sh new file mode 100644 index 0000000000..5fb28930db --- /dev/null +++ b/games/wolf4sdl/doinst.sh @@ -0,0 +1,3 @@ +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/wolf4sdl/exename.diff b/games/wolf4sdl/exename.diff new file mode 100644 index 0000000000..2c1f249aa4 --- /dev/null +++ b/games/wolf4sdl/exename.diff @@ -0,0 +1,32 @@ +diff -Naur Wolf4SDL-1.7-src/wl_main.cpp Wolf4SDL-1.7-src.patched/wl_main.cpp +--- Wolf4SDL-1.7-src/wl_main.cpp 2011-05-15 23:11:34.000000000 -0400 ++++ Wolf4SDL-1.7-src.patched/wl_main.cpp 2014-09-05 12:06:24.000000000 -0400 +@@ -1678,6 +1678,10 @@ + bool hasError = false, showHelp = false; + bool sampleRateGiven = false, audioBufferGiven = false; + int defaultSampleRate = param_samplerate; ++ char *exename = argv[0], *p; ++ ++ for (p = argv[0]; *p; p++) ++ if (*p == '/') exename = p + 1; + + for(int i = 1; i < argc; i++) + { +@@ -1884,7 +1888,7 @@ + "Wolf4SDL v1.7 ($Revision: 256 $)\n" + "Ported by Chaos-Software (http://www.chaos-software.de.vu)\n" + "Original Wolfenstein 3D by id Software\n\n" +- "Usage: Wolf4SDL [options]\n" ++ "Usage: %s [options]\n" + "Options:\n" + " --help This help page\n" + " --tedlevel Starts the game in the given level\n" +@@ -1923,7 +1927,7 @@ + " (default: 0 -> .sod, 1-3 -> .sd*)\n" + " --goodtimes Disable copy protection quiz\n" + #endif +- , defaultSampleRate ++ , exename, defaultSampleRate + ); + exit(1); + } diff --git a/games/wolf4sdl/slack-desc b/games/wolf4sdl/slack-desc new file mode 100644 index 0000000000..4542afafa5 --- /dev/null +++ b/games/wolf4sdl/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------------------------------------------------------| +wolf4sdl: wolf4sdl (Wolfenstein 3D engine) +wolf4sdl: +wolf4sdl: Wolf4SDL is an open-source SDL port of id Software's classic +wolf4sdl: first-person shooter Wolfenstein 3D. It is meant to keep the original +wolf4sdl: feel while taking advantage of some modern improvements. +wolf4sdl: +wolf4sdl: +wolf4sdl: +wolf4sdl: +wolf4sdl: +wolf4sdl: diff --git a/games/wolf4sdl/wolf4sdl-spear-demo.desktop b/games/wolf4sdl/wolf4sdl-spear-demo.desktop new file mode 100644 index 0000000000..f887d96f7c --- /dev/null +++ b/games/wolf4sdl/wolf4sdl-spear-demo.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Wolf3D Spear of Destiny (Demo) +Icon=wolf4sdl +TryExec=wolf4sdl-spear-demo +Exec=wolf4sdl-spear-demo --windowed-mouse --res 960 720 +Terminal=false +Categories=Game;ActionGame; diff --git a/games/wolf4sdl/wolf4sdl-spear-full.desktop b/games/wolf4sdl/wolf4sdl-spear-full.desktop new file mode 100644 index 0000000000..3d5ae3431f --- /dev/null +++ b/games/wolf4sdl/wolf4sdl-spear-full.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Wolf3D Spear of Destiny (Full Version) +Icon=wolf4sdl +TryExec=wolf4sdl-spear-full +Exec=wolf4sdl-spear-full --windowed-mouse --res 960 720 +Terminal=false +Categories=Game;ActionGame; diff --git a/games/wolf4sdl/wolf4sdl-wolf3d-demo.desktop b/games/wolf4sdl/wolf4sdl-wolf3d-demo.desktop new file mode 100644 index 0000000000..5c01461180 --- /dev/null +++ b/games/wolf4sdl/wolf4sdl-wolf3d-demo.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Wolfenstein 3D (Demo) +Icon=wolf4sdl +TryExec=wolf4sdl-wolf3d-demo +Exec=wolf4sdl-wolf3d-demo --windowed-mouse --res 960 720 +Terminal=false +Categories=Game;ActionGame; diff --git a/games/wolf4sdl/wolf4sdl-wolf3d-full.desktop b/games/wolf4sdl/wolf4sdl-wolf3d-full.desktop new file mode 100644 index 0000000000..1e8a37c764 --- /dev/null +++ b/games/wolf4sdl/wolf4sdl-wolf3d-full.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Wolfenstein 3D (Full Version) +Icon=wolf4sdl +TryExec=wolf4sdl-wolf3d-full +Exec=wolf4sdl-wolf3d-full --windowed-mouse --res 960 720 +Terminal=false +Categories=Game;ActionGame; diff --git a/games/wolf4sdl/wolf4sdl.6 b/games/wolf4sdl/wolf4sdl.6 new file mode 100644 index 0000000000..b65e1f88df --- /dev/null +++ b/games/wolf4sdl/wolf4sdl.6 @@ -0,0 +1,229 @@ +.TH WOLF4SDL "6" "March 2010" "wolf4sdl" "Games" +.SH NAME +Wolf4SDL \- Game engine for Wolfenstein 3D and Spear of Destiny +.SH SYNOPSIS +.B wolf4sdl\-wolf\-demo +[\fIoptions\fR] +.br +.B wolf4sdl\-wolf\-full +[\fIoptions\fR] +.br +.B wolf4sdl\-spear\-demo +[\fIoptions\fR] +.br +.B wolf4sdl\-spear\-full +[\fIoptions\fR] +.br +.SH DESCRIPTION +Wolf4SDL is an open\-source port of id Software's classic first\-person +shooter Wolfenstein 3D to the cross\-platform multimedia library "Simple +DirectMedia Layer (SDL)" (http://www.libsdl.org). It is meant to keep +the original feel while taking advantage of some modern improvements. +.PP +Wolf4SDL is a game engine. To actually play the game, it requires the +data files from the original game (see \fBFILES\fR, below). +.SH OPTIONS +.TP +\fB\-\-help\fR +Usage summary +.TP +\fB\-\-tedlevel\fR +Starts the game in the given level +.TP +\fB\-\-baby\fR +Sets the difficulty to baby for tedlevel +.TP +\fB\-\-easy\fR +Sets the difficulty to easy for tedlevel +.TP +\fB\-\-normal\fR +Sets the difficulty to normal for tedlevel +.TP +\fB\-\-hard\fR +Sets the difficulty to hard for tedlevel +.TP +\fB\-\-nowait\fR +Skips intro screens +.TP +\fB\-\-windowed\fR +Starts the game in a window, without mouse support. +.TP +\fB\-\-windowed\-mouse\fR +Starts the game in a window, with mouse support. The mouse pointer will be unable to +leave the game window. +.TP +\fB\-\-res\fR Sets the screen resolution +(must be multiple of 320x200 or 320x240). In fullscreen mode, the game switches +to the smallest available fullscreen mode that's equal to or larger than the +chosen resolution (e.g. 960x720 usually results in a 1024x768 display with black +borders). +.TP +\fB\-\-resf\fR +Sets any screen resolution >= 320x200 +(which may result in graphic errors, and occasional crashes) +.TP +\fB\-\-bits\fR +Sets the screen color depth +(use this when you have palette/fading problems. +allowed: 8, 16, 24, 32; default: "best" depth) +.TP +\fB\-\-joystick\fR +Use the index\-th joystick if available +(\fB\-1\fR to disable joystick, default: 0) +.TP +\fB\-\-joystickhat\fR +Enables movement with the given coolie hat +.TP +\fB\-\-samplerate\fR +Sets the sound sample rate (given in Hz, default: 44100) +.TP +\fB\-\-audiobuffer\fR +Sets the size of the audio buffer (\-> sound latency) +(given in bytes, default: 2048 / (44100 / samplerate)) +.TP +\fB\-\-ignorenumchunks\fR +Ignores the number of chunks in VGAHEAD.* +(may be useful for some broken mods) +.TP +\fB\-\-mission\fR +\fBwolf4sdl\-spear\-full only:\fR Mission number to play (0\-3, default: 0). +.br +0 \- Original release of Spear of Destiny +.br +1 \- Re\-elease of Spear of Destiny by Steam +.br +2 \- Return to Danger +.br +3 \- Ultimate Challenge +.TP +\fB\-\-goodtimes\fR +\fBwolf4sdl\-spear\-full only:\fR Disable copy protection quiz +.TP +\fB\-\-goobers\fR +\fBwolf4sdl\-wolf\-full and wolf4sdl\-wolf\-demo:\fR Enable cheat/debug mode (then press \fIShift\-Alt\-Backspace\fR while playing) +.TP +\fB\-\-debugmode\fR +\fBwolf4sdl\-spear\-full and wolf4sdl\-spear\-demo:\fR Enable cheat/debug mode (then press \fIShift\-Alt\-Backspace\fR while playing) +.SH ENVIRONMENT +.TP +\fBWOLF4PATH\fR +Sets the directory where game data files are searched for. When this +variable is not set, the default directory is +\fIPREFIX\fR\fB/share/games/wolf3d\fR (\fIPREFIX\fR was set at +compile time, and defaults to /usr/local). +.PP +Note that data files are always searched for in the current directory +first, regardless of this setting. +.SH FILES +Per\-user config files and saved games are stored in \fB~/.wolf4sdl\fR +.PP +Game data files are searched for \fBfirst\fR in the current directory, +then in \fB$WOLF4PATH\fR (see above). Each game binary uses a different +set of data files: +.TS +box; +cB cB cB +l c r +l c r +l c r +l c r +r s r. +Game Executable Files +Wolf3D Shareware wolf4sdl\-wolf\-demo *.wl1 +Wolf3D Registered wolf4sdl\-wolf\-full *.wl6 or *.wl3 +Spear Demo wolf4sdl\-spear\-demo *.sdm +Spear Full Version wolf4sdl\-spear\-full *.sod +wolf4sdl\-spear\-full \-\-mission 1 *.sd1 +wolf4sdl\-spear\-full \-\-mission 2 *.sd2 +wolf4sdl\-spear\-full \-\-mission 3 *.sd3 +.TE +.PP +All filenames must be in lowercase (e.g. \fIvgahead.wl1\fR, not \fIVGAHEAD.WL1\fR). +.PP +The Wolf3D and Spear demo/shareware data files can be downloaded from +.br +\fIhttp://sourceforge.net/projects/wolfgl/files/\fR +.br +The files are called \fBwolfdata.zip\fR and \fBsdmdata.zip\fR. +.PP +The full/registered versions are available commercially. After installing +the game (perhaps using DOSBox), the data files will be found in the game's +install directory. +.PP +To play modified versions of the game ("mods"), place the mod's files in +their own directory, cd to that directory, and run the appropriate game +binary. The files in the current directory will be used instead of (or in +addition to) the ones in \fB/usr/share/games/wolf3d\fR. Remember that only +lowercase filenames will work (use "unzip -LL" when extracting). Unfortunately, +many available mods include modified versions of the game engine, which +are only distributed as Windows or DOS executables, with no source. These +are generally unplayable with Wolf4SDL :( +.SH CONTROLS +The controls can be modified from within the game menus. The default +controls are: +.TS +box; +cB s +lB l. +Keyboard Controls +Up Move Forward +Down Move Back +Left Turn Left (or Strafe Left, with Alt) +Right Turn Right (or Strafe Right, with Alt) +Space Open Door +Control Fire Weapon +Alt Strafe +Shift Run +1 Use Knife +2 Use Pistol +3 Use Machine Gun +4 Use Chaingun +Esc Go to Main Menu +F1 Help +F2 Save Game +F3 Load Game +F4 Sound Menu +F5 Resize View +F6 Controls Menu +F7 End Game +F8 Quick Save +F9 Quick Load +F10 Exit +.TE +.PP +.TS +box; +cB s +lB l. +Joystick Controls +X Axis Turn/Strafe Left/Right +Y Axis Move Forward/Backward +Button 1 Fire Weapon +Button 2 Strafe +Button 3 Open Door +Button 4 Run +.TE +.PP +.TS +box; +cB s +lB l. +Mouse Controls +X Axis Turn/Strafe Left/Right +Y Axis Move Forward/Backward +Left Button (#1) Fire Weapon +Right Button (#2) Strafe +Center Button (#3) Open Door +.TE +.PP +Also, if the game was run with \fB\-\-goobers\fR (Wolf) +or \fB\-\-debugmode\fR (Spear), the standard cheat codes are +available. Remember to press Alt\-Shift\-Backspace first, and \fBbe +careful\fR not to accidentally hit Alt\-Ctrl\-Backspace instead (*boom*, +there goes your X session...) +.SH AUTHORS +Ported by Chaos\-Software (http://www.chaos\-software.de.vu) +.PP +Original Wolfenstein 3D by id Software. +.PP +This man page by B. Watson. diff --git a/games/wolf4sdl/wolf4sdl.SlackBuild b/games/wolf4sdl/wolf4sdl.SlackBuild new file mode 100644 index 0000000000..141200bf08 --- /dev/null +++ b/games/wolf4sdl/wolf4sdl.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Slackware build script for wolf4sdl + +# Written by B. Watson (yalhcru@gmail.com) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +PRGNAM=wolf4sdl +VERSION=${VERSION:-1.7} +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 + +SRCNAM=Wolf4SDL + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $SRCNAM-$VERSION-src +unzip $CWD/$SRCNAM-$VERSION-src.zip +cd $SRCNAM-$VERSION-src +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 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# look for game data files in /usr/share/games/wolf3d +patch -p1 < $CWD/datadir.diff + +# show correct executable name in usage message (instead of Wolf4SDL) +patch -p1 < $CWD/exename.diff + +# don't use 'make install', do it manually. +mkdir -p $PKG/usr/games $PKG/usr/share/games/wolf3d + +# Unfortunately, we need 4 separate game binaries for the 4 different +# supported games... + +# Wolfenstein 3D 1.4 Shareware/Demo +cat <config.slack +CFLAGS=$SLKCFLAGS -DVERSIONALREADYCHOSEN -DCARMACIZED -DUPLOAD +EOF +make CONFIG=config.slack PREFIX=/usr +install -m0755 -s wolf3d $PKG/usr/games/$PRGNAM-wolf-demo + +# Wolfenstein 3D 1.4 Full/Registered (GT/ID/Activision) +# NOTE: If the game complains about your data files being incompatible, +# you might have the old Apogee 1.4 release. Try removing the -DGOODTIMES +# below. For other versions, see version.h in the source (or else patch +# them up to 1.4). +make clean +cat <config.slack +CFLAGS=$SLKCFLAGS -DVERSIONALREADYCHOSEN -DCARMACIZED -DGOODTIMES +EOF +make CONFIG=config.slack PREFIX=/usr +install -m0755 -s wolf3d $PKG/usr/games/$PRGNAM-wolf-full + +# Spear of Destiny 1.4 Demo +make clean +cat <config.slack +CFLAGS=$SLKCFLAGS -DVERSIONALREADYCHOSEN -DCARMACIZED -DSPEAR -DSPEARDEMO +EOF +make CONFIG=config.slack PREFIX=/usr +install -m0755 -s wolf3d $PKG/usr/games/$PRGNAM-spear-demo + +# Spear of Destiny 1.4 Full/Registered +make clean +cat <config.slack +CFLAGS=$SLKCFLAGS -DVERSIONALREADYCHOSEN -DCARMACIZED -DSPEAR -DGOODTIMES +EOF +make CONFIG=config.slack PREFIX=/usr +install -m0755 -s wolf3d $PKG/usr/games/$PRGNAM-spear-full + +# Wolfenstein 3D demo data +unzip $CWD/wolfdata.zip +mv *.wl1 $PKG/usr/share/games/wolf3d +chmod 644 $PKG/usr/share/games/wolf3d/*.wl1 + +# Spear of Destiny demo data +unzip $CWD/sdmdata.zip +mv *.sdm $PKG/usr/share/games/wolf3d +chmod 644 $PKG/usr/share/games/wolf3d/*.sdm + +# man page written for this build +mkdir -p $PKG/usr/man/man6 +gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz +ln -s $PRGNAM.6.gz $PKG/usr/man/man6/$PRGNAM-wolf-demo.6.gz +ln -s $PRGNAM.6.gz $PKG/usr/man/man6/$PRGNAM-wolf-full.6.gz +ln -s $PRGNAM.6.gz $PKG/usr/man/man6/$PRGNAM-spear-demo.6.gz +ln -s $PRGNAM.6.gz $PKG/usr/man/man6/$PRGNAM-spear-full.6.gz + +# icon came from gods know where (somewhere on upstream site) +# .desktop files written for this build +mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps +cp $CWD/*.desktop $PKG/usr/share/applications/ +cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a Changes.txt README.txt license-*.txt $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +cat $CWD/doinst.sh > $PKG/usr/doc/$PRGNAM-$VERSION/doinst.sh + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/games/wolf4sdl/wolf4sdl.info b/games/wolf4sdl/wolf4sdl.info new file mode 100644 index 0000000000..7df1043c3f --- /dev/null +++ b/games/wolf4sdl/wolf4sdl.info @@ -0,0 +1,14 @@ +PRGNAM="wolf4sdl" +VERSION="1.7" +HOMEPAGE="http://web.archive.org/web/20140728192012/http://www.chaos-software.de.vu/" +DOWNLOAD="http://web.archive.org/web/20120419135331/http://www.alice-dsl.net/mkroll/bins/Wolf4SDL-1.7-src.zip \ + http://downloads.sourceforge.net/project/wolfgl/Data/Demo/wolfdata.zip \ + http://downloads.sourceforge.net/project/wolfgl/Data/Demo/sdmdata.zip" +DOWNLOAD_x86_64="" +MD5SUM="303f340598bfbe3440523c1ddb9f52e8 \ + bc4564940cae816aec0f4af0b8436baf \ + 0aa1f89a8f5ddef700613b0f428fd8b0" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/games/wolf4sdl/wolf4sdl.png b/games/wolf4sdl/wolf4sdl.png new file mode 100644 index 0000000000..ddd8ffe767 Binary files /dev/null and b/games/wolf4sdl/wolf4sdl.png differ -- cgit v1.2.3