summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2015-06-26 03:19:59 +0200
committerPaweł Redman <pawel.redman@gmail.com>2015-06-26 03:23:19 +0200
commit1895729b01532be9589d3606c331cc8f9ca9a9e3 (patch)
tree243b3526ea535df824d38fd1a3a4b841e1f63c4a
parent7a9d256ea39e7ed8797801f8184e6ab7f27a21dc (diff)
More bug fixes for Wraith.
-rw-r--r--src/cgame/cg_draw.c2
-rw-r--r--src/cgame/cg_event.c5
-rw-r--r--src/cgame/cg_players.c4
-rw-r--r--src/cgame/cg_scanner.c2
-rw-r--r--src/game/g_active.c7
-rw-r--r--src/game/g_combat.c6
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 = &cent->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;