From f9a8b76c0f912cea66eacf71162a3090fda698d8 Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Sun, 19 Jan 2014 11:44:43 +0100 Subject: 0.1.6 --- src/game/g_combat.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/game/g_combat.c') diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 1b6708f..fe5d607 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -1329,7 +1329,7 @@ G_RadiusDamage qboolean G_RadiusDamage( vec3_t origin, gentity_t *attacker, float damage, float radius, gentity_t *ignore, int mod ) { - float points, dist; + float points, dist, shake; gentity_t *ent; int entityList[ MAX_GENTITIES ]; int numListedEntities; @@ -1389,6 +1389,31 @@ qboolean G_RadiusDamage( vec3_t origin, gentity_t *attacker, float damage, } } + for( i = 0; i < 3; i++ ) + { + mins[ i ] = origin[ i ] - radius * 2; + maxs[ i ] = origin[ i ] + radius * 2; + } + + numListedEntities = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); + + for( e = 0; e < numListedEntities; e++ ) + { + ent = g_entities + entityList[ e ]; + + if( ent == ignore ) + continue; + + if( !ent->client ) + continue; + + if( !ent->takedamage ) + continue; + + shake = damage * 10 / Distance( origin, ent->r.currentOrigin ); + ent->client->ps.stats[ STAT_SHAKE ] += (int) shake; + } + return hitClient; } -- cgit