summaryrefslogtreecommitdiff
path: root/src/game/g_cmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/g_cmds.c')
-rw-r--r--src/game/g_cmds.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index 4b691a01..35047f86 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -1970,10 +1970,15 @@ void Cmd_Destroy_f( gentity_t *ent )
if( G_TimeTilSuddenDeath( ) <= 0 )
return;
- if( !g_markDeconstruct.integer && ent->client->ps.stats[ STAT_MISC ] > 0 )
+ if( !g_markDeconstruct.integer ||
+ ( ent->client->pers.teamSelection == TEAM_HUMANS &&
+ !G_FindPower( traceEnt ) ) )
{
- G_AddEvent( ent, EV_BUILD_DELAY, ent->client->ps.clientNum );
- return;
+ if( ent->client->ps.stats[ STAT_MISC ] > 0 )
+ {
+ G_AddEvent( ent, EV_BUILD_DELAY, ent->client->ps.clientNum );
+ return;
+ }
}
if( traceEnt->health > 0 )
@@ -1983,7 +1988,9 @@ void Cmd_Destroy_f( gentity_t *ent )
G_Damage( traceEnt, ent, ent, forward, tr.endpos,
traceEnt->health, 0, MOD_SUICIDE );
}
- else if( g_markDeconstruct.integer )
+ else if( g_markDeconstruct.integer &&
+ ( ent->client->pers.teamSelection != TEAM_HUMANS ||
+ G_FindPower( traceEnt ) ) )
{
traceEnt->deconstruct = qtrue; // Mark buildable for deconstruction
traceEnt->deconstructTime = level.time;