]> git.xonotic.org Git - xonotic/darkplaces.git/blob - qtypes.h
Implement experimental hook-like system, with working example.
[xonotic/darkplaces.git] / qtypes.h
1
2 #ifndef QTYPES_H
3 #define QTYPES_H
4
5 #include <stdint.h>
6
7 #ifndef __cplusplus
8 #ifdef _MSC_VER
9 typedef enum {false, true} bool;
10 #else
11 #include <stdbool.h>
12 #endif
13 #endif
14 typedef bool qboolean;
15
16
17 #ifndef NULL
18 #define NULL ((void *)0)
19 #endif
20
21 // up / down
22 #define PITCH   0
23
24 // left / right
25 #define YAW             1
26
27 // fall over
28 #define ROLL    2
29
30 #if defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1400)
31 #define RESTRICT __restrict
32 #else
33 #define RESTRICT
34 #endif
35
36 typedef long long dpint64;
37 typedef unsigned long long dpuint64;
38
39 // LadyHavoc: upgrade the prvm to double precision for better time values
40 // LadyHavoc: to be enabled when bugs are worked out...
41 #define PRVM_64
42 #ifdef PRVM_64
43 typedef double prvm_vec_t;
44 typedef long long prvm_int_t;
45 typedef unsigned long long prvm_uint_t;
46 #else
47 typedef float prvm_vec_t;
48 typedef int prvm_int_t;
49 typedef unsigned int prvm_uint_t;
50 #endif
51 typedef prvm_vec_t prvm_vec3_t[3];
52
53 #ifdef VEC_64
54 typedef double vec_t;
55 #else
56 typedef float vec_t;
57 #endif
58 typedef vec_t vec2_t[2];
59 typedef vec_t vec3_t[3];
60 typedef vec_t vec4_t[4];
61 typedef vec_t vec5_t[5];
62 typedef vec_t vec6_t[6];
63 typedef vec_t vec7_t[7];
64 typedef vec_t vec8_t[8];
65
66 #endif