|
|
|
@ -57,6 +57,7 @@ typedef struct |
|
|
|
} ps1bsp_vertex_t; |
|
|
|
|
|
|
|
// Texture UV and lighting data for a vertex on a particular polygon. |
|
|
|
// TODO: break up into poly vertex (index + uv) and surface vertex (index + light) shared between polygons. |
|
|
|
typedef struct |
|
|
|
{ |
|
|
|
unsigned short index; |
|
|
|
@ -83,6 +84,20 @@ typedef struct |
|
|
|
unsigned char b : 5; |
|
|
|
} ps1bsp_facevertex_t; |
|
|
|
|
|
|
|
#define SURF_PLANEBACK 0x2 |
|
|
|
#define SURF_DRAWSKY 0x4 |
|
|
|
#define SURF_DRAWSPRITE 0x8 |
|
|
|
#define SURF_DRAWTURB 0x10 |
|
|
|
#define SURF_DRAWTILED 0x20 |
|
|
|
#define SURF_DRAWBACKGROUND 0x40 |
|
|
|
#define SURF_UNDERWATER 0x80 |
|
|
|
#define SURF_NOTEXTURE 0x100 |
|
|
|
#define SURF_DRAWFENCE 0x200 |
|
|
|
#define SURF_DRAWLAVA 0x400 |
|
|
|
#define SURF_DRAWSLIME 0x800 |
|
|
|
#define SURF_DRAWTELE 0x1000 |
|
|
|
#define SURF_DRAWWATER 0x2000 |
|
|
|
|
|
|
|
// High quality: Face -> polygons -> polygon vertex indices (index + UV + light) -> vertices |
|
|
|
// Low quality: Face -> face vertex indices (index + color) -> vertices |
|
|
|
typedef struct |
|
|
|
@ -99,14 +114,13 @@ typedef struct |
|
|
|
unsigned char numFaceVertices; |
|
|
|
|
|
|
|
unsigned char textureId; |
|
|
|
unsigned short flags; |
|
|
|
|
|
|
|
// Used for backface culling |
|
|
|
SVECTOR center; |
|
|
|
|
|
|
|
// Which frame was this face last drawn on? Used to check if this face should be drawn. |
|
|
|
u_long drawFrame; |
|
|
|
|
|
|
|
u_short pad; // For 32-bit alignment |
|
|
|
} ps1bsp_face_t; |
|
|
|
|
|
|
|
typedef struct |
|
|
|
|