#ifndef ZOOM_TYPES_H #define ZOOM_TYPES_H #include #define TRIANGLE_UNKNOWN 0 #define TRIANGLE_WALL 1 #define TRIANGLE_FLOOR 2 #define LIGHT_UNKNOWN 0 #define LIGHT_POINT 1 #define LIGHT_DIRECTIONAL 2 #define LIGHT_SPOT 3 #define THING_UNKNOWN 0 #define THING_MEDIPAK25 1 #define THING_MEDIPAK50 2 #define THING_MEDIPAK100 3 #define GATE_UNKNOWN 0 #define GATE_SIDE 1 #define STATE_UNKNOWN 0 #define STATE_OPENED 1 #define STATE_CLOSED 2 #define STATE_OPENING 3 #define STATE_CLOSING 4 #pragma pack(push, 2) typedef struct WALL { unsigned char type; unsigned char visible; union { TRIANGLE triangle; struct { VERTEX vertices[3]; VECTOR normal; }; }; int texture; TEXCOORDS texcoords[3]; } WALL; typedef struct _COLOR { float r, g, b; } COLOR; typedef struct _LIGHT { unsigned char type; COLOR diffuse; VERTEX pos; } LIGHT; typedef struct _THING { unsigned char type; unsigned char visible; VERTEX pos; } THING; typedef struct _GATE { unsigned char type; unsigned char open; WALL walls[2]; VERTEX point; int room; int gate; } GATE; #pragma pack(pop) #endif