summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Schwarz <lakitu7@gmail.com>2009-10-03 12:07:48 +0000
committerTim Angus <tim@ngus.net>2013-01-03 00:15:41 +0000
commit03b74b80b30bce8bba06578dc44264ef6720462c (patch)
tree0ad8b5592496a1f34b861765a296b11f2964f8a9
parentadca72d2a50b0a9695e1536dd8e6662070f20be1 (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.c15
-rw-r--r--src/game/g_local.h1
-rw-r--r--src/game/g_main.c2
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 },