X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=qtypes.h;h=7e10a4fa4310e5d7acd49ca3ea4243aa8b3f9847;hp=3a481cae5269fc53f8e8d863c35a5a7c8583da7d;hb=3f1a6f4ef01a194e2f48ccc26c9e136c6057e8bb;hpb=b128eaeea407b5aeff8682bd2559af6bd93817d6 diff --git a/qtypes.h b/qtypes.h index 3a481cae..7e10a4fa 100644 --- a/qtypes.h +++ b/qtypes.h @@ -2,24 +2,16 @@ #ifndef QTYPES_H #define QTYPES_H -#undef true -#undef false +#include +#include +#include -#ifndef __cplusplus -typedef enum qboolean_e {false, true} qboolean; -#else -typedef bool qboolean; -#endif +typedef bool qbool; #ifndef NULL #define NULL ((void *)0) #endif -#ifndef FALSE -#define FALSE false -#define TRUE true -#endif - // up / down #define PITCH 0 @@ -29,4 +21,49 @@ typedef bool qboolean; // fall over #define ROLL 2 +#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 +#ifdef PRVM_64 +typedef double prvm_vec_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 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]; + +#ifdef VEC_64 +typedef double vec_t; +#else +typedef float vec_t; +#endif +typedef vec_t vec2_t[2]; +typedef vec_t vec3_t[3]; +typedef vec_t vec4_t[4]; #endif