]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - quakedef.h
cmd: Re-re-re-re-implement the command parser. Allocate text only as needed.
[xonotic/darkplaces.git] / quakedef.h
index 107ccc7a214d7a08d17c9c184186794e5454a00d..2d2b10f0064ac2054fe4eed95ee979f3e0f10472 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
@@ -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)
@@ -371,6 +371,7 @@ extern char engineversion[128];
 #include "zone.h"
 #include "fs.h"
 #include "common.h"
+#include "com_list.h"
 #include "cvar.h"
 #include "bspfile.h"
 #include "sys.h"
@@ -403,7 +404,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 +461,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 +521,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 +546,28 @@ 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
+       cbuf_t *cbuf;
+
+       struct
+       {
+               void (*ConnectLocal)(void);
+       } hook;
 } host_t;
 
 extern host_t host;
 
 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 +603,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) ' ')