diff options
-rw-r--r-- | src/cgame/cg_draw.c | 2 | ||||
-rw-r--r-- | src/cgame/cg_event.c | 5 | ||||
-rw-r--r-- | src/cgame/cg_players.c | 4 | ||||
-rw-r--r-- | src/cgame/cg_scanner.c | 2 | ||||
-rw-r--r-- | src/game/g_active.c | 7 | ||||
-rw-r--r-- | src/game/g_combat.c | 6 |
6 files changed, 17 insertions, 9 deletions
diff --git a/src/cgame/cg_draw.c b/src/cgame/cg_draw.c index 4782c00..6328f42 100644 --- a/src/cgame/cg_draw.c +++ b/src/cgame/cg_draw.c @@ -4043,7 +4043,7 @@ static void CG_DrawHealthBars( void ) cent = cg_entities + cg.snap->entities[ i ].number; es = ¢->currentState; - if( es->eFlags & ( EF_DEAD | EF_NODRAW ) ) + if( es->eFlags & ( EF_DEAD | EF_NODRAW | EF_WARPING ) ) continue; switch( es->eType ) diff --git a/src/cgame/cg_event.c b/src/cgame/cg_event.c index c1d4ee8..4ce475e 100644 --- a/src/cgame/cg_event.c +++ b/src/cgame/cg_event.c @@ -1177,8 +1177,9 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) break; case EV_BLEED: - if( cg_bleedSelfWounds.integer || - cent->currentState.number != cg.snap->ps.clientNum ) + if( !warpingEnemyWraith && + ( cg_bleedSelfWounds.integer || + cent->currentState.number != cg.snap->ps.clientNum ) ) { particleSystem_t *ps = NULL; if( ci->team == TEAM_ALIENS ) diff --git a/src/cgame/cg_players.c b/src/cgame/cg_players.c index 8da8757..c3afab3 100644 --- a/src/cgame/cg_players.c +++ b/src/cgame/cg_players.c @@ -1898,8 +1898,8 @@ void CG_Player( centity_t *cent ) return; if( ( es->eFlags & EF_WARPING ) && - ( cgs.clientinfo[ es->number ].team != cg.snap->ps.stats[ STAT_TEAM ] || - cg.snap->ps.stats[ STAT_TEAM ] == TEAM_NONE ) ) + ( cgs.clientinfo[ es->number ].team != cg.snap->ps.stats[ STAT_TEAM ] && + cg.snap->ps.stats[ STAT_TEAM ] != TEAM_NONE ) ) { return; } diff --git a/src/cgame/cg_scanner.c b/src/cgame/cg_scanner.c index 5e134cd..3699551 100644 --- a/src/cgame/cg_scanner.c +++ b/src/cgame/cg_scanner.c @@ -58,7 +58,7 @@ void CG_UpdateEntityPositions( void ) { cent = &cg_entities[ cg.snap->entities[ i ].number ]; - if( cent->currentState.eFlags & EF_NODRAW ) + if( cent->currentState.eFlags & EF_WARPING ) { continue; } diff --git a/src/game/g_active.c b/src/game/g_active.c index cac7e7f..e23b0c5 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -1471,6 +1471,7 @@ void ClientThink_real( gentity_t *ent ) int msec; usercmd_t *ucmd; int i; + float modifier = 1.0f; client = ent->client; @@ -1596,7 +1597,6 @@ void ClientThink_real( gentity_t *ent ) int i, num; int count, interval; vec3_t range, mins, maxs; - float modifier = 1.0f; VectorSet( range, REGEN_BOOST_RANGE, REGEN_BOOST_RANGE, REGEN_BOOST_RANGE ); @@ -1670,9 +1670,10 @@ void ClientThink_real( gentity_t *ent ) } if( client->ps.weapon == WP_ALEVEL1 && - client->lastWarpTime + LEVEL1_WARP_REGEN_DELAY <= level.time ) + client->lastWarpTime + LEVEL1_WARP_REGEN_DELAY <= level.time && + G_Overmind( ) ) { - client->ps.stats[ STAT_MISC ] += msec * LEVEL1_WARP_REGEN_RATE; + client->ps.stats[ STAT_MISC ] += msec * LEVEL1_WARP_REGEN_RATE * modifier; if( client->ps.stats[ STAT_MISC ] > LEVEL1_WARP_TIME ) { diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 50eca22..bfe0de9 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -1575,6 +1575,9 @@ qboolean G_SelectiveRadiusDamage( vec3_t origin, gentity_t *attacker, float dama if( !ent->takedamage ) continue; + if( ent->s.eFlags & EF_WARPING ) + continue; + if( ent->flags & FL_NOTARGET ) continue; @@ -1692,6 +1695,9 @@ qboolean G_RadiusDamage( vec3_t origin, gentity_t *attacker, float damage, if( ent == ignore ) continue; + if( ent->s.eFlags & EF_WARPING ) + continue; + if( !ent->takedamage ) continue; |