#ifndef GAME_TYPES_H #define GAME_TYPES_H #include #define TRIANGLE_UNKNOWN 0 #define TRIANGLE_WALL 1 #define TRIANGLE_FLOOR 2 #define OBJECT_UNKNOWN 0 #define OBJECT_MEDIPAK25 1 #define OBJECT_MEDIPAK50 2 #define OBJECT_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 union _MATRIX { float m[4][4]; float f[16]; } MATRIX; typedef struct _VECTOR_VERTEX { float x, y, z; } VECTOR, VERTEX; typedef struct _TEXCOORDS { float s, t; } TEXCOORDS; typedef struct _TRIANGLE { unsigned char type; unsigned char visible; VERTEX vertices[3]; VECTOR normal; int texture; TEXCOORDS texcoords[3]; } TRIANGLE; typedef struct _OBJECT { unsigned char type; unsigned char visible; VERTEX pos; } OBJECT; typedef struct _GATE { unsigned char type; unsigned char open; TRIANGLE triangles[2]; VERTEX point; int room; int gate; } GATE; #pragma pack(pop) #endif