summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/g_active.c2
-rw-r--r--src/game/g_cmds.c8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/game/g_active.c b/src/game/g_active.c
index 1f0d121..42a2773 100644
--- a/src/game/g_active.c
+++ b/src/game/g_active.c
@@ -1751,7 +1751,7 @@ void ClientThink_real( gentity_t *ent )
client->ps.pm_type = PM_GRABBED;
else if( BG_InventoryContainsUpgrade( UP_JETPACK, client->ps.stats ) && BG_UpgradeIsActive( UP_JETPACK, client->ps.stats ) )
client->ps.pm_type = PM_JETPACK;
- else if( client->ps.weapon == WP_ALEVEL5 )
+ else if( client->ps.weapon == WP_ALEVEL5 && G_Overmind() )
//hummel fly
client->ps.pm_type = PM_HUMMEL;
else
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index 55a08ee..f75241c 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -1665,7 +1665,7 @@ void Cmd_Class_f( gentity_t *ent )
vec3_t mins, maxs;
int num;
gentity_t *other;
- int oldBoostTime = -1;
+ int oldBoostTime = -1,oldTimeStamp;
vec3_t oldVel;
clientNum = ent->client - level.clients;
@@ -1835,6 +1835,7 @@ void Cmd_Class_f( gentity_t *ent )
if( ent->client->ps.stats[ STAT_STATE ] & SS_BOOSTED )
oldBoostTime = ent->client->boostedTime;
+ oldTimeStamp = ( ent->client->ps.weapon == WP_ALEVEL1 ) ? ent->timestamp : 0;
ClientSpawn( ent, ent, ent->s.pos.trBase, ent->s.apos.trBase );
@@ -1844,6 +1845,11 @@ void Cmd_Class_f( gentity_t *ent )
ent->client->boostedTime = oldBoostTime;
ent->client->ps.stats[ STAT_STATE ] |= SS_BOOSTED;
}
+ if( newClass == PCL_ALIEN_LEVEL1_UPG )
+ {
+ ent->timestamp = oldTimeStamp;
+ ent->client->ps.ammo = 0;
+ }
}
else
G_TriggerMenuArgs( clientNum, MN_A_CANTEVOLVE, newClass );