More gib fixes. g_RQ3_gib added

This commit is contained in:
Richard Allen 2002-05-28 01:17:01 +00:00
parent cd9b6e0e31
commit 9651860404
7 changed files with 88 additions and 19 deletions

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.59 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.58 2002/05/27 17:47:19 jbravo
// Fixes and cleanups
//
@ -1468,6 +1471,28 @@ static void CG_DMRewardEvent( entityState_t *ent ) {
}
// JBravo: for sniper headshots
#define GIB_VELOCITY 250
#define GIB_JUMP 250
void CG_GibPlayerHeadshot (vec3_t playerOrigin) {
vec3_t origin, velocity;
if (!cg_blood.integer) {
return;
}
VectorCopy (playerOrigin, origin);
origin[2]+=25;
velocity[0] = crandom()*GIB_VELOCITY;
velocity[1] = crandom()*GIB_VELOCITY;
velocity[2] = GIB_JUMP + crandom()*GIB_VELOCITY;
if (rand() & 1) {
CG_LaunchGib (origin, velocity, cgs.media.gibSkull);
} else {
CG_LaunchGib (origin, velocity, cgs.media.gibBrain);
}
}
/*
==============
CG_JumpKick
@ -1555,7 +1580,7 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
}
ci = &cgs.clientinfo[ clientNum ];
CG_CalcViewDir2(es->origin2, position, viewDir);
// CG_CalcViewDir2(es->origin2, position, viewDir);
switch ( event ) {
//
@ -2603,6 +2628,12 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
// }
CG_GibPlayer( cent->lerpOrigin );
break;
case EV_GIB_PLAYER_HEADSHOT:
DEBUGNAME("EV_GIB_PLAYER_HEADSHOT");
trap_S_StartSound( NULL, es->number, CHAN_BODY, cgs.media.gibSound );
cent->pe.noHead = qtrue;
CG_GibPlayerHeadshot( cent->lerpOrigin );
break;
case EV_BREAK_GLASS1:
DEBUGNAME("EV_BREAK_GLASS1");
// Change cgs.media.gibSound to whatever sound you want it to use

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.83 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.82 2002/05/27 07:02:11 niceass
// reflection changes
//
@ -348,6 +351,7 @@ typedef struct {
float barrelAngle;
int barrelTime;
qboolean barrelSpinning;
qboolean noHead;
//Blaze: for weapon animations
lerpFrame_t weapon;
} playerEntity_t;
@ -1965,6 +1969,8 @@ void CG_Particle_Bleed (qhandle_t pshader, vec3_t start, vec3_t dir, int fleshEn
void CG_ShrapnelSpark( vec3_t source, vec3_t dest, float width, float length );
void CG_GibPlayer( vec3_t playerOrigin );
// JBravo: Sniperheadshots
void CG_GibPlayerHeadshot (vec3_t playerOrigin);
void CG_BigExplode( vec3_t playerOrigin );
// Blaze: Breakable glass Elder: modified
void CG_BreakGlass( vec3_t playerOrigin, int glassParm, int number, int type, int isChip );

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.73 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.72 2002/05/27 06:48:39 niceass
// headless variable
//
@ -1065,6 +1068,7 @@ typedef enum {
EV_POWERUP_REGEN,
EV_GIB_PLAYER, // gib a previously living player
EV_GIB_PLAYER_HEADSHOT, // JBravo: for sniperheadshots
EV_BREAK_GLASS1, // Blaze: Breakable glass
EV_BREAK_GLASS2,
EV_BREAK_GLASS3,

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.80 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.79 2002/05/27 06:50:01 niceass
// further spawning and removed kamakazi
//
@ -1788,6 +1791,7 @@ void ClientSpawn(gentity_t *ent) {
// JBravo: We should not have to call this during TP spawns
if (g_gametype.integer != GT_TEAMPLAY)
ClientEndFrame( ent );
ent->client->noHead=qfalse;
// clear entity state values
BG_PlayerStateToEntityState( &client->ps, &ent->s, qtrue );

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.83 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.82 2002/05/27 06:50:37 niceass
// headless code
//
@ -501,6 +504,11 @@ void GibEntity( gentity_t *self, int killer ) {
self->r.contents = 0;
}
// JBravo: head gibbing
void GibEntity_Headshot (gentity_t *self, int killer) {
G_AddEvent (self, EV_GIB_PLAYER_HEADSHOT, 0);
self->client->noHead = qtrue;
}
/*
==================
body_die
@ -510,6 +518,10 @@ void body_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int d
if ( self->health > GIB_HEALTH ) {
return;
}
// JBravo: Gib control
if (g_RQ3_gib.integer == 0) {
return;
}
if ( !g_blood.integer ) {
self->health = GIB_HEALTH+1;
return;
@ -1503,19 +1515,29 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
// remove powerups
memset(self->client->ps.powerups, 0, sizeof(self->client->ps.powerups));
// NiceAss: beheading =D
if ( meansOfDeath == MOD_SNIPER && hurt == LOC_HDAM )
self->client->ps.eFlags |= EF_HEADLESS;
// JBravo: AQ style Sniper and HC gibbing
if ((meansOfDeath == MOD_SNIPER && hurt == LOC_HDAM) || (meansOfDeath == MOD_HANDCANNON && self->health <= -15)) {
G_Printf("AQ GIB!\n");
self->client->ps.eFlags &= ~EF_HANDCANNON_SMOKED;
GibEntity (self, killer);
if (g_RQ3_gib.integer > 0) {
if (meansOfDeath == MOD_SNIPER && hurt == LOC_HDAM) {
G_Printf("AQ GIB!\n");
if (g_RQ3_gib.integer == 1 || g_RQ3_gib.integer == 2) {
// NiceAss: beheading =D
self->client->ps.eFlags |= EF_HEADLESS;
GibEntity_Headshot (self, killer);
} else
GibEntity (self, killer);
} else {
self->client->noHead = qfalse;
}
if (meansOfDeath == MOD_HANDCANNON && g_RQ3_gib.integer > 1) { // && self->health <= -15) {
G_Printf("AQ GIB!\n");
self->client->noHead = qfalse;
trap_LinkEntity (self);
GibEntity (self, killer);
}
}
// never gib in a nodrop
if ((self->health <= GIB_HEALTH && !(contents & CONTENTS_NODROP) && g_blood.integer) || meansOfDeath == MOD_SUICIDE) {
if (g_RQ3_gib.integer >0 && (self->health <= GIB_HEALTH && !(contents & CONTENTS_NODROP) && g_blood.integer) || meansOfDeath == MOD_SUICIDE) {
// gib death
GibEntity( self, killer );
} else {

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.83 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.82 2002/05/23 15:55:25 makro
// Elevators
//
@ -539,6 +542,8 @@ struct gclient_s {
int timeResidual;
//Elder: C3A laser tutorial
gentity_t *lasersight; // lasersight OR flashlight if in use
// JBravo: sniperheadshots
qboolean noHead;
// Bleeding server-only cvars
int bleeding; // Blaze: remaining points to bleed away
int bleed_remain; // Blaze: How much left to bleed
@ -1183,9 +1188,7 @@ extern vmCvar_t g_RQ3_team2model; // JBravo: team 2 model and skin
extern vmCvar_t g_RQ3_tpcountdown; // JBravo: to disable the pregame countdown
extern vmCvar_t g_RQ3_lca; // JBravo: cvar to signal cgame that LCA is in progress
extern vmCvar_t g_RQ3_printOwnObits; // JBravo: cvar to control if attaker sees his own obits.
//extern vmCvar_t g_RQ3_teamCount1; // JBravo: cvar for the UI join menus
//extern vmCvar_t g_RQ3_teamCount2; // JBravo: cvar for the UI join menus
//extern vmCvar_t g_RQ3_numSpectators; // JBravo: cvar for the UI join menus
extern vmCvar_t g_RQ3_gib; // JBravo: cvar for gib control
extern vmCvar_t g_RQ3_maxteamkills; // JBravo: Max teamkills
extern vmCvar_t g_RQ3_twbanrounds; // JBravo: no. of games team wounders are banned
extern vmCvar_t g_RQ3_tkbanrounds; // JBravo: no. of games team killers are banned

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.60 2002/05/28 01:17:01 jbravo
// More gib fixes. g_RQ3_gib added
//
// Revision 1.59 2002/05/23 03:07:10 blaze
// Some changes to autoaction, still need to fix up a little bit more stuff relating to getting sent 2 screenshot requests
//
@ -244,9 +247,7 @@ vmCvar_t g_RQ3_team1model;
vmCvar_t g_RQ3_team2model;
vmCvar_t g_RQ3_tpcountdown;
vmCvar_t g_RQ3_printOwnObits;
//vmCvar_t g_RQ3_teamCount1;
//vmCvar_t g_RQ3_teamCount2;
//vmCvar_t g_RQ3_numSpectators;
vmCvar_t g_RQ3_gib;
vmCvar_t g_RQ3_maxteamkills;
vmCvar_t g_RQ3_twbanrounds;
vmCvar_t g_RQ3_tkbanrounds;
@ -407,9 +408,7 @@ static cvarTable_t gameCvarTable[] = {
{ &g_RQ3_team2model, "g_RQ3_team2model", "grunt/police", CVAR_SERVERINFO, 0, qfalse },
{ &g_RQ3_tpcountdown, "g_RQ3_tpcountdown", "1", CVAR_ARCHIVE, 0, qfalse },
{ &g_RQ3_printOwnObits, "g_RQ3_printOwnObits", "0", CVAR_ARCHIVE, 0, qfalse },
// { &g_RQ3_teamCount1, "g_RQ3_teamCount1", "0", CVAR_ROM, 0, qfalse },
// { &g_RQ3_teamCount2, "g_RQ3_teamCount2", "0", CVAR_ROM, 0, qfalse },
// { &g_RQ3_numSpectators, "g_RQ3_numSpectators", "0", CVAR_ROM, 0, qfalse },
{ &g_RQ3_gib, "g_RQ3_gib", "1", CVAR_ARCHIVE, 0, qtrue },
{ &g_RQ3_lca, "g_RQ3_lca", "0", CVAR_ROM, 0, qfalse},
{ &g_RQ3_maxteamkills, "g_RQ3_maxteamkills", "0", CVAR_ARCHIVE, 0, qtrue},
{ &g_RQ3_twbanrounds, "g_RQ3_twbanrounds", "2", CVAR_ARCHIVE, 0, qtrue},