*/
+#ifndef BSPFILE_H
+#define BSPFILE_H
#define MAX_MAP_HULLS 16 // Q1BSP has 4, Hexen2 Q1BSP has 8, MCBSP has 16
} dleaf_t;
*/
+#endif
+#include "qtypes.h"
+
void SCR_CaptureVideo_Ogg_Init(void);
qbool SCR_CaptureVideo_Ogg_Available(void);
void SCR_CaptureVideo_Ogg_BeginVideo(void);
*/
+#include "qtypes.h"
+#include "cvar.h"
+
extern cvar_t cdaudioinitialized;
int CDAudio_Init(void);
#ifndef CL_SCREEN_H
#define CL_SCREEN_H
+#include "qtypes.h"
+#include "cvar.h"
+
void SHOWLMP_decodehide(void);
void SHOWLMP_decodeshow(void);
void SHOWLMP_drawall(void);
#ifndef CL_VIDEO_H
#define CL_VIDEO_H
+#include "draw.h"
+
#define CLVIDEOPREFIX "video/"
#define CLTHRESHOLD 2.0
#ifndef CMD_H
#define CMD_H
+#include "qtypes.h"
+#include "com_list.h"
+#include "cvar.h"
#include "thread.h"
+#include "zone.h"
struct cmd_state_s;
#ifndef COLLISION_H
#define COLLISION_H
+#include "cvar.h"
+#include "matrixlib.h"
+#include "zone.h"
+typedef struct texture_s texture_t;
+typedef struct model_s dp_model_t;
+
typedef union plane_s
{
struct
#define LIST_H
#include <stddef.h>
+#include "qtypes.h"
typedef struct llist_s
{
#ifndef COMMON_H
#define COMMON_H
+#include <stdarg.h>
+#include "qtypes.h"
+#include "qdefs.h"
/// MSVC has a different name for several standard functions
#ifdef WIN32
#ifndef CONSOLE_H
#define CONSOLE_H
+#include <stddef.h>
+#include "qtypes.h"
+#include "cmd.h"
+#include "lhnet.h"
+
//
// console
//
#ifndef CRYPTO_H
#define CRYPTO_H
+#include <stddef.h>
+#include "qtypes.h"
+#include "cvar.h"
+#include "lhnet.h"
+
extern cvar_t crypto_developer;
extern cvar_t crypto_aeslevel;
#define ENCRYPTION_REQUIRED (crypto_aeslevel.integer >= 3)
// AES case causes 16 to 31 bytes overhead
// SHA256 case causes 16 bytes overhead as we truncate to 128bit
-#include "lhnet.h"
-
#define FP64_SIZE 44
#define DHKEY_SIZE 16
*/
// cvar.h
-struct cmd_state_s;
-typedef struct cmd_state_s cmd_state_t;
-
/*
cvar_t variables are used to hold scalar or string variables that can be changed or displayed at the console or prog code as well as accessed directly
#ifndef CVAR_H
#define CVAR_H
+#include "qtypes.h"
+#include "qdefs.h"
+typedef struct cmd_state_s cmd_state_t;
+typedef struct qfile_s qfile_t;
+
typedef struct cvar_s
{
int flags;
<ClInclude Include="protocol.h" />\r
<ClInclude Include="prvm_cmds.h" />\r
<ClInclude Include="prvm_execprogram.h" />\r
+ <ClInclude Include="qdefs.h" />\r
+ <ClInclude Include="qstats.h" />\r
<ClInclude Include="qtypes.h" />\r
<ClInclude Include="quakedef.h" />\r
<ClInclude Include="r_lerpanim.h" />\r
<ClInclude Include="protocol.h" />\r
<ClInclude Include="prvm_cmds.h" />\r
<ClInclude Include="prvm_execprogram.h" />\r
+ <ClInclude Include="qdefs.h" />\r
+ <ClInclude Include="qstats.h" />\r
<ClInclude Include="qtypes.h" />\r
<ClInclude Include="quakedef.h" />\r
<ClInclude Include="r_lerpanim.h" />\r
#ifndef DPVSIMPLEDECODE_H
#define DPVSIMPLEDECODE_H
+#include "qtypes.h"
+#include "qdefs.h"
+#include "cvar.h"
#include "cl_video.h"
+#include "draw.h"
#define DPVSIMPLEDECODEERROR_NONE 0
#define DPVSIMPLEDECODEERROR_EOF 1
#ifndef DRAW_H
#define DRAW_H
+#include <stddef.h>
+#include "qtypes.h"
+#include "r_textures.h"
+
typedef struct cachepic_s cachepic_t;
typedef enum cachepicflags_e
#ifndef FS_H
#define FS_H
+#include <stddef.h>
+#include <stdarg.h>
+#include "qtypes.h"
+#include "qdefs.h"
+#include "zone.h"
// ------ Types ------ //
#ifndef HMAC_H
#define HMAC_H
+#include "qtypes.h"
+
typedef void (*hashfunc_t) (unsigned char *out, const unsigned char *in, int n);
qbool hmac(
hashfunc_t hfunc, int hlen, int hblock,
#ifndef HOST_H
#define HOST_H
+#include <setjmp.h>
+#include "qtypes.h"
+#include "qdefs.h"
+#include "cmd.h"
+
typedef enum host_state_e
{
host_shutdown,
void Host_LockSession(void);
void Host_UnlockSession(void);
void Host_AbortCurrentFrame(void);
+
+#endif
}
}
-static const unsigned char concharimage[] =
-{
+
#include "lhfont.h"
-};
static unsigned char *Image_GenerateConChars(void)
{
#ifndef IMAGE_H
#define IMAGE_H
+#include <stddef.h>
+#include "qtypes.h"
+#include "cvar.h"
+#include "r_textures.h"
+
extern int image_width, image_height;
unsigned char *Image_GenerateNoTexture(void);
#ifndef PNG_H
#define PNG_H
+#include "qtypes.h"
+
qbool PNG_OpenLibrary (void);
void PNG_CloseLibrary (void);
unsigned char* PNG_LoadImage_BGRA (const unsigned char *f, int filesize, int *miplevel);
#ifndef INPUT_H
#define INPUT_H
+#include "qtypes.h"
+#include "cvar.h"
+
extern cvar_t in_pitch_min;
extern cvar_t in_pitch_max;
#ifndef JPEG_H
#define JPEG_H
+#include <stddef.h>
+#include "qtypes.h"
qbool JPEG_OpenLibrary (void);
void JPEG_CloseLibrary (void);
#define __KEYS_H
#include "qtypes.h"
+#include "qdefs.h"
+#include "fs.h"
+#include "cmd.h"
//
// these are the key numbers that should be passed to Key_Event
+static const unsigned char concharimage[] =
+{
0x00,0x00,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x08,0x99,0x00,0x83,0xFF,0xFF,0x00,0xE1,0x00,0x99,0x00,0x83,0xFF,0xFF,0x00,0xE1,0x00,0x81,0x00,0x83,0xFF,0x93,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x8B,0x00,0x89,0xFF,0x8B,0x00,0x85,0xFF,0x85,0x00,0x87,0xFF,0x89,0x00,0x83,0xFF,0x87,0x00,0x83,0xFF,0x81,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x85,0x00,0x83,0xFF,0x85,0x00,0x83,0xFF,0x89,0x00,0x8B,0xFF,0x89,0x00,0x85,0xFF,0x87,0x00,0x83,0xFF,0x87,0x00,0x85,0xFF,0x9D,0x00,0x83,0xFF,0x85,0x00,0x81,0x00,0x83,0xFF,0x93,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x8B,0x00,0x8A,0xFF,0x89,0x00,0x86,0xFF,0x84,0x00,0x89,0xFF,
0x87,0x00,0x85,0xFF,0x86,0x00,0x83,0xFF,0x81,0x00,0x83,0xFF,0x83,0x00,0x84,0xFF,0x83,0x00,0x84,0xFF,0x85,0x00,0x84,0xFF,0x88,0x00,0x8B,0xFF,0x88,0x00,0x86,0xFF,0x87,0x00,0x83,0xFF,0x87,0x00,0x86,0xFF,0x9B,0x00,0x84,0xFF,0x85,0x00,0x81,0x00,0x89,0xFF,0x87,0x00,0x89,0xFF,0x83,0x00,0x83,0xFF,0x93,0x00,0x83,0xFF,0x87,0x00,0x83,0xFF,0x87,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x85,0x00,0x87,0xFF,0x85,0x00,0x89,0xFF,0x84,0x00,0x84,0xFF,0x81,0x00,0x84,0xFF,0x88,0x00,0x83,0xFF,0x88,0x00,0x84,0xFF,0x8D,0x00,0x83,0xFF,0x8B,0x00,0x83,0xFF,0x8B,0x00,0x83,0xFF,0x99,0x00,0x83,0xFF,0x87,0x00,0x81,0x00,0x8A,0xFF,0x85,0x00,0x8A,0xFF,0x83,0x00,0x83,0xFF,
0x93,0x00,0x83,0xFF,0x87,0x00,0x83,0xFF,0x87,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x84,0x00,0x89,0xFF,0x83,0x00,0x8B,0xFF,0x84,0x00,0x89,0xFF,0x89,0x00,0x83,0xFF,0x89,0x00,0x84,0xFF,0x8B,0x00,0x84,0xFF,0x8B,0x00,0x83,0xFF,0x8B,0x00,0x84,0xFF,0x97,0x00,0x84,0xFF,0x87,0x00,0x81,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x8D,0x00,0x88,0xFF,0x88,0x00,0x83,0xFF,0x87,0x00,0x83,0xFF,0x83,0x00,0x83,0xFF,0x83,0x00,0x84,0xFF,0x81,0x00,0x84,0xFF,0x81,0x00,0x83,0xFF,0x81,0x00,0x81,0xFF,0x81,0x00,0x83,0xFF,0x84,0x00,0x87,0xFF,0x8A,0x00,0x83,0xFF,0x8A,0x00,0x84,0xFF,0x8A,0x00,0x82,0xFF,0x8D,0x00,
0x87,0x00,0x83,0xFF,0x8B,0x00,0x83,0xFF,0x85,0x00,0x85,0x00,0x83,0xFF,0x87,0x00,0xAB,0xFF,0x82,0x00,0x8D,0xFF,0x86,0x00,0x83,0xFF,0x88,0x00,0x89,0xFF,0x84,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x87,0x00,0x83,0xFF,0x8B,0x00,0x83,0xFF,0x85,0x00,0x85,0x00,0x83,0xFF,0x87,0x00,0xAB,0xFF,0x82,0x00,0x8D,0xFF,0x86,0x00,0x83,0xFF,0x88,0x00,0x89,0xFF,0x84,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x93,0x00,0x89,0xFF,0x89,0x00,0x83,0xFF,0x8B,0x00,0x83,0xFF,0x85,0x00,0x91,0x00,0xAB,0xFF,0x82,0x00,0x8D,0xFF,0x93,0x00,0x89,0xFF,0x84,0x00,0x8B,0xFF,0x83,0x00,
0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x93,0x00,0x87,0xFF,0xA5,0x00,0x92,0x00,0xA9,0xFF,0x83,0x00,0x8D,0xFF,0x93,0x00,0x89,0xFF,0x84,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x93,0x00,0x85,0xFF,0xA7,0x00,0x93,0x00,0xA7,0xFF,0x84,0x00,0x8D,0xFF,0x93,0x00,0x89,0xFF,0x84,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x93,0x00,0x83,0xFF,0xA9,0x00,0xC1,0x00,0x8B,0xFF,0x95,0x00,0x87,0xFF,0x85,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x83,0x00,0x8B,0xFF,0x93,0x00,0x8B,0xFF,0x93,0x00,0x81,0xFF,0xAB,0x00,0xC2,0x00,0x89,0xFF,0x97,0x00,0x85,0xFF,0xFF,0x00,0x94,0x00,0xFF,0x00,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x52,0x55,0x45,0x56,0x49,0x53,0x49,0x4F,0x4E,0x2D,0x58,0x46,0x49,0x4C,0x45,0x2E,0x00
+};
\ No newline at end of file
#ifndef LHNET_H
#define LHNET_H
+#include <stddef.h>
+
typedef enum lhnetaddresstype_e
{
LHNETADDRESSTYPE_NONE,
+#include <stddef.h>
+#include "qtypes.h"
+#include "qdefs.h"
+
enum
{
CURLCBSTATUS_OK = 0,
#ifndef MATRIXLIB_H
#define MATRIXLIB_H
+#include "qtypes.h"
+
//#define MATRIX4x4_OPENGLORIENTATION
typedef struct matrix4x4_s
#ifndef MENU_H
#define MENU_H
+#include "qtypes.h"
+
+typedef struct serverlist_entry_s serverlist_entry_t;
+
enum m_state_e {
m_none,
m_main,
#ifndef NET_H
#define NET_H
+#include <stdarg.h>
+#include "qtypes.h"
+#include "cmd.h"
+#include "cvar.h"
+#include "crypto.h"
#include "lhnet.h"
+#include "common.h"
#define NET_HEADERSIZE (2 * sizeof(unsigned int))
#ifndef PROTOCOL_H
#define PROTOCOL_H
+#include "qtypes.h"
+#include "qdefs.h"
+#include "cvar.h"
+#include "zone.h"
+#include "qstats.h"
+#include "common.h"
+
// protocolversion_t is defined in common.h
protocolversion_t Protocol_EnumForName(const char *s);
--- /dev/null
+#ifndef QDEFS_H
+#define QDEFS_H
+
+#if (__GNUC__ > 2) || defined (__clang__) || (__TINYC__)
+#define DP_FUNC_PRINTF(n) __attribute__ ((format (printf, n, n+1)))
+#define DP_FUNC_PURE __attribute__ ((pure))
+#define DP_FUNC_NORETURN __attribute__ ((noreturn))
+#else
+#define DP_FUNC_PRINTF(n)
+#define DP_FUNC_PURE
+#define DP_FUNC_NORETURN
+#endif
+
+#define MAX_NUM_ARGVS 50
+
+#ifdef DP_SMALLMEMORY
+#define MAX_INPUTLINE 1024
+#define CON_TEXTSIZE 16384
+#define CON_MAXLINES 256
+#define HIST_TEXTSIZE 2048
+#define HIST_MAXLINES 16
+#define MAX_ALIAS_NAME 32
+#define CMDBUFSIZE 131072
+#define MAX_ARGS 80
+
+#define NET_MAXMESSAGE 65536
+#define MAX_PACKETFRAGMENT 1024
+#define MAX_EDICTS 4096
+#define MAX_MODELS 1024
+#define MAX_SOUNDS 1024
+#define MAX_LIGHTSTYLES 64
+#define MAX_STYLESTRING 16
+#define MAX_SCOREBOARD 32
+#define MAX_SCOREBOARDNAME 128
+#define MAX_USERINFO_STRING 196
+#define MAX_SERVERINFO_STRING 512
+#define MAX_LOCALINFO_STRING 1 // not actually used by DP servers
+#define CL_MAX_USERCMDS 32
+#define CVAR_HASHSIZE 1024
+#define M_MAX_EDICTS 4096
+#define MAX_DEMOS 8
+#define MAX_DEMONAME 16
+#define MAX_SAVEGAMES 12
+#define SAVEGAME_COMMENT_LENGTH 39
+#define MAX_CLIENTNETWORKEYES 2
+#define MAX_LEVELNETWORKEYES 0 // no portal support
+#define MAX_OCCLUSION_QUERIES 256
+
+#define CRYPTO_HOSTKEY_HASHSIZE 256
+#define MAX_NETWM_ICON 1026 // one 32x32
+
+#define MAX_WATERPLANES 2
+#define MAX_CUBEMAPS 1024
+#define MAX_EXPLOSIONS 8
+#define MAX_DLIGHTS 16
+#define MAX_CACHED_PICS 2048 // this is 144 bytes each (or 152 on 64bit)
+#define CACHEPICHASHSIZE 256
+#define MAX_PARTICLEEFFECTNAME 256
+#define MAX_PARTICLEEFFECTINFO 1024
+#define MAX_PARTICLETEXTURES 256
+#define MAXCLVIDEOS 1
+#define MAX_DYNAMIC_TEXTURE_COUNT 2
+#define MAX_MAP_LEAFS 8192
+
+#define MAXTRACKS 256
+#define MAX_DYNAMIC_CHANNELS 64
+#define MAX_CHANNELS 260
+#define MODLIST_TOTALSIZE 32
+#define MAX_FAVORITESERVERS 32
+#define MAX_DECALSYSTEM_QUEUE 64
+#define PAINTBUFFER_SIZE 512
+#define MAX_BINDMAPS 8
+#define MAX_PARTICLES_INITIAL 8192
+#define MAX_PARTICLES 8192
+#define MAX_ENTITIES_INITIAL 256
+#define MAX_STATICENTITIES 256
+#define MAX_EFFECTS 16
+#define MAX_BEAMS 16
+#define MAX_TEMPENTITIES 256
+#define SERVERLIST_TOTALSIZE 1024
+#define SERVERLIST_ANDMASKCOUNT 5
+#define SERVERLIST_ORMASKCOUNT 5
+#else
+#define MAX_INPUTLINE 16384 ///< maximum length of console commandline, QuakeC strings, and many other text processing buffers
+#define CON_TEXTSIZE 1048576 ///< max scrollback buffer characters in console
+#define CON_MAXLINES 16384 ///< max scrollback buffer lines in console
+#define HIST_TEXTSIZE 262144 ///< max command history buffer characters in console
+#define HIST_MAXLINES 4096 ///< max command history buffer lines in console
+#define MAX_ALIAS_NAME 32
+#define CMDBUFSIZE 655360 ///< maximum script size that can be loaded by the exec command (8192 in Quake)
+#define MAX_ARGS 80 ///< maximum number of parameters to a console command or alias
+
+#define NET_MAXMESSAGE 131072 ///< max reliable packet size (sent as multiple fragments of MAX_PACKETFRAGMENT)
+#define MAX_PACKETFRAGMENT 1024 ///< max length of packet fragment
+#define MAX_EDICTS 32768 ///< max number of objects in game world at once (32768 protocol limit)
+#define MAX_MODELS 8192 ///< max number of models loaded at once (including during level transitions)
+#define MAX_SOUNDS 4096 ///< max number of sounds loaded at once
+#define MAX_LIGHTSTYLES 256 ///< max flickering light styles in level (note: affects savegame format)
+#define MAX_STYLESTRING 64 ///< max length of flicker pattern for light style
+#define MAX_SCOREBOARD 255 ///< max number of players in game at once (255 protocol limit)
+#define MAX_SCOREBOARDNAME 128 ///< max length of player name in game
+#define MAX_USERINFO_STRING 1280 ///< max length of infostring for PROTOCOL_QUAKEWORLD (196 in QuakeWorld)
+#define MAX_SERVERINFO_STRING 1280 ///< max length of server infostring for PROTOCOL_QUAKEWORLD (512 in QuakeWorld)
+#define MAX_LOCALINFO_STRING 32768 ///< max length of server-local infostring for PROTOCOL_QUAKEWORLD (32768 in QuakeWorld)
+#define CL_MAX_USERCMDS 128 ///< max number of predicted input packets in queue
+#define CVAR_HASHSIZE 65536 ///< number of hash buckets for accelerating cvar name lookups
+#define M_MAX_EDICTS 32768 ///< max objects in menu vm
+#define MAX_DEMOS 8 ///< max demos provided to demos command
+#define MAX_DEMONAME 16 ///< max demo name length for demos command
+#define MAX_SAVEGAMES 12 ///< max savegames listed in savegame menu
+#define SAVEGAME_COMMENT_LENGTH 39 ///< max comment length of savegame in menu
+#define MAX_CLIENTNETWORKEYES 16 ///< max number of locations that can be added to pvs when culling network entities (must be at least 2 for prediction)
+#define MAX_LEVELNETWORKEYES 512 ///< max number of locations that can be added to pvs when culling network entities (must be at least 2 for prediction)
+#define MAX_OCCLUSION_QUERIES 4096 ///< max number of query objects that can be used in one frame
+
+#define CRYPTO_HOSTKEY_HASHSIZE 8192 ///< number of hash buckets for accelerating host key lookups
+#define MAX_NETWM_ICON 352822 // 16x16, 22x22, 24x24, 32x32, 48x48, 64x64, 128x128, 256x256, 512x512
+
+#define MAX_WATERPLANES 16 ///< max number of water planes visible (each one causes additional view renders)
+#define MAX_CUBEMAPS 1024 ///< max number of cubemap textures loaded for light filters
+#define MAX_EXPLOSIONS 64 ///< max number of explosion shell effects active at once (not particle related)
+#define MAX_DLIGHTS 256 ///< max number of dynamic lights (rocket flashes, etc) in scene at once
+#define MAX_CACHED_PICS 2048 ///< max number of 2D pics loaded at once
+#define CACHEPICHASHSIZE 256 ///< number of hash buckets for accelerating 2D pic name lookups
+#define MAX_PARTICLEEFFECTNAME 4096 ///< maximum number of unique names of particle effects (for particleeffectnum)
+#define MAX_PARTICLEEFFECTINFO 8192 ///< maximum number of unique particle effects (each name may associate with several of these)
+#define MAX_PARTICLETEXTURES 256 ///< maximum number of unique particle textures in the particle font
+#define MAXCLVIDEOS 65 ///< maximum number of video streams being played back at once (1 is reserved for the playvideo command)
+#define MAX_DYNAMIC_TEXTURE_COUNT 64 ///< maximum number of dynamic textures (web browsers, playvideo, etc)
+#define MAX_MAP_LEAFS 65536 ///< maximum number of BSP leafs in world (8192 in Quake)
+
+#define MAXTRACKS 256 ///< max CD track index
+// 0 to NUM_AMBIENTS - 1 = water, etc
+// NUM_AMBIENTS to NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS - 1 = normal entity sounds
+// NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS to total_channels = static sounds
+#define MAX_DYNAMIC_CHANNELS 512
+#define MAX_CHANNELS (8192 + 4)
+#define MODLIST_TOTALSIZE 256
+#define MAX_FAVORITESERVERS 256
+#define MAX_DECALSYSTEM_QUEUE 1024
+#define PAINTBUFFER_SIZE 2048
+#define MAX_BINDMAPS 8
+#define MAX_PARTICLES_INITIAL 8192 ///< initial allocation for cl.particles
+#define MAX_PARTICLES 1048576 ///< upper limit on cl.particles size
+#define MAX_ENTITIES_INITIAL 256 ///< initial size of cl.entities
+#define MAX_STATICENTITIES 4096 ///< limit on size of cl.static_entities
+#define MAX_EFFECTS 256 ///< limit on size of cl.effects
+#define MAX_BEAMS 256 ///< limit on size of cl.beams
+#define MAX_TEMPENTITIES 4096 ///< max number of temporary models visible per frame (certain sprite effects, certain types of CSQC entities also use this)
+#define SERVERLIST_TOTALSIZE 2048 ///< max servers in the server list
+#define SERVERLIST_ANDMASKCOUNT 16 ///< max items in server list AND mask
+#define SERVERLIST_ORMASKCOUNT 16 ///< max items in server list OR mask
+#endif
+
+
+#define CMD_TOKENIZELENGTH (MAX_INPUTLINE + MAX_ARGS) ///< maximum tokenizable commandline length (counting trailing 0)
+
+
+#define MAX_QPATH 128 ///< max length of a quake game pathname
+#ifdef PATH_MAX
+#define MAX_OSPATH PATH_MAX
+#elif MAX_PATH
+#define MAX_OSPATH MAX_PATH
+#else
+#define MAX_OSPATH 1024 ///< max length of a filesystem pathname
+#endif
+
+#define ON_EPSILON 0.1 ///< point on plane side epsilon
+
+#define NET_MINRATE 1000 ///< limits "rate" and "sv_maxrate" cvars
+
+#endif
--- /dev/null
+#ifndef QSTATS_H
+#define QSTATS_H
+
+//
+// stats are integers communicated to the client by the server
+//
+#define MAX_CL_STATS 256
+#define STAT_HEALTH 0
+//#define STAT_FRAGS 1
+#define STAT_WEAPON 2
+#define STAT_AMMO 3
+#define STAT_ARMOR 4
+#define STAT_WEAPONFRAME 5
+#define STAT_SHELLS 6
+#define STAT_NAILS 7
+#define STAT_ROCKETS 8
+#define STAT_CELLS 9
+#define STAT_ACTIVEWEAPON 10
+#define STAT_TOTALSECRETS 11
+#define STAT_TOTALMONSTERS 12
+#define STAT_SECRETS 13 ///< bumped on client side by svc_foundsecret
+#define STAT_MONSTERS 14 ///< bumped by svc_killedmonster
+#define STAT_ITEMS 15 ///< FTE, DP
+#define STAT_VIEWHEIGHT 16 ///< FTE, DP
+//#define STAT_TIME 17 ///< FTE
+//#define STAT_VIEW2 20 ///< FTE
+#define STAT_VIEWZOOM 21 ///< DP
+#define MIN_VM_STAT 32 ///< stat range available to VM_SV_AddStat
+#define MAX_VM_STAT 220 ///< stat range available to VM_SV_AddStat
+#define STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR 220 ///< DP
+#define STAT_MOVEVARS_AIRCONTROL_PENALTY 221 ///< DP
+#define STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW 222 ///< DP
+#define STAT_MOVEVARS_AIRSTRAFEACCEL_QW 223 ///< DP
+#define STAT_MOVEVARS_AIRCONTROL_POWER 224 ///< DP
+#define STAT_MOVEFLAGS 225 ///< DP
+#define STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL 226 ///< DP
+#define STAT_MOVEVARS_WARSOWBUNNY_ACCEL 227 ///< DP
+#define STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED 228 ///< DP
+#define STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL 229 ///< DP
+#define STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO 230 ///< DP
+#define STAT_MOVEVARS_AIRSTOPACCELERATE 231 ///< DP
+#define STAT_MOVEVARS_AIRSTRAFEACCELERATE 232 ///< DP
+#define STAT_MOVEVARS_MAXAIRSTRAFESPEED 233 ///< DP
+#define STAT_MOVEVARS_AIRCONTROL 234 ///< DP
+#define STAT_FRAGLIMIT 235 ///< DP
+#define STAT_TIMELIMIT 236 ///< DP
+#define STAT_MOVEVARS_WALLFRICTION 237 ///< DP
+#define STAT_MOVEVARS_FRICTION 238 ///< DP
+#define STAT_MOVEVARS_WATERFRICTION 239 ///< DP
+#define STAT_MOVEVARS_TICRATE 240 ///< DP
+#define STAT_MOVEVARS_TIMESCALE 241 ///< DP
+#define STAT_MOVEVARS_GRAVITY 242 ///< DP
+#define STAT_MOVEVARS_STOPSPEED 243 ///< DP
+#define STAT_MOVEVARS_MAXSPEED 244 ///< DP
+#define STAT_MOVEVARS_SPECTATORMAXSPEED 245 ///< DP
+#define STAT_MOVEVARS_ACCELERATE 246 ///< DP
+#define STAT_MOVEVARS_AIRACCELERATE 247 ///< DP
+#define STAT_MOVEVARS_WATERACCELERATE 248 ///< DP
+#define STAT_MOVEVARS_ENTGRAVITY 249 ///< DP
+#define STAT_MOVEVARS_JUMPVELOCITY 250 ///< DP
+#define STAT_MOVEVARS_EDGEFRICTION 251 ///< DP
+#define STAT_MOVEVARS_MAXAIRSPEED 252 ///< DP
+#define STAT_MOVEVARS_STEPHEIGHT 253 ///< DP
+#define STAT_MOVEVARS_AIRACCEL_QW 254 ///< DP
+#define STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION 255 ///< DP
+
+#endif
# include <TargetConditionals.h>
#endif
-#if (__GNUC__ > 2) || defined (__clang__) || (__TINYC__)
-#define DP_FUNC_PRINTF(n) __attribute__ ((format (printf, n, n+1)))
-#define DP_FUNC_PURE __attribute__ ((pure))
-#define DP_FUNC_NORETURN __attribute__ ((noreturn))
-#else
-#define DP_FUNC_PRINTF(n)
-#define DP_FUNC_PURE
-#define DP_FUNC_NORETURN
-#endif
-
#include <sys/types.h>
#include <ctype.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
-#include <setjmp.h>
#include "qtypes.h"
#define GAMENAME "id1"
-#define MAX_NUM_ARGVS 50
-
-#ifdef DP_SMALLMEMORY
-#define MAX_INPUTLINE 1024
-#define CON_TEXTSIZE 16384
-#define CON_MAXLINES 256
-#define HIST_TEXTSIZE 2048
-#define HIST_MAXLINES 16
-#define MAX_ALIAS_NAME 32
-#define CMDBUFSIZE 131072
-#define MAX_ARGS 80
-
-#define NET_MAXMESSAGE 65536
-#define MAX_PACKETFRAGMENT 1024
-#define MAX_EDICTS 4096
-#define MAX_MODELS 1024
-#define MAX_SOUNDS 1024
-#define MAX_LIGHTSTYLES 64
-#define MAX_STYLESTRING 16
-#define MAX_SCOREBOARD 32
-#define MAX_SCOREBOARDNAME 128
-#define MAX_USERINFO_STRING 196
-#define MAX_SERVERINFO_STRING 512
-#define MAX_LOCALINFO_STRING 1 // not actually used by DP servers
-#define CL_MAX_USERCMDS 32
-#define CVAR_HASHSIZE 1024
-#define M_MAX_EDICTS 4096
-#define MAX_DEMOS 8
-#define MAX_DEMONAME 16
-#define MAX_SAVEGAMES 12
-#define SAVEGAME_COMMENT_LENGTH 39
-#define MAX_CLIENTNETWORKEYES 2
-#define MAX_LEVELNETWORKEYES 0 // no portal support
-#define MAX_OCCLUSION_QUERIES 256
-
-#define CRYPTO_HOSTKEY_HASHSIZE 256
-#define MAX_NETWM_ICON 1026 // one 32x32
-
-#define MAX_WATERPLANES 2
-#define MAX_CUBEMAPS 1024
-#define MAX_EXPLOSIONS 8
-#define MAX_DLIGHTS 16
-#define MAX_CACHED_PICS 2048 // this is 144 bytes each (or 152 on 64bit)
-#define CACHEPICHASHSIZE 256
-#define MAX_PARTICLEEFFECTNAME 256
-#define MAX_PARTICLEEFFECTINFO 1024
-#define MAX_PARTICLETEXTURES 256
-#define MAXCLVIDEOS 1
-#define MAX_DYNAMIC_TEXTURE_COUNT 2
-#define MAX_MAP_LEAFS 8192
-
-#define MAXTRACKS 256
-#define MAX_DYNAMIC_CHANNELS 64
-#define MAX_CHANNELS 260
-#define MODLIST_TOTALSIZE 32
-#define MAX_FAVORITESERVERS 32
-#define MAX_DECALSYSTEM_QUEUE 64
-#define PAINTBUFFER_SIZE 512
-#define MAX_BINDMAPS 8
-#define MAX_PARTICLES_INITIAL 8192
-#define MAX_PARTICLES 8192
-#define MAX_ENTITIES_INITIAL 256
-#define MAX_STATICENTITIES 256
-#define MAX_EFFECTS 16
-#define MAX_BEAMS 16
-#define MAX_TEMPENTITIES 256
-#define SERVERLIST_TOTALSIZE 1024
-#define SERVERLIST_ANDMASKCOUNT 5
-#define SERVERLIST_ORMASKCOUNT 5
-#else
-#define MAX_INPUTLINE 16384 ///< maximum length of console commandline, QuakeC strings, and many other text processing buffers
-#define CON_TEXTSIZE 1048576 ///< max scrollback buffer characters in console
-#define CON_MAXLINES 16384 ///< max scrollback buffer lines in console
-#define HIST_TEXTSIZE 262144 ///< max command history buffer characters in console
-#define HIST_MAXLINES 4096 ///< max command history buffer lines in console
-#define MAX_ALIAS_NAME 32
-#define CMDBUFSIZE 655360 ///< maximum script size that can be loaded by the exec command (8192 in Quake)
-#define MAX_ARGS 80 ///< maximum number of parameters to a console command or alias
-
-#define NET_MAXMESSAGE 131072 ///< max reliable packet size (sent as multiple fragments of MAX_PACKETFRAGMENT)
-#define MAX_PACKETFRAGMENT 1024 ///< max length of packet fragment
-#define MAX_EDICTS 32768 ///< max number of objects in game world at once (32768 protocol limit)
-#define MAX_MODELS 8192 ///< max number of models loaded at once (including during level transitions)
-#define MAX_SOUNDS 4096 ///< max number of sounds loaded at once
-#define MAX_LIGHTSTYLES 256 ///< max flickering light styles in level (note: affects savegame format)
-#define MAX_STYLESTRING 64 ///< max length of flicker pattern for light style
-#define MAX_SCOREBOARD 255 ///< max number of players in game at once (255 protocol limit)
-#define MAX_SCOREBOARDNAME 128 ///< max length of player name in game
-#define MAX_USERINFO_STRING 1280 ///< max length of infostring for PROTOCOL_QUAKEWORLD (196 in QuakeWorld)
-#define MAX_SERVERINFO_STRING 1280 ///< max length of server infostring for PROTOCOL_QUAKEWORLD (512 in QuakeWorld)
-#define MAX_LOCALINFO_STRING 32768 ///< max length of server-local infostring for PROTOCOL_QUAKEWORLD (32768 in QuakeWorld)
-#define CL_MAX_USERCMDS 128 ///< max number of predicted input packets in queue
-#define CVAR_HASHSIZE 65536 ///< number of hash buckets for accelerating cvar name lookups
-#define M_MAX_EDICTS 32768 ///< max objects in menu vm
-#define MAX_DEMOS 8 ///< max demos provided to demos command
-#define MAX_DEMONAME 16 ///< max demo name length for demos command
-#define MAX_SAVEGAMES 12 ///< max savegames listed in savegame menu
-#define SAVEGAME_COMMENT_LENGTH 39 ///< max comment length of savegame in menu
-#define MAX_CLIENTNETWORKEYES 16 ///< max number of locations that can be added to pvs when culling network entities (must be at least 2 for prediction)
-#define MAX_LEVELNETWORKEYES 512 ///< max number of locations that can be added to pvs when culling network entities (must be at least 2 for prediction)
-#define MAX_OCCLUSION_QUERIES 4096 ///< max number of query objects that can be used in one frame
-
-#define CRYPTO_HOSTKEY_HASHSIZE 8192 ///< number of hash buckets for accelerating host key lookups
-#define MAX_NETWM_ICON 352822 // 16x16, 22x22, 24x24, 32x32, 48x48, 64x64, 128x128, 256x256, 512x512
-
-#define MAX_WATERPLANES 16 ///< max number of water planes visible (each one causes additional view renders)
-#define MAX_CUBEMAPS 1024 ///< max number of cubemap textures loaded for light filters
-#define MAX_EXPLOSIONS 64 ///< max number of explosion shell effects active at once (not particle related)
-#define MAX_DLIGHTS 256 ///< max number of dynamic lights (rocket flashes, etc) in scene at once
-#define MAX_CACHED_PICS 2048 ///< max number of 2D pics loaded at once
-#define CACHEPICHASHSIZE 256 ///< number of hash buckets for accelerating 2D pic name lookups
-#define MAX_PARTICLEEFFECTNAME 4096 ///< maximum number of unique names of particle effects (for particleeffectnum)
-#define MAX_PARTICLEEFFECTINFO 8192 ///< maximum number of unique particle effects (each name may associate with several of these)
-#define MAX_PARTICLETEXTURES 256 ///< maximum number of unique particle textures in the particle font
-#define MAXCLVIDEOS 65 ///< maximum number of video streams being played back at once (1 is reserved for the playvideo command)
-#define MAX_DYNAMIC_TEXTURE_COUNT 64 ///< maximum number of dynamic textures (web browsers, playvideo, etc)
-#define MAX_MAP_LEAFS 65536 ///< maximum number of BSP leafs in world (8192 in Quake)
-
-#define MAXTRACKS 256 ///< max CD track index
-// 0 to NUM_AMBIENTS - 1 = water, etc
-// NUM_AMBIENTS to NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS - 1 = normal entity sounds
-// NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS to total_channels = static sounds
-#define MAX_DYNAMIC_CHANNELS 512
-#define MAX_CHANNELS (8192 + 4)
-#define MODLIST_TOTALSIZE 256
-#define MAX_FAVORITESERVERS 256
-#define MAX_DECALSYSTEM_QUEUE 1024
-#define PAINTBUFFER_SIZE 2048
-#define MAX_BINDMAPS 8
-#define MAX_PARTICLES_INITIAL 8192 ///< initial allocation for cl.particles
-#define MAX_PARTICLES 1048576 ///< upper limit on cl.particles size
-#define MAX_ENTITIES_INITIAL 256 ///< initial size of cl.entities
-#define MAX_STATICENTITIES 4096 ///< limit on size of cl.static_entities
-#define MAX_EFFECTS 256 ///< limit on size of cl.effects
-#define MAX_BEAMS 256 ///< limit on size of cl.beams
-#define MAX_TEMPENTITIES 4096 ///< max number of temporary models visible per frame (certain sprite effects, certain types of CSQC entities also use this)
-#define SERVERLIST_TOTALSIZE 2048 ///< max servers in the server list
-#define SERVERLIST_ANDMASKCOUNT 16 ///< max items in server list AND mask
-#define SERVERLIST_ORMASKCOUNT 16 ///< max items in server list OR mask
-#endif
-
-
-#define CMD_TOKENIZELENGTH (MAX_INPUTLINE + MAX_ARGS) ///< maximum tokenizable commandline length (counting trailing 0)
-
-
-#define MAX_QPATH 128 ///< max length of a quake game pathname
-#ifdef PATH_MAX
-#define MAX_OSPATH PATH_MAX
-#elif MAX_PATH
-#define MAX_OSPATH MAX_PATH
-#else
-#define MAX_OSPATH 1024 ///< max length of a filesystem pathname
-#endif
-
-#define ON_EPSILON 0.1 ///< point on plane side epsilon
-
-#define NET_MINRATE 1000 ///< limits "rate" and "sv_maxrate" cvars
-
-//
-// stats are integers communicated to the client by the server
-//
-#define MAX_CL_STATS 256
-#define STAT_HEALTH 0
-//#define STAT_FRAGS 1
-#define STAT_WEAPON 2
-#define STAT_AMMO 3
-#define STAT_ARMOR 4
-#define STAT_WEAPONFRAME 5
-#define STAT_SHELLS 6
-#define STAT_NAILS 7
-#define STAT_ROCKETS 8
-#define STAT_CELLS 9
-#define STAT_ACTIVEWEAPON 10
-#define STAT_TOTALSECRETS 11
-#define STAT_TOTALMONSTERS 12
-#define STAT_SECRETS 13 ///< bumped on client side by svc_foundsecret
-#define STAT_MONSTERS 14 ///< bumped by svc_killedmonster
-#define STAT_ITEMS 15 ///< FTE, DP
-#define STAT_VIEWHEIGHT 16 ///< FTE, DP
-//#define STAT_TIME 17 ///< FTE
-//#define STAT_VIEW2 20 ///< FTE
-#define STAT_VIEWZOOM 21 ///< DP
-#define MIN_VM_STAT 32 ///< stat range available to VM_SV_AddStat
-#define MAX_VM_STAT 220 ///< stat range available to VM_SV_AddStat
-#define STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR 220 ///< DP
-#define STAT_MOVEVARS_AIRCONTROL_PENALTY 221 ///< DP
-#define STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW 222 ///< DP
-#define STAT_MOVEVARS_AIRSTRAFEACCEL_QW 223 ///< DP
-#define STAT_MOVEVARS_AIRCONTROL_POWER 224 ///< DP
-#define STAT_MOVEFLAGS 225 ///< DP
-#define STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL 226 ///< DP
-#define STAT_MOVEVARS_WARSOWBUNNY_ACCEL 227 ///< DP
-#define STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED 228 ///< DP
-#define STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL 229 ///< DP
-#define STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO 230 ///< DP
-#define STAT_MOVEVARS_AIRSTOPACCELERATE 231 ///< DP
-#define STAT_MOVEVARS_AIRSTRAFEACCELERATE 232 ///< DP
-#define STAT_MOVEVARS_MAXAIRSTRAFESPEED 233 ///< DP
-#define STAT_MOVEVARS_AIRCONTROL 234 ///< DP
-#define STAT_FRAGLIMIT 235 ///< DP
-#define STAT_TIMELIMIT 236 ///< DP
-#define STAT_MOVEVARS_WALLFRICTION 237 ///< DP
-#define STAT_MOVEVARS_FRICTION 238 ///< DP
-#define STAT_MOVEVARS_WATERFRICTION 239 ///< DP
-#define STAT_MOVEVARS_TICRATE 240 ///< DP
-#define STAT_MOVEVARS_TIMESCALE 241 ///< DP
-#define STAT_MOVEVARS_GRAVITY 242 ///< DP
-#define STAT_MOVEVARS_STOPSPEED 243 ///< DP
-#define STAT_MOVEVARS_MAXSPEED 244 ///< DP
-#define STAT_MOVEVARS_SPECTATORMAXSPEED 245 ///< DP
-#define STAT_MOVEVARS_ACCELERATE 246 ///< DP
-#define STAT_MOVEVARS_AIRACCELERATE 247 ///< DP
-#define STAT_MOVEVARS_WATERACCELERATE 248 ///< DP
-#define STAT_MOVEVARS_ENTGRAVITY 249 ///< DP
-#define STAT_MOVEVARS_JUMPVELOCITY 250 ///< DP
-#define STAT_MOVEVARS_EDGEFRICTION 251 ///< DP
-#define STAT_MOVEVARS_MAXAIRSPEED 252 ///< DP
-#define STAT_MOVEVARS_STEPHEIGHT 253 ///< DP
-#define STAT_MOVEVARS_AIRACCEL_QW 254 ///< DP
-#define STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION 255 ///< DP
+#include "qdefs.h"
+#include "qstats.h"
// moveflags values
#define MOVEFLAG_VALID 0x80000000
#ifndef R_TEXTURES_H
#define R_TEXTURES_H
+#include "qtypes.h"
+#include "cvar.h"
+
// transparent
#define TEXF_ALPHA 0x00000001
// mipmapped
#ifndef SBAR_H
#define SBAR_H
+#include "cvar.h"
+
#define SBAR_HEIGHT 24
extern int sb_lines; ///< scan lines to draw
#ifndef SCREEN_H
#define SCREEN_H
+#include "qtypes.h"
+#include "cvar.h"
+
void CL_Screen_Init (void);
void CL_UpdateScreen (void);
void SCR_CenterPrint(const char *str);
#ifndef SND_XMP_H
#define SND_XMP_H
+#include "qtypes.h"
+#include "sound.h"
qbool XMP_OpenLibrary (void);
void XMP_CloseLibrary (void);
#ifndef SOUND_H
#define SOUND_H
+#include "cmd.h"
#include "matrixlib.h"
#ifndef SV_DEMO_H
#define SV_DEMO_H
+#include "qtypes.h"
+#include "common.h"
+typedef struct client_s client_t;
+
void SV_StartDemoRecording(client_t *client, const char *filename, int forcetrack);
void SV_WriteDemoMessage(client_t *client, sizebuf_t *sendbuffer, qbool clienttoserver);
void SV_StopDemoRecording(client_t *client);
#ifndef SYS_H
#define SYS_H
+#include "qtypes.h"
+#include "cvar.h"
+
typedef struct sys_s
{
int argc;
#ifndef TASKQUEUE_H
#define TASKQUEUE_H
+#include <stddef.h>
#include "qtypes.h"
#include "thread.h"
#ifndef THREAD_H
#define THREAD_H
+#include "qtypes.h"
+
// enable Sys_PrintfToTerminal calls on nearly every threading call
//#define THREADDEBUG
//#define THREADDISABLE
#ifndef UTF8LIB_H__
#define UTF8LIB_H__
+#include <stddef.h>
#include "qtypes.h"
+#include "cvar.h"
// types for unicode strings
// let them be 32 bit for now
#ifndef VID_H
#define VID_H
+#include <stddef.h>
+#include "qtypes.h"
+#include "cmd.h"
+
#define ENGINE_ICON ( (gamemode == GAME_NEXUIZ) ? nexuiz_xpm : darkplaces_xpm )
extern int cl_available;
#ifndef WAD_H
#define WAD_H
+#include "common.h"
+#include "fs.h"
+
//===============
// TYPES
//===============
#ifndef WORLD_H
#define WORLD_H
+#include "qtypes.h"
+#include "qdefs.h"
+#include "cvar.h"
+#include "com_list.h"
#include "collision.h"
+#include "matrixlib.h"
+#include "r_textures.h"
+typedef struct model_s dp_model_t;
#define MOVE_NORMAL 0
#define MOVE_NOMONSTERS 1
#ifndef ZONE_H
#define ZONE_H
+#include <stddef.h>
+#include "qtypes.h"
+#include "qdefs.h"
+
extern qbool mem_bigendian;
// div0: heap overflow detection paranoia