107 lines
2.6 KiB
C
107 lines
2.6 KiB
C
|
#ifndef G2_GORE_SHARED
|
||
|
#define G2_GORE_SHARED
|
||
|
|
||
|
// these are the actual shaders
|
||
|
typedef enum {
|
||
|
PGORE_NONE,
|
||
|
PGORE_ARMOR,
|
||
|
PGORE_BULLETBIG,
|
||
|
PGORE_KNIFESLASH,
|
||
|
PGORE_PUNCTURE,
|
||
|
PGORE_SHOTGUN,
|
||
|
PGORE_SHOTGUNBIG,
|
||
|
PGORE_IMMOLATE,
|
||
|
PGORE_BURN,
|
||
|
PGORE_SPURT,
|
||
|
PGORE_SPLATTER,
|
||
|
PGORE_BLOODY_GLASS,
|
||
|
PGORE_BLOODY_GLASS_B,
|
||
|
PGORE_BLOODY_ICK,
|
||
|
PGORE_BLOODY_DROOP,
|
||
|
PGORE_BLOODY_MAUL,
|
||
|
PGORE_BLOODY_DROPS,
|
||
|
PGORE_BULLET_E,
|
||
|
PGORE_BULLET_F,
|
||
|
PGORE_BULLET_G,
|
||
|
PGORE_BULLET_H,
|
||
|
PGORE_BULLET_I,
|
||
|
PGORE_BULLET_J,
|
||
|
PGORE_BULLET_K,
|
||
|
PGORE_BLOODY_HAND,
|
||
|
PGORE_POWDER_BURN_DENSE,
|
||
|
PGORE_POWDER_BURN_CHUNKY,
|
||
|
PGORE_KNIFESLASH2,
|
||
|
PGORE_KNIFESLASH3,
|
||
|
PGORE_CHUNKY_SPLAT,
|
||
|
PGORE_BIG_SPLATTER,
|
||
|
PGORE_BLOODY_SPLOTCH,
|
||
|
PGORE_BLEEDER,
|
||
|
PGORE_PELLETS,
|
||
|
PGORE_KNIFE_SOAK,
|
||
|
PGORE_BLEEDER_DENSE,
|
||
|
PGORE_BLOODY_SPLOTCH2,
|
||
|
PGORE_BLOODY_DRIPS,
|
||
|
PGORE_DRIPPING_DOWN,
|
||
|
PGORE_GUTSHOT,
|
||
|
PGORE_SHRAPNEL,
|
||
|
PGORE_COUNT
|
||
|
} goreEnum_t;
|
||
|
|
||
|
struct goreEnumShader_t
|
||
|
{
|
||
|
int maxLODBias; //if r_lodBias (and the other 3 convars) =x then shaders with this larger than x will not be used
|
||
|
goreEnum_t shaderEnum; // why is this even in here?
|
||
|
char shaderName[MAX_QPATH];
|
||
|
};
|
||
|
|
||
|
typedef struct SSkinGoreData_s
|
||
|
{
|
||
|
vec3_t angles;
|
||
|
vec3_t position;
|
||
|
int currentTime;
|
||
|
int entNum;
|
||
|
vec3_t rayDirection; // in world space
|
||
|
vec3_t hitLocation; // in world space
|
||
|
vec3_t scale;
|
||
|
float SSize; // size of splotch in the S texture direction in world units
|
||
|
float TSize; // size of splotch in the T texture direction in world units
|
||
|
float theta; // angle to rotate the splotch
|
||
|
|
||
|
// growing stuff
|
||
|
int growDuration; // time over which we want this to scale up, set to -1 for no scaling
|
||
|
float goreScaleStartFraction; // fraction of the final size at which we want the gore to initially appear
|
||
|
|
||
|
qboolean frontFaces;
|
||
|
qboolean backFaces;
|
||
|
qboolean baseModelOnly;
|
||
|
int lifeTime; // effect expires after this amount of time
|
||
|
int fadeOutTime; // unimplemented
|
||
|
int shrinkOutTime; // unimplemented
|
||
|
float alphaModulate; // unimplemented
|
||
|
vec3_t tint; // unimplemented
|
||
|
float impactStrength; // unimplemented
|
||
|
|
||
|
goreEnum_t shaderEnum; // enum that'll get switched over to the shader's actual handle
|
||
|
|
||
|
int myIndex; // used internally
|
||
|
|
||
|
/*
|
||
|
// Constructor for the CPP version of this struct in SP.
|
||
|
SSkinGoreData()
|
||
|
{
|
||
|
growDuration=-1;
|
||
|
goreScaleStartFraction=1.0f;
|
||
|
frontFaces=true;
|
||
|
backFaces=true;
|
||
|
theta=0.0f;
|
||
|
SSize=0.0f;
|
||
|
TSize=0.0f;
|
||
|
lifeTime=0;
|
||
|
baseModelOnly=false;
|
||
|
}
|
||
|
*/
|
||
|
} SSkinGoreData;
|
||
|
|
||
|
#endif //G2_GORE_SHARED
|
||
|
|