// MSVC has a different name for several standard functions
#ifdef WIN32
-# define snprintf _snprintf
-# define vsnprintf _vsnprintf
# define strcasecmp stricmp
# define strncasecmp strnicmp
#endif
qboolean allowoverflow; // if false, do a Sys_Error
qboolean overflowed; // set to true if the buffer size failed
qbyte *data;
- mempool_t *mempool;
int maxsize;
int cursize;
} sizebuf_t;
-void SZ_Alloc (sizebuf_t *buf, int startsize, const char *name);
-void SZ_Free (sizebuf_t *buf);
void SZ_Clear (sizebuf_t *buf);
void *SZ_GetSpace (sizebuf_t *buf, int length);
void SZ_Write (sizebuf_t *buf, const void *data, int length);
// does a varargs printf into a temp buffer
+// snprintf and vsnprintf are NOT portable. Use their DP counterparts instead
+#define snprintf DO_NOT_USE_SNPRINTF__USE_DPSNPRINTF
+#define vsnprintf DO_NOT_USE_VSNPRINTF__USE_DPVSNPRINTF
+
+// dpsnprintf and dpvsnprintf
+// return the number of printed characters, excluding the final '\0'
+// or return -1 if the buffer isn't big enough to contain the entire string.
+// buffer is ALWAYS null-terminated
+extern int dpsnprintf (char *buffer, size_t buffersize, const char *format, ...);
+extern int dpvsnprintf (char *buffer, size_t buffersize, const char *format, va_list args);
+
+
//============================================================================
extern struct cvar_s registered;
extern struct cvar_s cmdline;
-#define GAME_NORMAL 0
-#define GAME_HIPNOTIC 1
-#define GAME_ROGUE 2
-#define GAME_NEHAHRA 3
-#define GAME_NEXUIZ 4
-#define GAME_TRANSFUSION 5
-#define GAME_GOODVSBAD2 6
-#define GAME_TEU 7
-#define GAME_BATTLEMECH 8
-#define GAME_ZYMOTIC 9
-#define GAME_FNIGGIUM 10
-#define GAME_SETHERAL 11
-#define GAME_SOM 12
-#define GAME_TENEBRAE 13 // full of evil hackery
-#define GAME_NEOTERIC 14
-#define GAME_OPENQUARTZ 15 //this game sucks
-#define GAME_PRYDON 16
-#define GAME_NETHERWORLD 17
-
-extern int gamemode;
+typedef enum gamemode_e
+{
+ GAME_NORMAL,
+ GAME_HIPNOTIC,
+ GAME_ROGUE,
+ GAME_NEHAHRA,
+ GAME_NEXUIZ,
+ GAME_TRANSFUSION,
+ GAME_GOODVSBAD2,
+ GAME_TEU,
+ GAME_BATTLEMECH,
+ GAME_ZYMOTIC,
+ GAME_FNIGGIUM,
+ GAME_SETHERAL,
+ GAME_SOM,
+ GAME_TENEBRAE, // full of evil hackery
+ GAME_NEOTERIC,
+ GAME_OPENQUARTZ, //this game sucks
+ GAME_PRYDON,
+ GAME_NETHERWORLD,
+ GAME_THEHUNTED,
+}
+gamemode_t;
+
+extern gamemode_t gamemode;
extern const char *gamename;
-extern const char *gamedirname;
+extern const char *gamedirname1;
+extern const char *gamedirname2;
extern const char *gamescreenshotname;
+extern const char *gameuserdirname;
extern char com_modname[MAX_OSPATH];
void COM_ToLowerString (const char *in, char *out, size_t size_out);