diff --git a/quakespasm/Misc/homedir_0.patch b/quakespasm/Misc/homedir_0.patch new file mode 100644 index 00000000..ae6fb466 --- /dev/null +++ b/quakespasm/Misc/homedir_0.patch @@ -0,0 +1,104 @@ +support for user directories, based on a patch by Piotr Szymaniak. +against quakespasm svn revision 97. +** !! in alpha state, minimally tested !! ** + +Index: Quake/common.c +=================================================================== +--- Quake/common.c (revision 97) ++++ Quake/common.c (working copy) +@@ -1776,25 +1776,27 @@ + COM_AddGameDirectory -- johnfitz -- modified based on topaz's tutorial + ================= + */ +-void COM_AddGameDirectory (char *dir) ++void COM_AddGameDirectory (char *base, char *dir) + { + int i; + searchpath_t *search; + pack_t *pak; + char pakfile[MAX_OSPATH]; + +- strcpy (com_gamedir, dir); ++ if (!base) ++ return; ++ strcpy(com_gamedir, va("%s/%s", base, dir)); + + // add the directory to the search path + search = Z_Malloc(sizeof(searchpath_t)); +- strcpy (search->filename, dir); ++ strcpy (search->filename, com_gamedir); + search->next = com_searchpaths; + com_searchpaths = search; + + // add any pak files in the format pak0.pak pak1.pak, ... + for (i = 0; ; i++) + { +- sprintf (pakfile, "%s/pak%i.pak", dir, i); ++ sprintf (pakfile, "%s/pak%i.pak", com_gamedir, i); + pak = COM_LoadPackFile (pakfile); + if (!pak) + break; +@@ -1837,7 +1839,12 @@ + { + int i, j; + searchpath_t *search; ++ char *home; + ++ home = getenv("HOME"); ++ if (home) ++ Sys_mkdir (va("%s/.quakespasm", home)); ++ + i = COM_CheckParm ("-basedir"); + if (i && i < com_argc-1) + strcpy (com_basedir, com_argv[i + 1]); +@@ -1852,8 +1859,8 @@ + } + + // start up with GAMENAME by default (id1) +- COM_AddGameDirectory (va("%s/"GAMENAME, com_basedir)); +- strcpy (com_gamedir, va("%s/"GAMENAME, com_basedir)); ++ COM_AddGameDirectory(com_basedir, GAMENAME); ++ COM_AddGameDirectory(home, ".quakespasm/" GAMENAME); + + if (!fitzmode) + { /* QuakeSpasm customization: */ +@@ -1865,17 +1872,20 @@ + com_nummissionpacks = 0; + if (COM_CheckParm ("-rogue")) + { +- COM_AddGameDirectory (va("%s/rogue", com_basedir)); ++ COM_AddGameDirectory(com_basedir, "rogue"); ++ COM_AddGameDirectory(home, ".quakespasm/rogue"); + com_nummissionpacks++; + } + if (COM_CheckParm ("-hipnotic")) + { +- COM_AddGameDirectory (va("%s/hipnotic", com_basedir)); ++ COM_AddGameDirectory(com_basedir, "hipnotic"); ++ COM_AddGameDirectory(home, ".quakespasm/hipnotic"); + com_nummissionpacks++; + } + if (COM_CheckParm ("-quoth")) + { +- COM_AddGameDirectory (va("%s/quoth", com_basedir)); ++ COM_AddGameDirectory(com_basedir, "quoth"); ++ COM_AddGameDirectory(home, ".quakespasm/quoth"); + com_nummissionpacks++; + } + //johnfitz +@@ -1884,9 +1894,14 @@ + if (i && i < com_argc-1) + { + com_modified = true; +- COM_AddGameDirectory (va("%s/%s", com_basedir, com_argv[i + 1])); ++ COM_AddGameDirectory(com_basedir, com_argv[i + 1]); ++ COM_AddGameDirectory(home, va(".quakespasm/%s", com_argv[i + 1])); + } + ++ /* If home is available, create the game directory */ ++ if (home) ++ Sys_mkdir(com_gamedir); ++ + i = COM_CheckParm ("-path"); + if (i) + { diff --git a/quakespasm/Quake/net_sys.h b/quakespasm/Quake/net_sys.h index 436b12a7..58efc84c 100644 --- a/quakespasm/Quake/net_sys.h +++ b/quakespasm/Quake/net_sys.h @@ -113,7 +113,9 @@ typedef int socklen_t; #define socketerror(x) strerror((x)) -/* Verify that we defined HAVE_SA_LEN correctly: */ +/* Verify that we defined HAVE_SA_LEN correctly + (Expression inside [] evaluates negative if HAVE_SA_LEN not correctly defined, + thowing "error: size of array is negative" at compile time) */ typedef char _check_sockaddr[2 * (offsetof(struct sockaddr, sa_family) == SA_FAM_OFFSET) - 1]; #endif /* end of unix stuff */ diff --git a/quakespasm/README.html b/quakespasm/README.html new file mode 100644 index 00000000..e25815bd --- /dev/null +++ b/quakespasm/README.html @@ -0,0 +1,176 @@ + + + + + QuakeSpasm + + +

QuakeSpasm

+ +

+

+
+

+

QuakeSpasm 0.85.3 (unreleased) (18 September 2010)

+ +

+

1. About

+ +

+

2. Changes

+ + +

+

3. Downloads

+ +

+

4. Compiling

+ +

+

5. Todo

+ +

+

6. Links

+ + +
+

1. About

+ + +

QuakeSpasm is a Quake 1 engine based on the SDL port of FitzQuake. +It includes 64bit CPU cupport, a new sound driver, and a few graphical niceities. +The main feature is it works on virtually all platforms, and supports large Q1 mods.

+

+QuakeSpasm Homepage

+

To disable some changes, use quakespasm -fitz

+

For different sound drivers:
+SDL_AUDIODRIVER=DRIVER ./quakespasm
+Where DRIVER may be alsa, dsp, pulse, esd ...

+

Shift+Escape now draws the Console.

+ + +

2. Changes

+ + +

2.1 0.85.3 +

+ +

+

+

+ +

2.2 0.85.2 +

+ +

+

+

+ +

2.3 0.85.1 +

+ +

+

+

+ + +

3. Downloads

+ + +

+Source
+Linux binary
+Windows

+ +

4. Compiling

+ +

Just extract the source tarball, then +


+
+cd quakespasm-0.85.3
+make
+cp quakespasm /usr/local/games/quake (for eg)
+
+
+ +Use make DEBUG=1 for debugging.

+Optionally, HOME directory support can be enabled via the Misc/homedir_0.patch diff.

+If for any reason this doesn't work, the project can also be built with Codeblocks. +This is a large, free, integrated development environment that requires wxWidgets and cmake to install. +The process is not for the faint hearted.

+ +

5. Todo

+ +

+

+

+ +

6. Links

+ + +

+QuakeSpasm Homepage
+QuakeSpasm Project page
+FitzQuake Homepage
+Sleepwalkr's Original SDL Port
+Baker's 0.85 Source Code
+Func SDL Fitzquake forum
+Ozkan's email
+Stevenaaus email
+Kristian's email

+ + + diff --git a/quakespasm/README.sgml b/quakespasm/README.sgml new file mode 100644 index 00000000..99a9926f --- /dev/null +++ b/quakespasm/README.sgml @@ -0,0 +1,137 @@ + +
+QuakeSpasm +<toc> +<verb></verb> + +QuakeSpasm 0.85.3 (unreleased) (18 September 2010) + +<sect> About <p> + +QuakeSpasm is a Quake 1 engine based on the SDL port of FitzQuake. +It includes 64bit CPU cupport, a new sound driver, and a few graphical niceities. +The main feature is it works on virtually all platforms, and supports large Q1 mods. + +<url url="http://quakespasm.sourceforge.net" name="QuakeSpasm Homepage"> + +To disable some changes, use <bf>quakespasm -fitz</bf> + +For different sound drivers: +<newline> +<bf>SDL_AUDIODRIVER=</bf><em>DRIVER</em><bf> ./quakespasm</bf> +<newline> +Where DRIVER may be alsa, dsp, pulse, esd ... + +<bf>Shift+Escape</bf> now draws the Console. + + +<sect> Changes<p> +<sect1> 0.85.3<p> +<itemize> +<item> Fix the "-dedicated" option (thanks Oz) and add platform specific networking code (default) cwrather than SDLnet +<item> Much needed OSX framework stuff from Kristian +<item> Add a persistent history feature (thanks Baker) +<item> Add a slider for scr_sbaralpha, which now defaults to 0.95 (slightly transparent, allowing for nicer sbar) +<item> Sockaddr fix for FreeBSD/OSX/etc networking +<item> Connect status bar size to the scale slider +<item> Include an ISNAN (is not-a-number) fix to catch the occassional quake C bug giving traceline problems +<item> Enumerate options menus +<item> Small fix to Sound Block/Unblock on win32 +<item> Lots of code fixes (some from uhexen2) +<item> Shift+Escape opens console +<item> Sys_Error calls Host_Shutdown + +</itemize> + +<sect1> 0.85.2<p> +<itemize> +<item> Replace the old "Screen size" slider with a "Scale" slider +<item> Don't constantly open and close condebug log +<item> Heap of C clean-ups +<item> Fix mapname sorting +<item> Alias the "mods" command to "games" +<item> Block/Unblock sound upon focus loss/gain +<item> NAT fix (networking protocol fix) +<item> SDLNet_ResolveHost bug-fix allowing connection to ports other than 26000 +<item> sv_main.c (localmodels) Bumped array size from 5 to 6 in order for it to operate correctly with the raised limits of fitzquake-0.85 +<item> Accept commandline options like "+connect ip:port" +<item> Add OSX Makefile (tested?) +</itemize> + +<sect1> 0.85.1<p> +<itemize> +<item>64 bit CPU support +<item>Restructured SDL sound driver +<item>Custom conback +<item>Tweaked the command line completion , and added a map/changelevel autocompletion function +<item>Alt+Enter toggles fullscreen +<item>Disable Draw_BeginDisc which causes core dumps when called excessively +<item>Show helpful info on start-up +<item>Include real map name (sv.name) and skill in the status bar +<item>Remove confirm quit dialog +<item>Don't spam the console with PackFile seek requests +<item>Default to window mode +<item>Withdraw console when playing demos +<item>Don't play demos on program init +<item>Default Heapsize is 64meg +<item>Changes to default console alpha, speed +<item>Changes to cvar persistence gl_flashblend(default 0), r_shadow, r_wateralpha, r_dynamic, r_novis +</itemize> + + +<sect> Downloads <p> + +<url url="http://prdownloads.sourceforge.net/quakespasm/quakespasm-0.85.3.tgz/download" name="Source"> +<newline> +<url url="http://prdownloads.sourceforge.net/quakespasm/quakespasm-0.85.3_linux.tgz/download" name="Linux binary"> +<newline> +<url url="http://prdownloads.sourceforge.net/quakespasm/quakespasm-0.85.3_windows.zip/download" name="Windows"> +<newline> + +<sect> Compiling <p> +Just extract the source tarball, then +<code> +cd quakespasm-0.85.3 +make +cp quakespasm /usr/local/games/quake (for eg) +</code> +<em>Use <bf>make DEBUG=1</bf> for debugging.</em> +<newline> +<newline> +<em>Optionally, HOME directory support can be enabled via the <bf>Misc/homedir_0.patch</bf> diff.</em> +<newline> +<newline> +If for any reason this doesn't work, the project can also be built with Codeblocks. +This is a large, free, integrated development environment that requires wxWidgets and cmake to install. +The process is not for the faint hearted. + +<sect> Todo <p> +<itemize> +<item>Ogg/Mp3 music file support +<item>Tested HOME directory support +<item>Fix Centerview (V_StartPitchDrift) +<item>Fix compiler warnings +<item>Tie down the "-window/-fullscreen" options / behaviour ? +</itemize> + +<sect> Links <p> + +<url url="http://quakespasm.sourceforge.net" name="QuakeSpasm Homepage"> +<newline> +<url url="http://sourceforge.net/projects/quakespasm" name="QuakeSpasm Project page"> +<newline> +<url url="http://www.celephais.net/fitzquake" name="FitzQuake Homepage"> +<newline> +<url url="http://www.kristianduske.com/fitzquake" name="Sleepwalkr's Original SDL Port"> +<newline> +<url name="Baker's 0.85 Source Code" url="http://quakeone.com/proquake/src_other/fitzquake_sdl_20090510_src_beta_1.zip"> +<newline> +<url url="http://www.celephais.net/board/view_thread.php?id=60172" name="Func SDL Fitzquake forum"> +<newline> +<url url="mailto:gmail - dot - com - username - sezeroz" name="Ozkan's email"> +<newline> +<url url="mailto:yahoo - dot - com - username - stevenaaus" name="Stevenaaus email"> +<newline> +<url url="mailto:gmail - dot - com - username - inveigle" name="Kristian's email"> + +</article> diff --git a/quakespasm/README.txt b/quakespasm/README.txt new file mode 100644 index 00000000..bf2436a2 --- /dev/null +++ b/quakespasm/README.txt @@ -0,0 +1,208 @@ + QuakeSpasm + + ____________________________________________________________ + + Table of Contents + + + 1. About + 2. Changes + 2.1 0.85.3 + 2.2 0.85.2 + 2.3 0.85.1 + + 3. Downloads + 4. Compiling + 5. Todo + 6. Links + + + ______________________________________________________________________ + + + QuakeSpasm 0.85.3 (unreleased) (18 September 2010) + + + 1. About + + + QuakeSpasm is a Quake 1 engine based on the SDL port of FitzQuake. It + includes 64bit CPU cupport, a new sound driver, and a few graphical + niceities. The main feature is it works on virtually all platforms, + and supports large Q1 mods. + + QuakeSpasm Homepage <http://quakespasm.sourceforge.net> + + To disable some changes, use quakespasm -fitz + + For different sound drivers: + SDL_AUDIODRIVER=DRIVER ./quakespasm + Where DRIVER may be alsa, dsp, pulse, esd ... + + Shift+Escape now draws the Console. + + + 2. Changes + + + 2.1. 0.85.3 + + + o Fix the "-dedicated" option (thanks Oz) and add platform specific + networking code (default) cwrather than SDLnet + + o Much needed OSX framework stuff from Kristian + + o Add a persistent history feature (thanks Baker) + + o Add a slider for scr_sbaralpha, which now defaults to 0.95 + (slightly transparent, allowing for nicer sbar) + + o Sockaddr fix for FreeBSD/OSX/etc networking + + o Connect status bar size to the scale slider + + o Include an ISNAN (is not-a-number) fix to catch the occassional + quake C bug giving traceline problems + + o Enumerate options menus + + o Small fix to Sound Block/Unblock on win32 + + o Lots of code fixes (some from uhexen2) + + o Shift+Escape opens console + + o Sys_Error calls Host_Shutdown + + + 2.2. 0.85.2 + + + o Replace the old "Screen size" slider with a "Scale" slider + + o Don't constantly open and close condebug log + + o Heap of C clean-ups + + o Fix mapname sorting + + o Alias the "mods" command to "games" + + o Block/Unblock sound upon focus loss/gain + + o NAT fix (networking protocol fix) + + o SDLNet_ResolveHost bug-fix allowing connection to ports other than + 26000 + + o sv_main.c (localmodels) Bumped array size from 5 to 6 in order for + it to operate correctly with the raised limits of fitzquake-0.85 + + o Accept commandline options like "+connect ip:port" + + o Add OSX Makefile (tested?) + + + 2.3. 0.85.1 + + + o 64 bit CPU support + + o Restructured SDL sound driver + + o Custom conback + + o Tweaked the command line completion , and added a map/changelevel + autocompletion function + + o Alt+Enter toggles fullscreen + + o Disable Draw_BeginDisc which causes core dumps when called + excessively + + o Show helpful info on start-up + + o Include real map name (sv.name) and skill in the status bar + + + o Remove confirm quit dialog + + o Don't spam the console with PackFile seek requests + + o Default to window mode + + o Withdraw console when playing demos + + o Don't play demos on program init + + o Default Heapsize is 64meg + + o Changes to default console alpha, speed + + o Changes to cvar persistence gl_flashblend(default 0), r_shadow, + r_wateralpha, r_dynamic, r_novis + + + 3. Downloads + + + Source + <http://prdownloads.sourceforge.net/quakespasm/quakespasm-0.85.3.tgz/download> + Linux binary + <http://prdownloads.sourceforge.net/quakespasm/quakespasm-0.85.3_linux.tgz/download> + Windows + <http://prdownloads.sourceforge.net/quakespasm/quakespasm-0.85.3_windows.zip/download> + + + 4. Compiling + + Just extract the source tarball, then + + ______________________________________________________________________ + cd quakespasm-0.85.3 + make + cp quakespasm /usr/local/games/quake (for eg) + ______________________________________________________________________ + + + Use make DEBUG=1 for debugging. + Optionally, HOME directory support can be enabled via the Misc/home- + dir_0.patch diff. + If for any reason this doesn't work, the project can also be built + with Codeblocks. This is a large, free, integrated development envi- + ronment that requires wxWidgets and cmake to install. The process is + not for the faint hearted. + + + 5. Todo + + + o Ogg/Mp3 music file support + + o Tested HOME directory support + + o Fix Centerview (V_StartPitchDrift) + + o Fix compiler warnings + + o Tie down the "-window/-fullscreen" options / behaviour ? + + + 6. Links + + + QuakeSpasm Homepage <http://quakespasm.sourceforge.net> + QuakeSpasm Project page <http://sourceforge.net/projects/quakespasm> + FitzQuake Homepage <http://www.celephais.net/fitzquake> + Sleepwalkr's Original SDL Port + <http://www.kristianduske.com/fitzquake> + Baker's 0.85 Source Code + <http://quakeone.com/proquake/src_other/fitzquake_sdl_20090510_src_beta_1.zip> + Func SDL Fitzquake forum + <http://www.celephais.net/board/view_thread.php?id=60172> + Ozkan's email <mailto:gmail - dot - com - username - sezeroz> + Stevenaaus email <mailto:yahoo - dot - com - username - stevenaaus> + Kristian's email <mailto:gmail - dot - com - username - inveigle> + +