diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/g_buildable.c | 5 | ||||
-rw-r--r-- | src/game/g_mover.c | 6 | ||||
-rw-r--r-- | src/game/g_weapon.c | 7 | ||||
-rw-r--r-- | src/game/tremulous.h | 4 |
4 files changed, 19 insertions, 3 deletions
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index 54717b3b..17cd1402 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -1702,7 +1702,12 @@ void HMedistat_Think( gentity_t *self ) self->active = qfalse; } else if( self->enemy ) //heal! + { + if( self->enemy->client && self->enemy->client->ps.stats[ STAT_STATE ] & SS_POISONED ) + self->enemy->client->ps.stats[ STAT_STATE ] &= ~SS_POISONED; + self->enemy->health++; + } } } diff --git a/src/game/g_mover.c b/src/game/g_mover.c index 192a46cc..82de7360 100644 --- a/src/game/g_mover.c +++ b/src/game/g_mover.c @@ -790,6 +790,10 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator ) int total; int partial; + // if this is a non-client-usable door return + if( ent->targetname && other && other->client ) + return; + // only the master should be used if( ent->flags & FL_TEAMSLAVE ) { @@ -1448,7 +1452,7 @@ void SP_func_door( gentity_t *ent ) ent->nextthink = level.time + FRAMETIME; - if( ! (ent->flags & FL_TEAMSLAVE ) ) + if( !( ent->flags & FL_TEAMSLAVE ) ) { int health; diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 2ab1abd5..59f513a0 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -793,6 +793,7 @@ void poisonCloud( gentity_t *ent ) vec3_t mins, maxs, dir; int i, num; gentity_t *humanPlayer; + trace_t tr; VectorAdd( ent->client->ps.origin, range, maxs ); VectorSubtract( ent->client->ps.origin, range, mins ); @@ -810,6 +811,12 @@ void poisonCloud( gentity_t *ent ) if( BG_gotItem( UP_BATTLESUIT, humanPlayer->client->ps.stats ) ) continue; + trap_Trace( &tr, muzzle, NULL, NULL, humanPlayer->s.origin, humanPlayer->s.number, MASK_SHOT ); + + //can't see target from here + if( tr.entityNum == ENTITYNUM_WORLD ) + continue; + if( !( humanPlayer->client->ps.stats[ STAT_STATE ] & SS_POISONCLOUDED ) ) { humanPlayer->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED; diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 8f2ffd34..0b30b0e6 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -61,8 +61,8 @@ #define CHIMERA_CLAW_REPEAT 500 #define CHIMERA_CLAW_U_REPEAT 400 #define CHIMERA_AREAZAP_DMG ADM(100) -#define CHIMERA_AREAZAP_RANGE 300.0f -#define CHIMERA_AREAZAP_REPEAT 1500 +#define CHIMERA_AREAZAP_RANGE 200.0f +#define CHIMERA_AREAZAP_REPEAT 3000 #define CHIMERA_WALLJUMP_MAXSPEED 1000.0f #define DRAGOON_CLAW_DMG ADM(100) |