2004-08-21 01:25:48 +00:00
/*
Copyright ( C ) 1996 - 1997 Id Software , Inc .
This program is free software ; you can redistribute it and / or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation ; either version 2
of the License , or ( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
2007-10-12 10:27:51 +00:00
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE .
2004-08-21 01:25:48 +00:00
See the GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*/
# ifndef __BOTHDEFS_H
# define __BOTHDEFS_H
2011-03-30 20:10:24 +00:00
// release version
# define FTE_VER_MAJOR 1
2016-07-12 00:40:13 +00:00
# define FTE_VER_MINOR 5
2011-03-30 20:10:24 +00:00
2005-11-29 23:20:02 +00:00
# if defined(__APPLE__) && defined(__MACH__)
2009-11-04 21:16:50 +00:00
# define MACOSX
2005-11-29 23:20:02 +00:00
# endif
2004-08-21 01:25:48 +00:00
2009-06-21 17:45:33 +00:00
# if defined(__MINGW32_VERSION) || defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__)
2004-08-21 01:25:48 +00:00
# define MINGW
# endif
2005-01-04 08:06:46 +00:00
# if !defined(MINGW) && defined(__GNUC__) && defined(_WIN32)
# define MINGW //Erm, why is this happening?
# endif
2004-08-21 01:25:48 +00:00
2011-09-05 01:48:23 +00:00
# ifdef ANDROID
# define NO_PNG
# define NO_JPEG
# define NO_OGG
# endif
2012-04-09 19:12:12 +00:00
# ifdef NACL
# define NO_PNG
# define NO_JPEG
# define NO_OGG
# define NO_ZLIB
# endif
2013-04-02 05:18:17 +00:00
# ifdef FTE_TARGET_WEB
//no Sys_LoadLibrary support, so we might as well kill this stuff off.
# define NO_PNG
# define NO_JPEG
# define NO_OGG
# define NO_ZLIB
# define NO_FREETYPE
# endif
2004-08-21 01:25:48 +00:00
# ifdef HAVE_CONFIG_H //if it was configured properly, then we have a more correct list of features we want to use.
# include "config.h"
# else
2009-11-04 21:16:50 +00:00
# ifndef MSVCLIBSPATH
2015-08-04 15:16:24 +00:00
# ifdef MSVCLIBPATH
# define MSVCLIBSPATH STRINGIFY(MSVCLIBPATH)
# elif _MSC_VER == 1200
2010-12-23 08:53:23 +00:00
# define MSVCLIBSPATH ".. / libs / vc6-libs / "
# else
2009-11-04 21:16:50 +00:00
# define MSVCLIBSPATH ".. / libs / "
# endif
2010-12-23 08:53:23 +00:00
# endif
2004-08-21 01:25:48 +00:00
2009-03-07 04:37:24 +00:00
# ifdef NO_LIBRARIES
# define NO_DIRECTX
# define NO_PNG
# define NO_JPEG
# define NO_ZLIB
# define NO_OGG
2014-09-02 02:44:43 +00:00
# else
# define AVAIL_OPENAL
# define AVAIL_FREETYPE
2009-03-07 04:37:24 +00:00
# endif
2012-10-24 02:59:31 +00:00
# define AVAIL_OGGVORBIS
2013-11-21 23:02:28 +00:00
# if defined(__CYGWIN__)
# define AVAIL_ZLIB
# else
2004-08-21 01:25:48 +00:00
# define AVAIL_PNGLIB
# define AVAIL_JPEGLIB
# define AVAIL_ZLIB
2005-04-16 16:21:27 +00:00
# define AVAIL_OGGVORBIS
2004-08-21 01:25:48 +00:00
# endif
2004-08-23 06:23:11 +00:00
2013-11-21 23:02:28 +00:00
# if !defined(NO_DIRECTX) && !defined(NODIRECTX) && defined(_WIN32)
2009-03-07 04:37:24 +00:00
# define AVAIL_DINPUT
# define AVAIL_DDRAW
# define AVAIL_DSOUND
# define AVAIL_D3D
2016-07-12 00:40:13 +00:00
# define AVAIL_WASAPI
2009-03-07 04:37:24 +00:00
# endif
2015-09-18 20:30:10 +00:00
# ifdef WINRT
# define AVAIL_XAUDIO2
# endif
2015-04-27 12:51:42 +00:00
# define AVAIL_XZDEC
2005-04-19 21:09:29 +00:00
2015-01-02 05:57:14 +00:00
# if !defined(MINIMAL) && !defined(NPFTE) && !defined(NPQTV)
2014-03-30 08:55:06 +00:00
# if defined(_WIN32) && !defined(FTE_SDL) && !defined(WINRT)
2013-06-24 09:04:00 +00:00
# define HAVE_WINSSPI //built in component, checks against windows' root ca database and revocations etc.
2013-11-21 23:02:28 +00:00
# elif defined(__linux__) || defined(__CYGWIN__)
# define HAVE_GNUTLS //currently disabled as it does not validate the server's certificate, beware the mitm attack.
2013-06-24 09:04:00 +00:00
# endif
2014-09-02 02:44:43 +00:00
# endif
2013-06-24 09:04:00 +00:00
# if defined(HAVE_WINSSPI) || defined(HAVE_GNUTLS)
2013-03-31 04:21:08 +00:00
# define HAVE_SSL
# endif
2010-11-11 04:03:16 +00:00
//#define DYNAMIC_ZLIB
//#define DYNAMIC_LIBPNG
//#define DYNAMIC_LIBJPEG
2012-10-24 01:32:10 +00:00
//#define LIBVORBISFILE_STATIC
//#define SPEEX_STATIC
2010-11-11 04:03:16 +00:00
2012-09-30 05:52:03 +00:00
# ifdef D3DQUAKE
# define D3D9QUAKE
2016-07-12 00:40:13 +00:00
//#define D3D11QUAKE
2012-09-30 05:52:03 +00:00
# endif
2012-10-10 22:58:51 +00:00
# if (defined(D3D9QUAKE) || defined(D3D11QUAKE)) && !defined(D3DQUAKE)
2012-09-30 05:52:03 +00:00
# define D3DQUAKE
# endif
2011-06-29 18:39:11 +00:00
# if defined(_MSC_VER) //too lazy to fix up the makefile
//#define BOTLIB_STATIC
# endif
2010-12-07 12:23:56 +00:00
# ifdef NO_OPENAL
# undef AVAIL_OPENAL
# endif
2005-04-19 21:09:29 +00:00
# ifdef NO_PNG
# undef AVAIL_PNGLIB
# endif
# ifdef NO_JPEG
# undef AVAIL_JPEGLIB
# endif
# ifdef NO_ZLIB
# undef AVAIL_ZLIB
2015-04-21 04:12:00 +00:00
# undef AVAIL_XZDEC
2005-04-19 21:09:29 +00:00
# endif
# ifdef NO_OGG
# undef AVAIL_OGGVORBIS
# endif
2009-07-14 23:42:54 +00:00
# if defined(NO_FREETYPE)
# undef AVAIL_FREETYPE
# endif
2004-08-21 01:25:48 +00:00
2016-07-15 12:26:24 +00:00
# if (defined(_MSC_VER) && (_MSC_VER < 1500)) || defined(FTE_SDL)
2016-07-12 00:40:13 +00:00
# undef AVAIL_WASAPI //wasapi is available in the vista sdk, while that's compatible with earlier versions, its not really expected until 2008
# endif
2004-08-21 01:25:48 +00:00
//set any additional defines or libs in win32
2014-10-05 20:04:11 +00:00
# define LOADERTHREAD
2004-08-21 01:25:48 +00:00
2015-09-01 04:45:15 +00:00
# ifdef NOLEGACY
//these are only the features that really make sense in a more modern engine
# define QUAKETC //skip some legacy stuff
# define SPRMODELS //quake1 sprite models
# define INTERQUAKEMODELS
# define RTLIGHTS //realtime lighting
2016-07-12 00:40:13 +00:00
# define Q2BSPS //quake 2 bsp support (a dependancy of q3bsp)
2015-09-01 04:45:15 +00:00
# define Q3BSPS //quake 3 bsp support
// #define TERRAIN //heightmap support
# define ZLIB //zip/pk3 support
# define WEBCLIENT //http/ftp clients.
# define IMAGEFMT_DDS //a sort of image file format.
# define PSET_SCRIPT
// #define PLUGINS //qvm/dll plugins.
// #define SUPPORT_ICE //Interactive Connectivity Establishment protocol, for peer-to-peer connections
# define CSQC_DAT //support for csqc
// #define VOICECHAT
# undef AVAIL_JPEGLIB
# undef AVAIL_XZDEC
2015-10-11 11:34:58 +00:00
# if defined(_WIN32) && !defined(FTE_SDL) && !defined(MULTITHREAD) //always thread on win32 non-minimal builds
2015-09-01 04:45:15 +00:00
# define MULTITHREAD
# endif
# elif defined(MINIMAL)
# define QUAKESTATS
# define QUAKEHUD
2004-08-26 10:18:06 +00:00
# define CL_MASTER //this is useful
2004-08-21 01:25:48 +00:00
# undef AVAIL_JPEGLIB //no jpeg support
# undef AVAIL_PNGLIB //no png support
2016-07-12 00:40:13 +00:00
# undef AVAIL_OPENAL //just bloat...
2004-08-21 01:25:48 +00:00
# define NOMEDIA //NO playing of avis/cins/roqs
2014-05-10 13:42:13 +00:00
# define SPRMODELS //quake1 sprite models
2004-08-21 01:25:48 +00:00
# define MD3MODELS //we DO want to use quake3 alias models. This might be a minimal build, but we still want this.
2008-01-24 02:06:15 +00:00
# define PLUGINS
2004-08-21 01:25:48 +00:00
2008-11-09 22:29:28 +00:00
# define PSET_CLASSIC
2010-07-11 02:22:39 +00:00
//#define CSQC_DAT //support for csqc
2009-11-17 00:15:44 +00:00
2009-11-05 03:07:52 +00:00
# ifndef SERVERONLY //don't be stupid, stupid.
# ifndef CLIENTONLY
# define CLIENTONLY
# endif
# endif
2004-08-21 01:25:48 +00:00
# else
2015-09-01 04:45:15 +00:00
# define NETPREPARSE
# define QUAKESTATS
# define QUAKEHUD
# define SVRANKING
2012-11-27 03:23:19 +00:00
# define USE_SQLITE
2012-12-04 19:37:57 +00:00
# ifdef SERVERONLY
2016-02-15 06:01:17 +00:00
// #define USE_MYSQL //allow mysql in dedicated servers.
2012-12-04 19:37:57 +00:00
# endif
2014-03-30 08:55:06 +00:00
# if defined(_WIN32) && !defined(FTE_SDL) && !defined(WINRT)
2015-11-18 07:37:39 +00:00
# define SUBSERVERS //use subserver code.
2016-07-15 12:26:24 +00:00
# elif defined(__linux__) && !defined(ANDROID) && !defined(FTE_SDL)
2016-07-12 00:40:13 +00:00
# define SUBSERVERS //use subserver code.
2014-03-30 08:55:06 +00:00
# endif
2012-11-27 03:23:19 +00:00
2004-08-21 01:25:48 +00:00
# define SIDEVIEWS 4 //enable secondary/reverse views.
2010-09-15 09:06:31 +00:00
2014-10-05 20:04:11 +00:00
// #define DSPMODELS //doom sprites (only needs DOOMWADS to generate the right wad file names)
2014-05-10 13:42:13 +00:00
# define SPRMODELS //quake1 sprite models
2004-08-21 01:25:48 +00:00
# define SP2MODELS //quake2 sprite models
# define MD2MODELS //quake2 alias models
# define MD3MODELS //quake3 alias models
2005-09-14 04:21:02 +00:00
# define MD5MODELS //doom3 models
# define ZYMOTICMODELS //zymotic skeletal models.
2010-09-15 09:06:31 +00:00
# define DPMMODELS //darkplaces model format (which I've never seen anyone use)
# define PSKMODELS //PSK model format (ActorX stuff from UT, though not the format the game itself uses)
2014-10-05 20:04:11 +00:00
// #define HALFLIFEMODELS //halflife model support (experimental)
2011-07-30 14:14:56 +00:00
# define INTERQUAKEMODELS
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéÃóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
# define RAGDOLL
2010-09-15 09:06:31 +00:00
# define HUFFNETWORK //huffman network compression
2012-07-05 19:42:36 +00:00
# define DOOMWADS //doom wad/sprite support
2012-07-15 02:40:30 +00:00
// #define MAP_DOOM //doom map support
2016-07-12 00:40:13 +00:00
# define MAP_PROC //doom3/quake4 map support
2004-08-21 01:25:48 +00:00
//#define WOLF3DSUPPORT //wolfenstein3d map support (not started yet)
# define Q2BSPS //quake 2 bsp support
# define Q3BSPS //quake 3 bsp support
2005-08-26 22:56:51 +00:00
# define TERRAIN //heightmap support
2014-09-02 02:44:43 +00:00
// #define SV_MASTER //starts up a master server
2004-08-21 01:25:48 +00:00
# define SVCHAT //serverside npc chatting. see sv_chat.c
# define Q2SERVER //server can run a q2 game dll and switches to q2 network and everything else.
# define Q2CLIENT //client can connect to q2 servers
2005-11-30 01:20:53 +00:00
# define Q3CLIENT
# define Q3SERVER
2016-07-12 00:40:13 +00:00
# define HEXEN2 //mostly server only, but also includes some hud+menu stuff, and effects
2009-11-04 21:16:50 +00:00
// #define HLCLIENT 7 //we can run HL gamecode (not protocol compatible, set to 6 or 7)
// #define HLSERVER 140 //we can run HL gamecode (not protocol compatible, set to 138 or 140)
2004-08-21 01:25:48 +00:00
# define NQPROT //server and client are capable of using quake1/netquake protocols. (qw is still prefered. uses the command 'nqconnect')
# define ZLIB //zip/pk3 support
2005-12-22 02:29:11 +00:00
# define WEBSERVER //http/ftp servers
# define WEBCLIENT //http/ftp clients.
2004-08-21 01:25:48 +00:00
# define RUNTIMELIGHTING //calculate lit/lux files the first time the map is loaded and doesn't have a loadable lit.
2005-03-10 03:55:18 +00:00
// #define QTERM //qterm... adds a console command that allows running programs from within quake - bit like xterm.
2004-08-21 01:25:48 +00:00
# define CL_MASTER //query master servers and stuff for a dynamic server listing.
# define R_XFLIP //allow view to be flipped horizontally
# define TEXTEDITOR
2013-10-29 17:38:22 +00:00
# define IMAGEFMT_DDS //a sort of image file format.
# define IMAGEFMT_BLP //a sort of image file format.
2013-10-08 14:28:11 +00:00
# ifndef RTLIGHTS
2009-11-04 21:16:50 +00:00
# define RTLIGHTS //realtime lighting
2013-10-08 14:28:11 +00:00
# endif
2004-08-21 01:25:48 +00:00
2008-05-14 14:46:58 +00:00
# define VM_Q1 //q1 qvm gamecode interface
2014-03-30 08:55:06 +00:00
//#define VM_LUA //q1 lua gamecode interface
2007-09-02 19:55:17 +00:00
2005-11-30 01:20:53 +00:00
# define TCPCONNECT //a tcpconnect command, that allows the player to connect to tcp-encapsulated qw protocols.
2008-11-09 22:29:28 +00:00
# define IRCCONNECT //an ircconnect command, that allows the player to connect to irc-encapsulated qw protocols... yeah, really.
2005-11-30 01:20:53 +00:00
2013-06-23 02:17:02 +00:00
# define PLUGINS //qvm/dll plugins.
2013-06-29 16:01:07 +00:00
# define SUPPORT_ICE //Interactive Connectivity Establishment protocol, for peer-to-peer connections
2004-10-10 06:32:29 +00:00
2005-02-12 18:56:04 +00:00
# define CSQC_DAT //support for csqc
2004-11-29 01:21:00 +00:00
# define MENU_DAT //support for menu.dat
2008-11-09 22:29:28 +00:00
# define PSET_SCRIPT
# define PSET_CLASSIC
//#define PSET_DARKPLACES
2011-09-05 01:48:23 +00:00
# define VOICECHAT
2004-08-21 01:25:48 +00:00
2015-09-14 15:20:09 +00:00
# if defined(_WIN32) && !defined(FTE_SDL) && !defined(MULTITHREAD) //always thread on win32 non-minimal builds
2013-05-11 14:02:55 +00:00
# define MULTITHREAD
# endif
2004-08-21 01:25:48 +00:00
# endif
# endif
2008-12-23 02:55:20 +00:00
2014-10-05 20:04:11 +00:00
2014-10-14 16:42:48 +00:00
//software rendering is just too glitchy, don't use it.
# if defined(SWQUAKE) && !defined(_DEBUG)
# undef SWQUAKE
# endif
2014-10-05 20:04:11 +00:00
//include a file to update the various configurations for game-specific configs (hopefully just names)
# ifdef BRANDING_INC
# define STRINGIFY2(s) #s
# define STRINGIFY(s) STRINGIFY2(s)
# include STRINGIFY(BRANDING_INC)
# endif
# ifndef DISTRIBUTION
# define DISTRIBUTION "FTE" //short name used to identify this engine. must be a single word
# endif
# ifndef DISTRIBUTIONLONG
# define DISTRIBUTIONLONG "Forethought Entertainment" //effectively the 'company' name
# endif
# ifndef FULLENGINENAME
# define FULLENGINENAME "FTE QuakeWorld" //the posh name for the engine
# endif
# ifndef ENGINEWEBSITE
2015-04-21 04:12:00 +00:00
# define ENGINEWEBSITE "http: //fte.triptohell.info" //url for program
2014-10-05 20:04:11 +00:00
# endif
2014-09-17 03:04:08 +00:00
2014-09-02 02:44:43 +00:00
# ifdef QUAKETC
2014-09-08 23:47:19 +00:00
# define NOBUILTINMENUS //kill engine menus (should be replaced with ewither csqc or menuqc)
2014-09-02 02:44:43 +00:00
# undef Q2CLIENT //not useful
# undef Q2SERVER //not useful
# undef Q3CLIENT //not useful
# undef Q3SERVER //not useful
# undef HLCLIENT //not useful
# undef HLSERVER //not useful
# undef VM_Q1 //not useful
# undef VM_LUA //not useful
# undef HALFLIFEMODELS //yuck
# undef RUNTIMELIGHTING //presumably not useful
2014-09-17 03:04:08 +00:00
# undef HEXEN2
2014-09-02 02:44:43 +00:00
# endif
2014-06-02 16:50:40 +00:00
//#define QUAKESPYAPI //define this if you want the engine to be usable via gamespy/quakespy, which has been dead for a long time now.
2013-04-02 05:18:17 +00:00
# ifdef FTE_TARGET_WEB
2013-07-31 00:20:16 +00:00
//try to trim the fat
# undef VOICECHAT //too lazy to compile speex
# undef HLCLIENT //dlls...
# undef HLSERVER //dlls...
# undef CL_MASTER //bah. use the site to specify the servers.
# undef SV_MASTER //yeah, because that makes sense in a browser
# undef RAGDOLL //no ode
# undef TCPCONNECT //err...
# undef IRCCONNECT //not happening
# undef PLUGINS //pointless
# undef VM_Q1 //no dlls
# undef MAP_PROC //meh
# undef HALFLIFEMODELS //blurgh
# undef WEBSERVER //hah, yeah, right
2014-09-02 02:44:43 +00:00
# undef SUPPORT_ICE //kinda requires udp, so not usable
2013-07-31 00:20:16 +00:00
//extra features stripped to try to reduce memory footprints
2013-08-21 07:14:39 +00:00
# undef RUNTIMELIGHTING //too slow anyway
2013-07-31 00:20:16 +00:00
# undef Q2CLIENT
# undef Q2SERVER //requires a dll anyway.
# undef Q3CLIENT
# undef Q3SERVER //trying to trim memory use
2014-12-09 14:39:54 +00:00
// #undef Q2BSPS //emscripten can't cope with bss, leading to increased download time. too lazy to fix.
// #undef Q3BSPS //emscripten can't cope with bss, leading to increased download time. too lazy to fix.
2016-07-12 00:40:13 +00:00
# undef TERRAIN
2014-08-27 08:41:31 +00:00
// #undef PSET_SCRIPT //bss+size
2014-08-25 07:35:41 +00:00
# define GLSLONLY //pointless having the junk
2014-08-27 08:41:31 +00:00
# define GLESONLY //should reduce the conditions a little
2014-08-25 07:35:41 +00:00
# define R_MAX_RECURSE 2 //less bss
2014-08-27 08:41:31 +00:00
// #undef RTLIGHTS
2013-04-02 05:18:17 +00:00
# endif
2014-03-30 08:55:06 +00:00
# ifdef WINRT
# undef TCPCONNECT //err...
# undef IRCCONNECT //not happening
# undef AVAIL_DSOUND //yeah, good luck there
# undef AVAIL_DINPUT //nope, not supported.
# undef SV_MASTER //no socket interface
# undef CL_MASTER //no socket interface
# undef WEBSERVER //http/ftp servers
# undef WEBCLIENT //http/ftp clients.
# undef MULTITHREAD
# endif
2011-09-05 01:48:23 +00:00
# ifdef ANDROID
2013-07-31 00:20:16 +00:00
# undef RTLIGHTS
# ifndef SPEEX_STATIC
# undef VOICECHAT
# endif
# undef TEXTEDITOR
2014-08-27 08:41:31 +00:00
# define GLESONLY //should reduce the conditions a little
2011-09-05 01:48:23 +00:00
# endif
2013-07-31 00:20:16 +00:00
# if defined(NACL)
2013-08-06 10:48:51 +00:00
# undef SUPPORT_ICE
2013-07-31 00:20:16 +00:00
# undef CL_MASTER //no sockets support
# undef SV_MASTER //noone uses this anyway
# undef WEBSERVER //no sockets support (certainly no servers)
# undef TCPCONNECT
# undef IRCCONNECT
2014-08-27 08:41:31 +00:00
# define GLSLONLY //pointless having the junk
# define GLESONLY //should reduce the conditions a little
2012-04-09 19:12:12 +00:00
# endif
2011-09-05 01:48:23 +00:00
2012-11-27 03:23:19 +00:00
# ifndef MULTITHREAD
2014-10-05 20:04:11 +00:00
//database code requires threads to do stuff async.
2012-11-27 03:23:19 +00:00
# undef USE_SQLITE
# undef USE_MYSQL
# endif
# if defined(USE_SQLITE) || defined(USE_MYSQL)
# define SQL
# endif
2004-08-21 01:25:48 +00:00
//fix things a little...
2010-03-14 14:35:56 +00:00
# ifdef NPQTV
2011-09-16 05:56:54 +00:00
# define NPFTE
# undef NPQTV
# endif
# ifdef NPFTE
2010-03-14 14:35:56 +00:00
/*plugins require threads and stuff now, and http download support*/
# ifndef MULTITHREAD
# define MULTITHREAD
# define WEBCLIENT
# endif
# endif
2004-08-21 01:25:48 +00:00
2014-10-05 20:04:11 +00:00
# if (defined(NOLOADERTHREAD) || !defined(MULTITHREAD)) && defined(LOADERTHREAD)
# undef LOADERTHREAD
# endif
2004-08-21 01:25:48 +00:00
# ifndef _WIN32
2007-09-02 19:55:17 +00:00
# undef QTERM //not supported - FIXME: move to native plugin
# endif
2004-08-21 01:25:48 +00:00
# if (defined(Q2CLIENT) || defined(Q2SERVER))
# ifndef Q2BSPS
# error "Q2 game support without Q2BSP support. doesn't make sense"
# endif
# if !defined(MD2MODELS) || !defined(SP2MODELS)
# error "Q2 game support without full Q2 model support. doesn't make sense"
# endif
# endif
2011-09-16 05:56:54 +00:00
# ifdef NPFTE
2009-04-01 22:03:56 +00:00
# undef TEXTEDITOR
# undef WEBSERVER
# endif
2004-08-21 01:25:48 +00:00
2013-11-21 23:02:28 +00:00
# ifndef AVAIL_ZLIB
2014-03-30 08:55:06 +00:00
# undef SUPPORT_ICE //depends upon zlib's crc32 for fingerprinting. I cba writing my own.
2013-11-21 23:02:28 +00:00
# endif
2004-08-21 01:25:48 +00:00
# ifdef SERVERONLY //remove options that don't make sense on only a server
# undef Q2CLIENT
2004-12-24 08:45:56 +00:00
# undef Q3CLIENT
2009-03-07 05:05:54 +00:00
# undef HLCLIENT
2009-04-01 22:03:56 +00:00
# undef HALFLIFEMODELS
2005-09-14 04:21:02 +00:00
# undef VM_UI
# undef VM_CG
2004-08-21 01:25:48 +00:00
# undef TEXTEDITOR
# undef RUNTIMELIGHTING
2014-05-10 13:42:13 +00:00
# undef DSPMODELS
# undef SPRMODELS
# undef SP2MODELS
2008-11-09 22:29:28 +00:00
# undef PSET_SCRIPT
# undef PSET_CLASSIC
# undef PSET_DARKPLACES
2004-08-21 01:25:48 +00:00
# endif
2007-10-29 06:06:20 +00:00
# ifdef CLIENTONLY //remove optional server components that make no sence on a client only build.
2004-08-21 01:25:48 +00:00
# undef Q2SERVER
2005-08-26 22:56:51 +00:00
# undef Q3SERVER
2009-03-07 05:05:54 +00:00
# undef HLSERVER
2004-08-21 01:25:48 +00:00
# undef WEBSERVER
2007-09-02 19:55:17 +00:00
# undef VM_Q1
2010-12-18 21:30:16 +00:00
# undef SQL
2004-08-21 01:25:48 +00:00
# endif
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéÃóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
2016-07-12 00:40:13 +00:00
# if (defined(CSQC_DAT) || !defined(CLIENTONLY)) && defined(PLUGINS) //use ode only if we have a constant world state, and the library is enbled in some form.
2015-02-02 08:01:53 +00:00
# define USERBE
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéÃóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
# endif
# if defined(ZYMOTICMODELS) || defined(MD5MODELS) || defined(DPMMODELS) || defined(PSKMODELS) || defined(INTERQUAKEMODELS)
# define SKELETALMODELS //defined if we have a skeletal model.
# endif
# if (defined(CSQC_DAT) || !defined(CLIENTONLY)) && defined(SKELETALMODELS)
# define SKELETALOBJECTS //the skeletal objects API is only used if we actually have skeletal models, and gamecode that uses the builtins.
# endif
2015-02-02 08:01:53 +00:00
# if !defined(USERBE) || !defined(SKELETALMODELS)
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéÃóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
# undef RAGDOLL //not possible to ragdoll if we don't have certain other features.
# endif
2016-07-12 00:40:13 +00:00
# if !defined(RTLIGHTS)
# undef MAP_PROC //doom3 maps kinda NEED rtlights to look decent
2004-08-21 01:25:48 +00:00
# endif
2004-12-15 19:47:56 +00:00
# if !defined(Q3BSPS)
2004-12-24 08:45:56 +00:00
# undef Q3CLIENT //reconsider this (later)
2005-08-26 22:56:51 +00:00
# undef Q3SERVER //reconsider this (later)
2004-12-24 08:45:56 +00:00
# endif
# ifndef Q3CLIENT
# undef VM_CG // :(
2005-09-09 23:40:55 +00:00
# undef VM_UI
2004-12-24 08:45:56 +00:00
# else
# define VM_CG
2005-09-09 23:40:55 +00:00
# define VM_UI
2004-12-24 08:45:56 +00:00
# endif
2007-09-02 19:55:17 +00:00
# if defined(VM_Q1) || defined(VM_UI) || defined(VM_CG) || defined(Q3SERVER) || defined(PLUGINS)
2004-12-24 08:45:56 +00:00
# define VM_ANY
2004-12-15 19:47:56 +00:00
# endif
2004-08-21 01:25:48 +00:00
# define PROTOCOLEXTENSIONS
2010-07-11 02:22:39 +00:00
# ifdef MINIMAL
# define IFMINIMAL(x,y) x
# else
# define IFMINIMAL(x,y) y
# endif
2005-10-04 21:08:06 +00:00
//#define PRE_SAYONE 2.487 //FIXME: remove.
2004-08-21 01:25:48 +00:00
// defs common to client and server
2005-11-03 23:43:13 +00:00
# ifndef PLATFORM
2014-09-17 03:04:08 +00:00
# if defined(FTE_TARGET_WEB)
# define PLATFORM "Web"
# elif defined(NACL)
# define PLATFORM "Nacl"
2015-07-06 14:47:46 +00:00
# elif defined(_WIN32_WCE)
# define PLATFORM "WinCE"
# define ARCH_DL_POSTFIX ".dll"
2014-09-17 03:04:08 +00:00
# elif defined(_WIN32)
2015-07-06 14:47:46 +00:00
# if defined(WINRT)
# define PLATFORM "WinRT" /*those poor poor souls. maybe just maybe I'll actually get the tools for a port, its just a shame that I won't be able to release said port*/
# elif defined(__amd64__)
2005-11-03 23:43:13 +00:00
# define PLATFORM "Win64"
2005-12-23 01:23:44 +00:00
# else
# define PLATFORM "Win32"
2005-11-03 23:43:13 +00:00
# endif
2013-05-03 04:28:08 +00:00
# define ARCH_DL_POSTFIX ".dll"
2015-07-06 14:47:46 +00:00
# elif defined(_WIN16)
# define PLATFORM "Win16"
# define ARCH_DL_POSTFIX ".dll"
2013-11-21 23:02:28 +00:00
# elif defined(__CYGWIN__)
# define PLATFORM "Cygwin" /*technically also windows*/
# define ARCH_DL_POSTFIX ".dll"
2015-07-06 14:47:46 +00:00
# elif defined(ANDROID) || defined(__ANDROID__)
Android: fat presses, vibrator, onscreen keyboard, keep-screen-on, console scaling, touch-based console scrolling, additional bindables.
Some memory leaks fixed.
latency with the nq protocol over loopback is much reduced.
Terrain: now mostly a property of a (q1 for now) bsp map, file format changed, glsl now built in, terrain editor builtin improved/changed, holes supported.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4067 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-07-14 16:25:18 +00:00
# define PLATFORM "Android" /*technically also linux*/
2005-11-03 23:43:13 +00:00
# elif defined(__linux__)
# if defined(__amd64__)
# define PLATFORM "Linux64"
# else
# define PLATFORM "Linux"
# endif
2015-07-06 14:47:46 +00:00
# elif defined(__APPLE__)
# include "TargetConditionals.h"
# if TARGET_IPHONE_SIMULATOR
# define PLATFORM "iOSSim"
# elif TARGET_OS_IPHONE
# define PLATFORM "iOS"
# elif TARGET_OS_MAC
# define PLATFORM "Mac"
# else
# define PLATFORM "Apple"
# endif
2005-11-03 23:43:13 +00:00
# elif defined(__FreeBSD__)
# define PLATFORM "FreeBSD"
# elif defined(__OpenBSD__)
# define PLATFORM "OpenBSD"
# elif defined(__NetBSD__)
# define PLATFORM "NetBSD"
2015-07-06 14:47:46 +00:00
# elif defined(BSD)
# define PLATFORM "BSD"
2005-11-03 23:43:13 +00:00
# elif defined(__MORPHOS__)
# define PLATFORM "MorphOS"
2015-07-06 14:47:46 +00:00
# elif defined(__amigaos__)
# define PLATFORM "AmigaOS"
2005-11-29 23:20:02 +00:00
# elif defined(MACOSX)
# define PLATFORM "MacOS X"
2015-07-06 14:47:46 +00:00
# elif defined(__DOS__)
# define PLATFORM "Dos"
2005-09-29 23:49:24 +00:00
# else
2005-11-03 23:43:13 +00:00
# define PLATFORM "Unknown"
2005-09-29 23:49:24 +00:00
# endif
2004-08-21 01:25:48 +00:00
# endif
2013-05-03 04:28:08 +00:00
# ifndef ARCH_DL_POSTFIX
# define ARCH_DL_POSTFIX ".so"
# endif
2015-06-04 06:15:14 +00:00
# if defined(_M_AMD64) || defined(__amd64__)
# ifdef _WIN32
# define ARCH_CPU_POSTFIX "x64"
# else
# define ARCH_CPU_POSTFIX "amd64"
# endif
2013-05-03 04:28:08 +00:00
# elif defined(_M_IX86) || defined(__i386__)
# define ARCH_CPU_POSTFIX "x86"
# elif defined(__powerpc__) || defined(__ppc__)
# define ARCH_CPU_POSTFIX "ppc"
# elif defined(__arm__)
# define ARCH_CPU_POSTFIX "arm"
# else
# define ARCH_CPU_POSTFIX "unk"
# endif
2004-08-21 01:25:48 +00:00
# ifdef _MSC_VER
2009-11-04 21:16:50 +00:00
# define VARGS __cdecl
# define MSVCDISABLEWARNINGS
2010-03-14 14:35:56 +00:00
# if _MSC_VER >= 1300
# define FTE_DEPRECATED __declspec(deprecated)
2012-12-04 19:37:57 +00:00
# ifndef _CRT_SECURE_NO_WARNINGS
# define _CRT_SECURE_NO_WARNINGS
# endif
# ifndef _CRT_NONSTDC_NO_WARNINGS
# define _CRT_NONSTDC_NO_WARNINGS
# endif
2010-03-14 14:35:56 +00:00
# endif
2009-11-04 21:16:50 +00:00
# define NORETURN __declspec(noreturn)
# endif
# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
# define FTE_DEPRECATED __attribute__((__deprecated__)) //no idea about the actual gcc version
2016-07-12 00:40:13 +00:00
# ifdef _WIN32
# define LIKEPRINTF(x) __attribute__((format(ms_printf,x,x+1)))
# else
# define LIKEPRINTF(x) __attribute__((format(printf,x,x+1)))
# endif
2009-11-04 21:16:50 +00:00
# endif
# if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
# define NORETURN __attribute__((noreturn))
# endif
2014-03-30 08:55:06 +00:00
//I'm making my own restrict, because msvc's headers can't cope if I #define restrict to __restrict, and quite possibly other platforms too
2012-05-09 15:30:53 +00:00
# if __STDC_VERSION__ >= 199901L
# define fte_restrict restrict
# elif defined(_MSC_VER)
# define fte_restrict __restrict
# else
# define fte_restrict
# endif
2016-07-12 00:40:13 +00:00
# if _MSC_VER >= 1300
# define FTE_ALIGN(a) __declspec(align(a))
# elif defined(__clang__)
# define FTE_ALIGN(a) __attribute__((aligned(a)))
# elif __GNUC__ >= 3
# define FTE_ALIGN(a) __attribute__((aligned(a)))
# else
# define FTE_ALIGN(a)
# endif
2009-11-04 21:16:50 +00:00
2015-07-14 14:47:00 +00:00
# if __STDC_VERSION__ >= 199901L
//C99 specifies that an inline function is used as a hint. there should be an actual body/copy somewhere (extern inline foo).
# define fte_inline inline //must have non-line 'int foo();' somewhere
# define fte_inlinebody extern inline
# elif defined(_MSC_VER)
//msvc will inline like C++. and that's fine.
# define fte_inline __inline //c++ style
# define fte_inlinebody
# elif (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
//gcc will generally inline where it can - so long as its static. but that doesn't stop it warning
# define fte_inline __attribute__((unused)) static
# define fte_inlinebody static
# else
//make it static so we at least don't get errors (might still get warnings. see above)
# define fte_inline static
# define fte_inlinebody static
# endif
2009-11-04 21:16:50 +00:00
# ifndef FTE_DEPRECATED
# define FTE_DEPRECATED
# endif
# ifndef LIKEPRINTF
# define LIKEPRINTF(x)
2004-08-21 01:25:48 +00:00
# endif
# ifndef VARGS
# define VARGS
# endif
2009-11-04 21:16:50 +00:00
# ifndef NORETURN
# define NORETURN
# endif
2004-08-21 01:25:48 +00:00
2009-04-06 00:34:32 +00:00
# ifdef _WIN32
# define ZEXPORT VARGS
# define ZEXPORTVA VARGS
# endif
2004-08-21 01:25:48 +00:00
// !!! if this is changed, it must be changed in d_ifacea.h too !!!
# define CACHE_SIZE 32 // used to align key data structures
# define UNUSED(x) (x = x) // for pesky compiler / lint warnings
// up / down
# define PITCH 0
// left / right
# define YAW 1
// fall over
# define ROLL 2
2013-05-03 04:28:08 +00:00
# define MAX_QPATH 128 // max length of a quake game pathname
2015-05-14 03:06:58 +00:00
# define MAX_OSPATH 1024 // max length of a filesystem pathname (260 on windows, but needs to be longer for utf8)
2004-08-21 01:25:48 +00:00
# define ON_EPSILON 0.1 // point on plane side epsilon
Fixes, workarounds, and breakages. Hexen2 should work much better (-hexen2 says no mission pack, -portals says h2mp). Started working on splitting bigcoords per client, far too much work still to go on that. Removed gl_ztrick entirely. Enabled csprogs download by default. Added client support for fitzquake's 666 protocol, needs testing, some cleanup for dp protocols too, no server support, couldn't selectively enable it anyway. Now attempting to cache shadow meshes for explosions and stuff. Played with lightmaps a little, should potentially run a little faster on certain (intel?) cards. Tweeked npfte a little to try to avoid deadlocks and crashes. Fixed sky worldspawn parsing. Added h2mp's model format. Fixed baseline issue in q2 client, made servers generate q2 baselines. MOVETYPE_PUSH will not rotate extra if rotation is forced. Made status command show allowed client types. Changed lighting on weapons - should now be shaded.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3572 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-08-11 03:36:31 +00:00
# define MAX_NQMSGLEN 65536 // max length of a reliable message
2004-08-21 01:25:48 +00:00
# define MAX_Q2MSGLEN 1400
# define MAX_QWMSGLEN 1450
Fixes, workarounds, and breakages. Hexen2 should work much better (-hexen2 says no mission pack, -portals says h2mp). Started working on splitting bigcoords per client, far too much work still to go on that. Removed gl_ztrick entirely. Enabled csprogs download by default. Added client support for fitzquake's 666 protocol, needs testing, some cleanup for dp protocols too, no server support, couldn't selectively enable it anyway. Now attempting to cache shadow meshes for explosions and stuff. Played with lightmaps a little, should potentially run a little faster on certain (intel?) cards. Tweeked npfte a little to try to avoid deadlocks and crashes. Fixed sky worldspawn parsing. Added h2mp's model format. Fixed baseline issue in q2 client, made servers generate q2 baselines. MOVETYPE_PUSH will not rotate extra if rotation is forced. Made status command show allowed client types. Changed lighting on weapons - should now be shaded.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3572 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-08-11 03:36:31 +00:00
# define MAX_OVERALLMSGLEN 65536 // mvdsv sends packets this big
2004-08-21 01:25:48 +00:00
# define MAX_DATAGRAM 1450 // max length of unreliable message
# define MAX_Q2DATAGRAM MAX_Q2MSGLEN
# define MAX_NQDATAGRAM 1024 // max length of unreliable message
# define MAX_OVERALLDATAGRAM MAX_DATAGRAM
# define MAX_BACKBUFLEN 1200
//
// per-level limits
//
2014-08-25 07:35:41 +00:00
# ifdef FTE_TARGET_WEB
# define MAX_EDICTS ((1<<15)-1)
# else
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéÃóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
//#define MAX_EDICTS ((1<<22)-1) // expandable up to 22 bits
# define MAX_EDICTS ((1<<18)-1) // expandable up to 22 bits
2014-08-25 07:35:41 +00:00
# endif
2016-01-18 05:22:07 +00:00
# define MAX_LIGHTSTYLES 255 // 8bit. 255 = 'invalid', and thus only 0-254 are the valid indexes.
2005-09-29 23:49:24 +00:00
# define MAX_STANDARDLIGHTSTYLES 64
2016-07-12 00:40:13 +00:00
# define MAX_PRECACHE_MODELS 4096 // 14bit.
# define MAX_PRECACHE_SOUNDS 2048 // 14bit.
2016-01-18 05:22:07 +00:00
# define MAX_SSPARTICLESPRE 1024 // 14bit. precached particle effect names, for server-side pointparticles/trailparticles.
2009-07-06 01:20:20 +00:00
# define MAX_VWEP_MODELS 32
2004-08-21 01:25:48 +00:00
2014-02-07 08:38:40 +00:00
# define MAX_CSMODELS 1024 // these live entirly clientside
2013-03-12 22:44:00 +00:00
# define MAX_CSPARTICLESPRE 1024
2005-02-12 18:56:04 +00:00
2004-08-21 01:25:48 +00:00
# define SAVEGAME_COMMENT_LENGTH 39
# define MAX_STYLESTRING 64
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéÃóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
# define MAX_Q2EDICTS 1024
2004-08-21 01:25:48 +00:00
//
// stats are integers communicated to the client by the server
//
# define MAX_QW_STATS 32
enum {
2015-09-01 04:45:15 +00:00
# ifdef QUAKESTATS
2004-08-21 01:25:48 +00:00
STAT_HEALTH = 0 ,
//STAT_FRAGS = 1,
2015-03-03 00:14:43 +00:00
STAT_WEAPONMODELI = 2 ,
2004-08-21 01:25:48 +00:00
STAT_AMMO = 3 ,
STAT_ARMOR = 4 ,
STAT_WEAPONFRAME = 5 ,
STAT_SHELLS = 6 ,
STAT_NAILS = 7 ,
STAT_ROCKETS = 8 ,
STAT_CELLS = 9 ,
STAT_ACTIVEWEAPON = 10 ,
STAT_TOTALSECRETS = 11 ,
STAT_TOTALMONSTERS = 12 ,
STAT_SECRETS = 13 , // bumped on client side by svc_foundsecret
STAT_MONSTERS = 14 , // bumped by svc_killedmonster
STAT_ITEMS = 15 ,
2004-12-05 08:17:46 +00:00
STAT_VIEWHEIGHT = 16 , //same as zquake
STAT_TIME = 17 , //zquake
2013-03-12 23:09:25 +00:00
STAT_MATCHSTARTTIME = 18 ,
2004-08-21 01:25:48 +00:00
# ifdef SIDEVIEWS
STAT_VIEW2 = 20 ,
# endif
2004-12-05 08:17:46 +00:00
STAT_VIEWZOOM = 21 , // DP
2004-08-21 01:25:48 +00:00
2012-02-12 05:18:31 +00:00
//these stats are used only when running a hexen2 mod/hud, and will never be used for a quake mod/hud/generic code.
2004-08-21 01:25:48 +00:00
STAT_H2_LEVEL = 32 , // changes stat bar
STAT_H2_INTELLIGENCE , // changes stat bar
STAT_H2_WISDOM , // changes stat bar
STAT_H2_STRENGTH , // changes stat bar
STAT_H2_DEXTERITY , // changes stat bar
STAT_H2_BLUEMANA , // changes stat bar
STAT_H2_GREENMANA , // changes stat bar
STAT_H2_EXPERIENCE , // changes stat bar
STAT_H2_CNT_TORCH , // changes stat bar
STAT_H2_CNT_H_BOOST , // changes stat bar
STAT_H2_CNT_SH_BOOST , // changes stat bar
STAT_H2_CNT_MANA_BOOST , // changes stat bar
STAT_H2_CNT_TELEPORT , // changes stat bar
STAT_H2_CNT_TOME , // changes stat bar
STAT_H2_CNT_SUMMON , // changes stat bar
STAT_H2_CNT_INVISIBILITY , // changes stat bar
STAT_H2_CNT_GLYPH , // changes stat bar
STAT_H2_CNT_HASTE , // changes stat bar
STAT_H2_CNT_BLAST , // changes stat bar
STAT_H2_CNT_POLYMORPH , // changes stat bar
STAT_H2_CNT_FLIGHT , // changes stat bar
STAT_H2_CNT_CUBEOFFORCE , // changes stat bar
STAT_H2_CNT_INVINCIBILITY , // changes stat bar
STAT_H2_ARTIFACT_ACTIVE ,
STAT_H2_ARTIFACT_LOW ,
STAT_H2_MOVETYPE ,
2015-12-28 17:41:39 +00:00
STAT_H2_CAMERAMODE , //entity
2004-08-21 01:25:48 +00:00
STAT_H2_HASTED ,
STAT_H2_INVENTORY ,
STAT_H2_RINGS_ACTIVE ,
STAT_H2_RINGS_LOW ,
2008-06-01 22:06:22 +00:00
STAT_H2_ARMOUR1 ,
STAT_H2_ARMOUR2 ,
STAT_H2_ARMOUR3 ,
STAT_H2_ARMOUR4 ,
2004-08-21 01:25:48 +00:00
STAT_H2_FLIGHT_T ,
STAT_H2_WATER_T ,
STAT_H2_TURNING_T ,
STAT_H2_REGEN_T ,
2015-12-28 17:41:39 +00:00
STAT_H2_PUZZLE1 , //string
STAT_H2_PUZZLE2 , //string
STAT_H2_PUZZLE3 , //string
STAT_H2_PUZZLE4 , //string
STAT_H2_PUZZLE5 , //string
STAT_H2_PUZZLE6 , //string
STAT_H2_PUZZLE7 , //string
STAT_H2_PUZZLE8 , //string
2004-08-21 01:25:48 +00:00
STAT_H2_MAXHEALTH ,
STAT_H2_MAXMANA ,
STAT_H2_FLAGS ,
2008-06-01 22:06:22 +00:00
STAT_H2_PLAYERCLASS ,
2004-08-21 01:25:48 +00:00
2015-12-28 17:41:39 +00:00
STAT_H2_OBJECTIVE1 , //integer
STAT_H2_OBJECTIVE2 , //integer
2010-08-16 02:03:02 +00:00
2007-09-02 19:55:17 +00:00
2012-02-12 05:18:31 +00:00
STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR = 220 , // DP
STAT_MOVEVARS_AIRCONTROL_PENALTY = 221 , // DP
STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW = 222 , // DP
STAT_MOVEVARS_AIRSTRAFEACCEL_QW = 223 , // DP
STAT_MOVEVARS_AIRCONTROL_POWER = 224 , // DP
STAT_MOVEFLAGS = 225 , // DP
STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL = 226 , // DP
STAT_MOVEVARS_WARSOWBUNNY_ACCEL = 227 , // DP
STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED = 228 , // DP
STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL = 229 , // DP
STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO = 230 , // DP
STAT_MOVEVARS_AIRSTOPACCELERATE = 231 , // DP
STAT_MOVEVARS_AIRSTRAFEACCELERATE = 232 , // DP
STAT_MOVEVARS_MAXAIRSTRAFESPEED = 233 , // DP
STAT_MOVEVARS_AIRCONTROL = 234 , // DP
STAT_FRAGLIMIT = 235 , // DP
STAT_TIMELIMIT = 236 , // DP
STAT_MOVEVARS_WALLFRICTION = 237 , // DP
STAT_MOVEVARS_FRICTION = 238 , // DP
STAT_MOVEVARS_WATERFRICTION = 239 , // DP
STAT_MOVEVARS_TICRATE = 240 , // DP
STAT_MOVEVARS_TIMESCALE = 241 , // DP
STAT_MOVEVARS_GRAVITY = 242 , // DP
STAT_MOVEVARS_STOPSPEED = 243 , // DP
STAT_MOVEVARS_MAXSPEED = 244 , // DP
STAT_MOVEVARS_SPECTATORMAXSPEED = 245 , // DP
STAT_MOVEVARS_ACCELERATE = 246 , // DP
STAT_MOVEVARS_AIRACCELERATE = 247 , // DP
STAT_MOVEVARS_WATERACCELERATE = 248 , // DP
STAT_MOVEVARS_ENTGRAVITY = 249 , // DP
STAT_MOVEVARS_JUMPVELOCITY = 250 , // DP
STAT_MOVEVARS_EDGEFRICTION = 251 , // DP
STAT_MOVEVARS_MAXAIRSPEED = 252 , // DP
STAT_MOVEVARS_STEPHEIGHT = 253 , // DP
STAT_MOVEVARS_AIRACCEL_QW = 254 , // DP
2007-09-02 19:55:17 +00:00
STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION = 255 , // DP
2015-09-01 04:45:15 +00:00
# endif
2007-09-02 19:55:17 +00:00
MAX_CL_STATS = 256
2004-08-21 01:25:48 +00:00
} ;
2015-09-01 04:45:15 +00:00
# ifdef QUAKEHUD
2004-08-21 01:25:48 +00:00
//
// item flags
//
2016-07-12 00:40:13 +00:00
# define IT_SHOTGUN (1u<<0)
# define IT_SUPER_SHOTGUN (1u<<1)
# define IT_NAILGUN (1u<<2)
# define IT_SUPER_NAILGUN (1u<<3)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_GRENADE_LAUNCHER (1u<<4)
# define IT_ROCKET_LAUNCHER (1u<<5)
# define IT_LIGHTNING (1u<<6)
# define IT_SUPER_LIGHTNING (1u<<7)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_SHELLS (1u<<8)
# define IT_NAILS (1u<<9)
# define IT_ROCKETS (1u<<10)
# define IT_CELLS (1u<<11)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_AXE (1u<<12)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_ARMOR1 (1u<<13)
# define IT_ARMOR2 (1u<<14)
# define IT_ARMOR3 (1u<<15)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_SUPERHEALTH (1u<<16)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_KEY1 (1u<<17)
# define IT_KEY2 (1u<<18)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_INVISIBILITY (1u<<19)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_INVULNERABILITY (1u<<20)
# define IT_SUIT (1u<<21)
# define IT_QUAD (1u<<22)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_SIGIL1 (1u<<28)
2004-08-21 01:25:48 +00:00
2016-07-12 00:40:13 +00:00
# define IT_SIGIL2 (1u<<29)
# define IT_SIGIL3 (1u<<30)
# define IT_SIGIL4 (1u<<31)
2015-09-01 04:45:15 +00:00
# endif
2004-08-21 01:25:48 +00:00
//
// print flags
//
# define PRINT_LOW 0 // pickup messages
# define PRINT_MEDIUM 1 // death messages
# define PRINT_HIGH 2 // critical messages
# define PRINT_CHAT 3 // chat messages
//split screen stuff
# define MAX_SPLITS 4
//savegame vars
# define SAVEGAME_COMMENT_LENGTH 39
# define SAVEGAME_VERSION 667
2007-06-20 00:02:54 +00:00
# define PM_DEFAULTSTEPHEIGHT 18
2004-08-21 01:25:48 +00:00
# define dem_cmd 0
# define dem_read 1
# define dem_set 2
# define dem_multiple 3
# define dem_single 4
# define dem_stats 5
# define dem_all 6
# endif //ifndef __BOTHDEFS_H