diff options
author | Christopher Schwarz <lakitu7@gmail.com> | 2009-10-03 12:07:48 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2013-01-03 00:15:41 +0000 |
commit | 03b74b80b30bce8bba06578dc44264ef6720462c (patch) | |
tree | 0ad8b5592496a1f34b861765a296b11f2964f8a9 | |
parent | adca72d2a50b0a9695e1536dd8e6662070f20be1 (diff) |
* (bug 2980) Add g_dretchPunt setting to punt dretches out of the way of teammates when attacked by them (tjw)
-rw-r--r-- | src/game/g_combat.c | 15 | ||||
-rw-r--r-- | src/game/g_local.h | 1 | ||||
-rw-r--r-- | src/game/g_main.c | 2 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 0715266d..f8866871 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -978,8 +978,21 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, // if the attacker was on the same team if( targ != attacker && OnSameTeam( targ, attacker ) ) { + // if dretchpunt is enabled and this is a dretch, do dretchpunt instead of damage + if( g_dretchPunt.integer && + targ->client->ps.stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL0 ) + { + vec3_t dir, push; + + VectorSubtract( targ->r.currentOrigin, attacker->r.currentOrigin, dir ); + VectorNormalizeFast( dir ); + VectorScale( dir, ( damage * 10.0f ), push ); + push[2] = 64.0f; + VectorAdd( targ->client->ps.velocity, push, targ->client->ps.velocity ); + return; + } // don't do friendly fire on movement attacks - if( mod == MOD_LEVEL4_TRAMPLE || mod == MOD_LEVEL3_POUNCE || + else if( mod == MOD_LEVEL4_TRAMPLE || mod == MOD_LEVEL3_POUNCE || mod == MOD_LEVEL4_CRUSH ) return; diff --git a/src/game/g_local.h b/src/game/g_local.h index 589c6c12..8306b8cc 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -1085,6 +1085,7 @@ extern vmCvar_t g_friendlyFire; extern vmCvar_t g_friendlyFireHumans; extern vmCvar_t g_friendlyFireAliens; extern vmCvar_t g_friendlyBuildableFire; +extern vmCvar_t g_dretchPunt; extern vmCvar_t g_password; extern vmCvar_t g_needpass; extern vmCvar_t g_gravity; diff --git a/src/game/g_main.c b/src/game/g_main.c index 808fed57..9edd1d42 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -46,6 +46,7 @@ vmCvar_t g_friendlyFire; vmCvar_t g_friendlyFireAliens; vmCvar_t g_friendlyFireHumans; vmCvar_t g_friendlyBuildableFire; +vmCvar_t g_dretchPunt; vmCvar_t g_password; vmCvar_t g_needpass; vmCvar_t g_maxclients; @@ -170,6 +171,7 @@ static cvarTable_t gameCvarTable[ ] = { &g_friendlyFireAliens, "g_friendlyFireAliens", "0", CVAR_ARCHIVE, 0, qtrue }, { &g_friendlyFireHumans, "g_friendlyFireHumans", "0", CVAR_ARCHIVE, 0, qtrue }, { &g_friendlyBuildableFire, "g_friendlyBuildableFire", "0", CVAR_ARCHIVE, 0, qtrue }, + { &g_dretchPunt, "g_dretchPunt", "0", CVAR_ARCHIVE, 0, qtrue }, { &g_teamAutoJoin, "g_teamAutoJoin", "0", CVAR_ARCHIVE }, { &g_teamForceBalance, "g_teamForceBalance", "0", CVAR_ARCHIVE }, |