DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
qtypes.h
Go to the documentation of this file.
1
2#ifndef QTYPES_H
3#define QTYPES_H
4
5#include <stdint.h>
6#include <stdbool.h>
7#include <inttypes.h>
8
9typedef bool qbool;
10
11#ifndef NULL
12#define NULL ((void *)0)
13#endif
14
15// up / down
16#define PITCH 0
17
18// left / right
19#define YAW 1
20
21// fall over
22#define ROLL 2
23
24#if defined(__GNUC__) || (__clang__) || (__TINYC__) || (_MSC_VER >= 1400)
25#define RESTRICT __restrict
26#else
27#define RESTRICT
28#endif
29
30typedef int8_t i8;
31typedef int16_t i16;
32typedef int32_t i32;
33typedef int64_t i64;
34
35typedef uint8_t u8;
36typedef uint16_t u16;
37typedef uint32_t u32;
38typedef uint64_t u64;
39
40typedef intptr_t iptr;
41typedef uintptr_t uptr;
42
43// LadyHavoc: upgrade the prvm to double precision for better time values
44// LadyHavoc: to be enabled when bugs are worked out...
45//#define PRVM_64
46#ifdef PRVM_64
47typedef double prvm_vec_t;
48typedef int64_t prvm_int_t;
49typedef uint64_t prvm_uint_t;
50#define PRVM_PRIi PRIi64
51#define PRVM_PRIu PRIu64
52#define PRVM_INT_MIN INT64_MIN
53#define PRVM_INT_MAX INT64_MAX
54#else
55typedef float prvm_vec_t;
56typedef int32_t prvm_int_t;
57typedef uint32_t prvm_uint_t;
58#define PRVM_PRIi PRIi32
59#define PRVM_PRIu PRIu32
60#define PRVM_INT_MIN INT32_MIN
61#define PRVM_INT_MAX INT32_MAX
62#endif
64
65#ifdef VEC_64
66typedef double vec_t;
67#else
68typedef float vec_t;
69#endif
70typedef vec_t vec2_t[2];
71typedef vec_t vec3_t[3];
72typedef vec_t vec4_t[4];
73#endif
uint32_t prvm_uint_t
Definition qtypes.h:57
intptr_t iptr
Definition qtypes.h:40
float vec_t
Definition qtypes.h:68
uint64_t u64
Definition qtypes.h:38
int32_t i32
Definition qtypes.h:32
vec_t vec3_t[3]
Definition qtypes.h:71
prvm_vec_t prvm_vec3_t[3]
Definition qtypes.h:63
int64_t i64
Definition qtypes.h:33
uint8_t u8
Definition qtypes.h:35
uintptr_t uptr
Definition qtypes.h:41
bool qbool
Definition qtypes.h:9
vec_t vec4_t[4]
Definition qtypes.h:72
uint16_t u16
Definition qtypes.h:36
int16_t i16
Definition qtypes.h:31
float prvm_vec_t
Definition qtypes.h:55
vec_t vec2_t[2]
Definition qtypes.h:70
int8_t i8
Definition qtypes.h:30
int32_t prvm_int_t
Definition qtypes.h:56
uint32_t u32
Definition qtypes.h:37