]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - quakedef.h
cl_main: Disconnect when connection is established, only if we're already connected
[xonotic/darkplaces.git] / quakedef.h
index 107ccc7a214d7a08d17c9c184186794e5454a00d..77a171fcb0a9ccc285ceb242fc785efe1c9cd994 100644 (file)
@@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 # include <TargetConditionals.h>
 #endif
 
-#if defined(__GNUC__) && (__GNUC__ > 2)
+#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))
@@ -95,7 +95,7 @@ extern char engineversion[128];
 #define        MAX_CUBEMAPS                    1024
 #define        MAX_EXPLOSIONS                  8
 #define        MAX_DLIGHTS                             16
-#define        MAX_CACHED_PICS                 1024 // this is 144 bytes each (or 152 on 64bit)
+#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
@@ -114,7 +114,7 @@ extern char engineversion[128];
 #define        MAX_BINDMAPS                    8
 #define        MAX_PARTICLES_INITIAL   8192
 #define        MAX_PARTICLES                   8192
-#define        MAX_ENITIES_INITIAL             256
+#define        MAX_ENTITIES_INITIAL    256
 #define        MAX_STATICENTITIES              256
 #define        MAX_EFFECTS                             16
 #define        MAX_BEAMS                               16
@@ -132,7 +132,7 @@ extern char engineversion[128];
 #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                  65536 ///< max reliable packet size (sent as multiple fragments of MAX_PACKETFRAGMENT)
+#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)
@@ -162,7 +162,7 @@ extern char engineversion[128];
 #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                 1024 ///< max number of 2D pics loaded 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)
@@ -184,8 +184,8 @@ extern char engineversion[128];
 #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_ENITIES_INITIAL             256 ///< initial size of cl.entities
-#define        MAX_STATICENTITIES              1024 ///< limit on size of cl.static_entities
+#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)
@@ -369,8 +369,10 @@ extern char engineversion[128];
 //===========================================
 
 #include "zone.h"
+#include "thread.h"
 #include "fs.h"
 #include "common.h"
+#include "com_list.h"
 #include "cvar.h"
 #include "bspfile.h"
 #include "sys.h"
@@ -403,7 +405,7 @@ extern char engineversion[128];
 #endif
 #include "csprogs.h"
 
-extern qboolean noclip_anglehack;
+extern qbool noclip_anglehack;
 
 extern cvar_t developer;
 extern cvar_t developer_entityparsing;
@@ -460,18 +462,29 @@ extern cvar_t sessionid;
 #elif defined(__OpenBSD__)
 # define DP_OS_NAME            "OpenBSD"
 # define DP_OS_STR             "openbsd"
+#elif defined(__DragonFly__)
+# define DP_OS_NAME            "DragonFlyBSD"
+# define DP_OS_STR             "dragonflybsd"
 #elif defined(MACOSX)
 # define DP_OS_NAME            "Mac OS X"
 # define DP_OS_STR             "osx"
 #elif defined(__MORPHOS__)
 # define DP_OS_NAME            "MorphOS"
 # define DP_OS_STR             "morphos"
+#elif defined (sun) || defined (__sun)
+# if defined (__SVR4) || defined (__svr4__)
+#  define DP_OS_NAME   "Solaris"
+#  define DP_OS_STR            "solaris"
+# else
+#  define DP_OS_NAME   "SunOS"
+#  define DP_OS_STR            "sunos"
+# endif
 #else
 # define DP_OS_NAME            "Unknown"
 # define DP_OS_STR             "unknown"
 #endif
 
-#if defined(__GNUC__)
+#if defined(__GNUC__) || (__clang__)
 # if defined(__i386__)
 #  define DP_ARCH_STR          "686"
 #  define SSE_POSSIBLE
@@ -509,8 +522,8 @@ extern cvar_t sessionid;
 
 #ifdef SSE_POSSIBLE
 // runtime detection of SSE/SSE2 capabilities for x86
-qboolean Sys_HaveSSE(void);
-qboolean Sys_HaveSSE2(void);
+qbool Sys_HaveSSE(void);
+qbool Sys_HaveSSE2(void);
 #else
 #define Sys_HaveSSE() false
 #define Sys_HaveSSE2() false
@@ -534,17 +547,29 @@ typedef struct host_s
        int framecount; // incremented every frame, never reset (checked by Host_Error and Host_SaveConfig_f)
        double realtime; // the accumulated mainloop time since application started (with filtering), without any slowmo or clamping
        double dirtytime; // the main loop wall time for this frame, equal to Sys_DirtyTime() at the start of this host frame
+       double sleeptime; // time spent sleeping overall
+       qbool restless; // don't sleep
+       qbool paused; // global paused state, pauses both client and server
+       cmd_buf_t *cbuf;
+
+       struct
+       {
+               void (*ConnectLocal)(void);
+       } hook;
 } host_t;
 
 extern host_t host;
+extern cvar_t host_isclient;
 
 void Host_InitCommands(void);
 void Host_Main(void);
+double Host_Frame(double time);
 void Host_Shutdown(void);
 void Host_StartVideo(void);
 void Host_Error(const char *error, ...) DP_FUNC_PRINTF(1) DP_FUNC_NORETURN;
 void Host_Quit_f(cmd_state_t *cmd);
 void SV_ClientCommands(const char *fmt, ...) DP_FUNC_PRINTF(1);
+double SV_Frame(double time);
 void SV_Shutdown(void);
 void CL_Reconnect_f(cmd_state_t *cmd);
 void Host_NoOperation_f(cmd_state_t *cmd);
@@ -580,7 +605,7 @@ void Sys_Shared_Init(void);
 // In Quake, any char in 0..32 counts as whitespace
 //#define ISWHITESPACE(ch) ((unsigned char) ch <= (unsigned char) ' ')
 #define ISWHITESPACE(ch) (!(ch) || (ch) == ' ' || (ch) == '\t' || (ch) == '\r' || (ch) == '\n')
-
+#define ISCOMMENT(ch, pos) ch[pos] == '/' && ch[pos + 1] == '/' && (pos == 0 || ISWHITESPACE(ch[pos - 1]))
 // This also includes extended characters, and ALL control chars
 #define ISWHITESPACEORCONTROL(ch) ((signed char) (ch) <= (signed char) ' ')