29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
CHF, // idem ceiling
SPACE, // entirely empty cube
SEMISOLID, // generated by mipmapping
MAXTYPE
};
struct sqr {
uchar type; // one of the above
char floor, ceil; // height, in cubes
uchar wtex, ftex, ctex; // wall/floor/ceil texture ids
uchar r, g, b; // light value at upper left vertex
uchar vdelta; // vertex delta, used for heightfield cubes
char defer; // used in mipmapping, when true this cube is not a perfect
// mip
char occluded; // true when occluded
uchar utex; // upper wall tex id
uchar tag; // used by triggers
};
// hardcoded texture numbers
enum {
DEFAULT_SKY = 0,
DEFAULT_LIQUID,
DEFAULT_WALL,
|
|
>
>
|
|
>
|
>
|
>
|
>
|
|
|
>
|
>
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
CHF, // idem ceiling
SPACE, // entirely empty cube
SEMISOLID, // generated by mipmapping
MAXTYPE
};
struct sqr {
// one of the above
unsigned char type;
// height, in cubes
char floor, ceil;
// wall/floor/ceil texture ids
unsigned char wtex, ftex, ctex;
// light value at upper left vertex
unsigned char r, g, b;
// vertex delta, used for heightfield cubes
unsigned char vdelta;
// used in mipmapping, when true this cube is not a perfect mip
char defer;
// true when occluded
char occluded;
// upper wall tex id
unsigned char utex;
// used by triggers
unsigned char tag;
};
// hardcoded texture numbers
enum {
DEFAULT_SKY = 0,
DEFAULT_LIQUID,
DEFAULT_WALL,
|
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
struct header {
char head[4]; // "CUBE"
int version; // any >8bit quantity is a little indian
int headersize; // sizeof(header)
int sfactor; // in bits
int numents;
char maptitle[128];
uchar texlists[3][256];
int waterlevel;
int reserved[15];
};
#define SWS(w, x, y, s) (&(w)[(y) * (s) + (x)])
#define SW(w, x, y) SWS(w, x, y, ssize)
#define S(x, y) SW(world, x, y) // convenient lookup of a lowest mip cube
|
|
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
struct header {
char head[4]; // "CUBE"
int version; // any >8bit quantity is a little indian
int headersize; // sizeof(header)
int sfactor; // in bits
int numents;
char maptitle[128];
unsigned char texlists[3][256];
int waterlevel;
int reserved[15];
};
#define SWS(w, x, y, s) (&(w)[(y) * (s) + (x)])
#define SW(w, x, y) SWS(w, x, y, ssize)
#define S(x, y) SW(world, x, y) // convenient lookup of a lowest mip cube
|
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
S_JUMPPAD,
};
// vertex array format
struct vertex {
float u, v, x, y, z;
uchar r, g, b, a;
};
// globals ooh naughty
#ifdef __cplusplus
extern "C" {
#endif
|
|
|
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
S_JUMPPAD,
};
// vertex array format
struct vertex {
float u, v, x, y, z;
unsigned char r, g, b, a;
};
// globals ooh naughty
#ifdef __cplusplus
extern "C" {
#endif
|