]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - qtypes.h
qtypes: Define shorthand typenames for stdint types (i32, u32, etc). Remove the vec5...
[xonotic/darkplaces.git] / qtypes.h
index 4c834a312a5afb1c7d3399426c9b55575d765fa6..7e10a4fa4310e5d7acd49ca3ea4243aa8b3f9847 100644 (file)
--- a/qtypes.h
+++ b/qtypes.h
@@ -6,7 +6,7 @@
 #include <stdbool.h>
 #include <inttypes.h>
 
-typedef bool qboolean;
+typedef bool qbool;
 
 #ifndef NULL
 #define NULL ((void *)0)
@@ -21,23 +21,40 @@ typedef bool qboolean;
 // fall over
 #define        ROLL    2
 
-#if defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+#if defined(__GNUC__) || (__clang__) || (__TINYC__) || (_MSC_VER >= 1400)
 #define RESTRICT __restrict
 #else
 #define RESTRICT
 #endif
 
+typedef int8_t i8;
+typedef int16_t i16;
+typedef int32_t i32;
+typedef int64_t i64;
+
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
+
+typedef intptr_t iptr;
+typedef uintptr_t uptr;
+
 // LadyHavoc: upgrade the prvm to double precision for better time values
 // LadyHavoc: to be enabled when bugs are worked out...
-#define PRVM_64
+//#define PRVM_64
 #ifdef PRVM_64
 typedef double prvm_vec_t;
-typedef long long prvm_int_t;
-typedef unsigned long long prvm_uint_t;
+typedef int64_t prvm_int_t;
+typedef uint64_t prvm_uint_t;
+#define PRVM_PRIi PRIi64
+#define PRVM_PRIu PRIu64
 #else
 typedef float prvm_vec_t;
-typedef int prvm_int_t;
-typedef unsigned int prvm_uint_t;
+typedef int32_t prvm_int_t;
+typedef uint32_t prvm_uint_t;
+#define PRVM_PRIi PRIi32
+#define PRVM_PRIu PRIu32
 #endif
 typedef prvm_vec_t prvm_vec3_t[3];
 
@@ -49,9 +66,4 @@ typedef float vec_t;
 typedef vec_t vec2_t[2];
 typedef vec_t vec3_t[3];
 typedef vec_t vec4_t[4];
-typedef vec_t vec5_t[5];
-typedef vec_t vec6_t[6];
-typedef vec_t vec7_t[7];
-typedef vec_t vec8_t[8];
-
 #endif