summaryrefslogtreecommitdiff
path: root/src/game/g_combat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/g_combat.c')
-rw-r--r--src/game/g_combat.c27
1 files changed, 26 insertions, 1 deletions
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;
}