138 lines
2.7 KiB
138 lines
2.7 KiB
/*** |
|
* |
|
* Copyright (c) 1996-2002, Valve LLC. All rights reserved. |
|
* |
|
* This product contains software technology licensed from Id |
|
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. |
|
* All Rights Reserved. |
|
* |
|
* Use, distribution, and modification of this source code and/or resulting |
|
* object code is restricted to non-commercial enhancements to products from |
|
* Valve LLC. All other use, distribution, or modification is prohibited |
|
* without written permission from Valve LLC. |
|
* |
|
****/ |
|
|
|
#ifndef ALIAS_H |
|
#define ALIAS_H |
|
|
|
/* |
|
============================================================================== |
|
|
|
ALIAS MODELS |
|
|
|
Alias models are position independent, so the cache manager can move them. |
|
============================================================================== |
|
*/ |
|
|
|
#define IDALIASHEADER (('O'<<24)+('P'<<16)+('D'<<8)+'I') // little-endian "IDPO" |
|
|
|
#define ALIAS_VERSION 6 |
|
|
|
// client-side model flags |
|
#define ALIAS_ROCKET 0x0001 // leave a trail |
|
#define ALIAS_GRENADE 0x0002 // leave a trail |
|
#define ALIAS_GIB 0x0004 // leave a trail |
|
#define ALIAS_ROTATE 0x0008 // rotate (bonus items) |
|
#define ALIAS_TRACER 0x0010 // green split trail |
|
#define ALIAS_ZOMGIB 0x0020 // small blood trail |
|
#define ALIAS_TRACER2 0x0040 // orange split trail + rotate |
|
#define ALIAS_TRACER3 0x0080 // purple trail |
|
|
|
// must match definition in sprite.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; |
|
} daliashdr_t; |
|
|
|
typedef struct |
|
{ |
|
int onseam; |
|
int s; |
|
int t; |
|
} stvert_t; |
|
|
|
typedef struct dtriangle_s |
|
{ |
|
int facesfront; |
|
int vertindex[3]; |
|
} dtriangle_t; |
|
|
|
#define DT_FACES_FRONT 0x0010 |
|
#define ALIAS_ONSEAM 0x0020 |
|
|
|
typedef struct |
|
{ |
|
trivertex_t bboxmin; // lightnormal isn't used |
|
trivertex_t bboxmax; // lightnormal isn't used |
|
char name[16]; // frame name from grabbing |
|
} daliasframe_t; |
|
|
|
typedef struct |
|
{ |
|
int numframes; |
|
trivertex_t bboxmin; // lightnormal isn't used |
|
trivertex_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; |
|
|
|
#endif//ALIAS_H
|