diff options
Diffstat (limited to 'src/game')
-rw-r--r-- | src/game/g_active.c | 2 | ||||
-rw-r--r-- | src/game/g_cmds.c | 8 |
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 ); |