diff options
| author | /dev/humancontroller <devhc@example.com> | 2017-04-13 11:30:00 +0000 | 
|---|---|---|
| committer | /dev/humancontroller <devhc@example.com> | 2017-04-15 17:24:19 +0200 | 
| commit | 6310e03613071ce9313b1559b89be81a253caa03 (patch) | |
| tree | c9c6d87ad6ee458ce9aa74a104cf618a938cc4b0 | |
| parent | 7a457137d2f859c91c2b3d52a6c677427b6a95de (diff) | |
allow aliens to attack any solid surface
after a box trance against BODY contents, a nearby SOLID line trace will override the target that is hit; this is important for aliens to be able to push attack-to-activate buttons
| -rw-r--r-- | src/game/g_weapon.c | 18 | 
1 files changed, 8 insertions, 10 deletions
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 82bad26..2cb91d5 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -176,19 +176,17 @@ static void G_WideTrace( trace_t *tr, gentity_t *ent, float range, float width,    // Trace against entities    trap_Trace( tr, muzzle, mins, maxs, end, ent->s.number, CONTENTS_BODY );    if( tr->entityNum != ENTITYNUM_NONE ) -  {      *target = &g_entities[ tr->entityNum ]; -    // Set range to the trace length plus the width, so that the end of the -    // LOS trace is close to the exterior of the target's bounding box -    range = Distance( muzzle, tr->endpos ) + width; -    VectorMA( muzzle, range, forward, end ); +  // Set range to the trace length plus the width, so that the end of the +  // LOS trace is close to the exterior of the target's bounding box +  range = Distance( muzzle, tr->endpos ) + width; +  VectorMA( muzzle, range, forward, end ); -    // Trace for line of sight against the world -    trap_Trace( tr, muzzle, NULL, NULL, end, 0, CONTENTS_SOLID ); -    if( tr->fraction < 1.0f ) -      *target = NULL; -  } +  // Trace for line of sight against the world +  trap_Trace( tr, muzzle, NULL, NULL, end, ent->s.number, CONTENTS_SOLID ); +  if( tr->entityNum != ENTITYNUM_NONE ) +    *target = &g_entities[ tr->entityNum ];    G_UnlaggedOff( );  }  | 
