diff options
| author | mtiusane <mtiusane@users.noreply.github.com> | 2015-02-21 00:41:53 +0200 | 
|---|---|---|
| committer | mtiusane <mtiusane@users.noreply.github.com> | 2015-02-21 00:41:53 +0200 | 
| commit | 8222c5a05274a77b3f4873738565e0ca4bc94295 (patch) | |
| tree | 64998d2f606e6a9d2a004142db9d17a7e9e07789 /src | |
| parent | 7f4a2f5a73b086a42b4c139d16fee7622cbdf6ba (diff) | |
| parent | 84745a87a8c36ab4f87d2514b7fcee6733544504 (diff) | |
Merge pull request #20 from ppetr/rets-vs-acids
Rets vs acids
Diffstat (limited to 'src')
| -rw-r--r-- | src/game/g_buildable.c | 21 | ||||
| -rw-r--r-- | src/game/g_combat.c | 6 | 
2 files changed, 21 insertions, 6 deletions
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index 18a0fae..dbe1f1d 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -1505,7 +1505,9 @@ void AAcidTube_Think( gentity_t *self )        if (enemy->client && enemy->client->notrackEndTime >= level.time)        	continue; -      if( enemy->client && enemy->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) +      if( ( enemy->client && enemy->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) || +          ( enemy->s.eType == ET_BUILDABLE && +            BG_Buildable( enemy->s.modelindex )->team == TEAM_HUMANS ) )        {          // start the attack animation          if( level.time >= self->timestamp + ACIDTUBE_REPEAT_ANIM ) @@ -2891,9 +2893,20 @@ qboolean HMGTurret_CheckTarget( gentity_t *self, gentity_t *target,    trace_t   tr;    vec3_t    dir, end; -  if( !target || target->health <= 0 || !target->client || -      target->client->pers.teamSelection != TEAM_ALIENS ) -    return qfalse; +  if( !target || target->health <= 0 ) +     return qfalse; + +  if( target->client ) +  { +    if( target->client->pers.teamSelection != TEAM_ALIENS ) +      return qfalse; +  } +  else +  { +    if( !( target->s.eType == ET_BUILDABLE && +           BG_Buildable( target->s.modelindex )->team == TEAM_ALIENS ) ) +      return qfalse; +  }    if( target->flags & FL_NOTARGET )      return qfalse; diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 4685439..b0e33e4 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -1571,8 +1571,10 @@ qboolean G_SelectiveRadiusDamage( vec3_t origin, gentity_t *attacker, float dama      points = damage * ( 1.0 - dist / radius ); -    if( CanDamage( ent, origin ) && ent->client && -        ent->client->ps.stats[ STAT_TEAM ] != team ) +    if( CanDamage( ent, origin ) && +        ( ( ent->client && ent->client->ps.stats[ STAT_TEAM ] != team ) || +          ( ent->s.eType == ET_BUILDABLE && +            BG_Buildable( ent->s.modelindex )->team != team ) ) )      {        VectorSubtract( ent->r.currentOrigin, origin, dir );        // push the center of mass higher than the origin so players  | 
