Vegastrike 0.5.1 rc1
1.0
Original sources for Vegastrike Evolved
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
IceTypes.h
Go to the documentation of this file.
1
8
11
// Include Guard
12
#ifndef __ICETYPES_H__
13
#define __ICETYPES_H__
14
15
#define USE_HANDLE_MANAGER
16
17
// Constants
18
#ifndef PI
19
#define PI 3.1415926535897932384626433832795028841971693993751f
20
#endif
21
#define HALFPI 1.57079632679489661923f
22
#define TWOPI 6.28318530717958647692f
23
#define INVPI 0.31830988618379067154f
24
25
#define RADTODEG 57.2957795130823208768f
26
#define DEGTORAD 0.01745329251994329577f
27
28
#define EXP 2.71828182845904523536f
29
#define INVLOG2 3.32192809488736234787f
30
#define LN2 0.693147180559945f
31
#define INVLN2 1.44269504089f
32
33
#define INV3 0.33333333333333333333f
34
#define INV6 0.16666666666666666666f
35
#define INV7 0.14285714285714285714f
36
#define INV9 0.11111111111111111111f
37
#define INV255 0.00392156862745098039f
38
39
#define SQRT2 1.41421356237f
40
#define INVSQRT2 0.707106781188f
41
42
#define SQRT3 1.73205080757f
43
#define INVSQRT3 0.577350269189f
44
45
#define null 0
46
47
// Custom types used in ICE
48
typedef
signed
char
sbyte
;
49
typedef
unsigned
char
ubyte
;
50
typedef
signed
short
sword
;
51
typedef
unsigned
short
uword
;
52
typedef
signed
int
sdword
;
53
typedef
unsigned
int
udword
;
54
typedef
int64
sqword
;
55
typedef
uint64
uqword
;
56
typedef
float
float32
;
57
typedef
double
float64
;
58
59
// ICE_COMPILE_TIME_ASSERT(sizeof(bool)==1); // ...otherwise things might fail with VC++ 4.2 !
60
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
ubyte
)==1);
61
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
sbyte
)==1);
62
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
sword
)==2);
63
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
uword
)==2);
64
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
udword
)==4);
65
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
sdword
)==4);
66
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
uqword
)==8);
67
ICE_COMPILE_TIME_ASSERT
(
sizeof
(
sqword
)==8);
68
70
#define DECLARE_ICE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
71
72
typedef
udword
DynID
;
73
#ifdef USE_HANDLE_MANAGER
74
typedef
udword
KID
;
75
// DECLARE_ICE_HANDLE(KID);
76
#else
77
typedef
uword
KID
;
78
#endif
79
typedef
udword
RTYPE
;
80
#define INVALID_ID 0xffffffff
81
#ifdef USE_HANDLE_MANAGER
82
#define INVALID_KID 0xffffffff
83
#else
84
#define INVALID_KID 0xffff
85
#endif
86
#define INVALID_NUMBER 0xDEADBEEF
87
88
// Define BOOL if needed
89
#ifndef BOOL
90
typedef
int
BOOL
;
91
#endif
92
94
typedef
union
{
95
float
f
;
96
sdword
d
;
97
}
scell
;
98
100
typedef
union
{
101
float
f
;
102
udword
d
;
103
}
ucell
;
104
105
// Type ranges
106
#define MAX_SBYTE 0x7f
107
#define MIN_SBYTE 0x80
108
#define MAX_UBYTE 0xff
109
#define MIN_UBYTE 0x00
110
#define MAX_SWORD 0x7fff
111
#define MIN_SWORD 0x8000
112
#define MAX_UWORD 0xffff
113
#define MIN_UWORD 0x0000
114
#define MAX_SDWORD 0x7fffffff
115
#define MIN_SDWORD 0x80000000
116
#define MAX_UDWORD 0xffffffff
117
#define MIN_UDWORD 0x00000000
118
#define MAX_FLOAT FLT_MAX
119
#define MIN_FLOAT (-FLT_MAX)
120
#define IEEE_1_0 0x3f800000
121
#define IEEE_255_0 0x437f0000
122
#define IEEE_MAX_FLOAT 0x7f7fffff
123
#define IEEE_MIN_FLOAT 0xff7fffff
124
#define IEEE_UNDERFLOW_LIMIT 0x1a000000
125
126
#define ONE_OVER_RAND_MAX (1.0f / float(RAND_MAX))
127
128
typedef
bool
(*
ENUMERATION
)(
udword
value,
udword
param,
udword
context);
129
typedef
void
**
VTABLE
;
130
131
#undef MIN
132
#undef MAX
133
#define MIN(a, b) ((a) < (b) ? (a) : (b))
134
#define MAX(a, b) ((a) > (b) ? (a) : (b))
135
#define MAXMAX(a,b,c) ((a) > (b) ? MAX (a,c) : MAX (b,c))
136
137
template
<
class
T>
inline_
const
T&
TMin
(
const
T&
a
,
const
T&
b
) {
return
b < a ? b :
a
; }
138
template
<
class
T>
inline_
const
T&
TMax
(
const
T&
a
,
const
T&
b
) {
return
a < b ? b :
a
; }
139
template
<
class
T>
inline_
void
TSetMin
(T&
a
,
const
T&
b
) {
if
(a>b) a =
b
; }
140
template
<
class
T>
inline_
void
TSetMax
(T&
a
,
const
T&
b
) {
if
(a<b) a =
b
; }
141
142
#define SQR(x) ((x)*(x))
143
#define CUBE(x) ((x)*(x)*(x))
144
145
#define AND &
146
#define OR |
147
#define XOR ^
148
149
#define QUADRAT(x) ((x)*(x))
150
151
#ifdef _WIN32
152
# define srand48(x) srand((unsigned int) (x))
153
# define srandom(x) srand((unsigned int) (x))
154
# define random() ((double) rand())
155
# define drand48() ((double) (((double) rand()) / ((double) RAND_MAX)))
156
#endif
157
158
#endif // __ICETYPES_H__
src
cmd
collide2
Ice
IceTypes.h
Generated on Fri May 29 2015 23:07:12 for Vegastrike 0.5.1 rc1 by
1.8.4