mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2025-03-27 12:51:13 +00:00
More gib fixes. g_RQ3_gib added
This commit is contained in:
parent
cd9b6e0e31
commit
9651860404
7 changed files with 88 additions and 19 deletions
|
@ -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
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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},
|
||||
|
|
Loading…
Reference in a new issue