hexen2/H2MP/code/genmodel.h
2000-11-10 00:00:00 +00:00

147 lines
2.5 KiB
C

//**************************************************************************
//**
//** genmodel.h
//**
//** This file must be identical in the genmodel project and in the H3
//** project.
//**
//**************************************************************************
#define ALIAS_VERSION 6
#define ALIAS_NEWVERSION 50
#define ALIAS_ONSEAM 0x0020
// Little-endian "IDPO"
#define IDPOLYHEADER (('O'<<24)+('P'<<16)+('D'<<8)+'I')
#define RAPOLYHEADER (('O'<<24)+('P'<<16)+('A'<<8)+'R')
// must match definition in spritegn.h
#ifndef SYNCTYPE_T
#define SYNCTYPE_T
typedef enum
{
ST_SYNC = 0,
ST_RAND
} synctype_t;
#endif
typedef enum
{
ALIAS_SINGLE = 0,
ALIAS_GROUP
} aliasframetype_t;
typedef enum
{
ALIAS_SKIN_SINGLE = 0,
ALIAS_SKIN_GROUP
} aliasskintype_t;
typedef struct
{
int ident;
int version;
vec3_t scale;
vec3_t scale_origin;
float boundingradius;
vec3_t eyeposition;
int numskins;
int skinwidth;
int skinheight;
int numverts;
int numtris;
int numframes;
synctype_t synctype;
int flags;
float size;
} mdl_t;
typedef struct
{
int ident;
int version;
vec3_t scale;
vec3_t scale_origin;
float boundingradius;
vec3_t eyeposition;
int numskins;
int skinwidth;
int skinheight;
int numverts;
int numtris;
int numframes;
synctype_t synctype;
int flags;
float size;
int num_st_verts;
} newmdl_t;
typedef struct
{
// TODO: could be shorts
int onseam;
int s;
int t;
} stvert_t;
typedef struct dtriangle_s
{
int facesfront;
int vertindex[3];
} dtriangle_t;
typedef struct dnewtriangle_s
{
int facesfront;
unsigned short vertindex[3];
unsigned short stindex[3];
} dnewtriangle_t;
#define DT_FACES_FRONT 0x0010
typedef struct
{
byte v[3];
byte lightnormalindex;
} trivertx_t;
typedef struct
{
trivertx_t bboxmin; // lightnormal isn't used
trivertx_t bboxmax; // lightnormal isn't used
char name[16]; // frame name from grabbing
} daliasframe_t;
typedef struct
{
int numframes;
trivertx_t bboxmin; // lightnormal isn't used
trivertx_t bboxmax; // lightnormal isn't used
} daliasgroup_t;
typedef struct
{
int numskins;
} daliasskingroup_t;
typedef struct
{
float interval;
} daliasinterval_t;
typedef struct
{
float interval;
} daliasskininterval_t;
typedef struct
{
aliasframetype_t type;
} daliasframetype_t;
typedef struct
{
aliasskintype_t type;
} daliasskintype_t;