summaryrefslogtreecommitdiff
path: root/src/game/bg_pmove.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/bg_pmove.c')
-rw-r--r--src/game/bg_pmove.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index 73ee6d9..c54fba0 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -2618,6 +2618,10 @@ static void PM_BeginWeaponChange( int weapon )
if( pm->ps->weapon == WP_LUCIFER_CANNON )
pm->ps->stats[ STAT_MISC ] = 0;
+ // cancel a reload
+ pm->ps->pm_flags &= ~PMF_WEAPON_RELOAD;
+ if( pm->ps->weaponstate == WEAPON_RELOADING )
+ pm->ps->weaponTime = 0;
// force this here to prevent flamer effect from continuing, among other issues
pm->ps->generic1 = WPM_NOTFIRING;
@@ -2836,7 +2840,8 @@ static void PM_Weapon( void )
}
// check for end of clip
- if( ( !ammo || pm->ps->pm_flags & PMF_WEAPON_RELOAD ) && clips )
+ if( !BG_FindInfinteAmmoForWeapon( pm->ps->weapon ) &&
+ ( !ammo || pm->ps->pm_flags & PMF_WEAPON_RELOAD ) && clips )
{
pm->ps->pm_flags &= ~PMF_WEAPON_RELOAD;