/* * tmd_defs.h * * TMD defines and types */ #ifndef TMD_DEFS_H #define TMD_DEFS_H #define TMD_VERSION 0x00000041 #define TMD_FIXP 0x00000001 #define PRIM_GRD 0x04 #define PRIM_FCE 0x02 #define PRIM_LGT 0x01 #define PRIM_IIP 0x10 #define PRIM_QUAD 0x08 #define PRIM_TME 0x04 #define PRIM_ABE 0x02 #define PRIM_TGE 0x01 #define P3_FNT 0x20 typedef struct { u_long id; u_long flags; u_long nobj; } tmd_header; typedef struct { u_long *vert_top; u_long n_vert; u_long *norm_top; u_long n_norm; u_long *prim_top; u_long n_prim; long scale; } tmd_object; typedef struct { u_short vx, vy; u_short vz, pad; } tmd_vert; typedef struct { u_short nx, ny; u_short nz, pad; } tmd_norm; typedef struct { u_char olen, ilen, flag, mode; } prim_hdr; typedef struct { u_char r0, g0, b0, mode2; u_short n0, v0; u_short v1, v2; } prim_3_fnt; typedef struct { u_char r0, g0, b0, mode2; u_short n0, v0; u_short v1, v2; u_short v3, pad; } prim_4_fnt; /* typedef struct { u_char r0, g0, b0, mode2; u_short n0, v0; u_short n1, v1; u_short n2, v2; u_short n3, v3; } prim_4_gnt; */ typedef struct { prim_hdr hdr; // union // { // prim_3_fnt p3_fnt; // prim_4_fnt p4_fnt; // } data; } tmd_prim; #endif