#include "qtypes.h"
-extern char *buildstring;
+extern const char *buildstring;
extern char engineversion[128];
#define GAMENAME "id1"
#define CMDBUFSIZE 131072
#define MAX_ARGS 80
-#define NET_MAXMESSAGE 32768
+#define NET_MAXMESSAGE 65536
#define MAX_PACKETFRAGMENT 1024
#define MAX_EDICTS 4096
#define MAX_MODELS 1024
#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 MAX_WATERPLANES 2
#define MAX_CACHED_PICS 1024 // this is 144 bytes each (or 152 on 64bit)
#define CACHEPICHASHSIZE 256
#define MAX_PARTICLEEFFECTNAME 256
-#define MAX_PARTICLEEFFECTINFO 2048
-#define MAX_PARTICLETEXTURES 96
+#define MAX_PARTICLEEFFECTINFO 1024
+#define MAX_PARTICLETEXTURES 256
#define MAXCLVIDEOS 1
#define MAX_GECKO_INSTANCES 1
#define MAX_DYNAMIC_TEXTURE_COUNT 2
#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 32768
+#define MAX_PARTICLES 32768
+#define MAX_DECALS_INITIAL 1024
+#define MAX_DECALS 1024
+#define MAX_ENITIES_INITIAL 256
+#define MAX_STATICENTITIES 256
+#define MAX_EFFECTS 16
+#define MAX_BEAMS 16
+#define MAX_TEMPENTITIES 256
#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 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 2 ///< max number of locations that can be added to pvs when culling network entities (must be at least 2 for prediction)
+#define MAX_CLIENTNETWORKEYES 8 ///< max number of locations that can be added to pvs when culling network entities (must be at least 2 for prediction)
+#define MAX_LEVELNETWORKEYES 64 ///< 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 GL_ARB_occlusion_query objects that can be used in one frame
#define MAX_WATERPLANES 16 ///< max number of water planes visible (each one causes additional view renders)
#define CACHEPICHASHSIZE 256 ///< number of hash buckets for accelerating 2D pic name lookups
#define MAX_PARTICLEEFFECTNAME 256 ///< maximum number of unique names of particle effects (for particleeffectnum)
#define MAX_PARTICLEEFFECTINFO 4096 ///< maximum number of unique particle effects (each name may associate with several of these)
-#define MAX_PARTICLETEXTURES 1024 ///< maximum number of unique particle textures in the particle font
+#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_GECKO_INSTANCES 16 ///< maximum number of web browser textures active at once
#define MAX_DYNAMIC_TEXTURE_COUNT 64 ///< maximum number of dynamic textures (web browsers, playvideo, etc)
// NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS to total_channels = static sounds
#define MAX_DYNAMIC_CHANNELS 512
#define MAX_CHANNELS 1028
+#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_DECALS_INITIAL 8192 ///< initial allocation for cl.decals
+#define MAX_DECALS 1048576 ///< upper limit on cl.decals size
+#define MAX_ENITIES_INITIAL 256 ///< initial size of cl.entities
+#define MAX_STATICENTITIES 1024 ///< 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)
#endif
//#define STAT_TIME 17 ///< FTE
//#define STAT_VIEW2 20 ///< FTE
#define STAT_VIEWZOOM 21 ///< 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
// moveflags values
#define MOVEFLAG_VALID 0x80000000
#define MOVEFLAG_Q2AIRACCELERATE 0x00000001
+#define MOVEFLAG_NOGRAVITYONGROUND 0x00000002
+#define MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE 0x00000004
// stock defines
extern cvar_t developer_loadfile;
extern cvar_t developer_loading;
+#define STARTCONFIGFILENAME "quake.rc"
+#define CONFIGFILENAME "config.cfg"
+
/* Preprocessor macros to identify platform
DP_OS_NAME - "friendly" name of the OS, for humans to read
DP_OS_STR - "identifier" of the OS, more suited for code to use