summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/bg_pmove.c2
-rw-r--r--src/game/g_cmds.c5
-rw-r--r--src/game/g_weapon.c5
3 files changed, 8 insertions, 4 deletions
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index 4f48592f..b28366be 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -2683,7 +2683,7 @@ static void PM_Weapon( void )
pm->ps->pm_flags &= ~PMF_USE_ITEM_HELD;
//something external thinks a weapon change is necessary
- if( pm->ps->pm_flags & PMF_WEAPON_SWITCH )
+ if( pm->ps->weapon != pm->cmd.weapon && pm->ps->pm_flags & PMF_WEAPON_SWITCH )
{
pm->ps->pm_flags &= ~PMF_WEAPON_SWITCH;
PM_BeginWeaponChange( pm->cmd.weapon );
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index abea0146..5199bd66 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -1518,8 +1518,9 @@ static void G_GiveClientMaxAmmo( gentity_t *ent, qboolean buyingEnergyAmmo )
quan, clips, maxClips );
//force a weapon change
- ent->client->ps.pm_flags |= PMF_WEAPON_SWITCH;
- trap_SendServerCommand( ent-g_entities, va( "weaponswitch %d", ent->client->ps.weapon ) );
+ //FIXME: needs to work even if weapon is the same
+ //ent->client->ps.pm_flags |= PMF_WEAPON_SWITCH;
+ //trap_SendServerCommand( ent-g_entities, va( "weaponswitch %d", ent->client->ps.weapon ) );
}
}
}
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index 132bc83d..3518bb9c 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -813,7 +813,10 @@ void CheckGrabAttack( gentity_t *ent )
}
traceEnt->client->ps.stats[ STAT_STATE ] |= SS_GRABBED;
- traceEnt->client->lastGrabTime = level.time;
+
+ //if getting damaged, don't reset the grab time
+ if( ( ent->client->lastDamageTime + ALIEN_REGEN_DAMAGE_TIME ) < level.time )
+ traceEnt->client->lastGrabTime = level.time;
}
else if( traceEnt->s.eType == ET_BUILDABLE &&
traceEnt->s.modelindex == BA_H_MGTURRET )