Fix #2728 "Spectating a bot displays a "no ammo for shotgun slap but primary can...
authorterencehill <piuntn@gmail.com>
Sun, 31 Jul 2022 21:11:37 +0000 (23:11 +0200)
committerterencehill <piuntn@gmail.com>
Sun, 31 Jul 2022 21:22:48 +0000 (23:22 +0200)
Fixed by removing an ugly hack that reported insufficient ammo for melee attack and changing shotgun behaviour to no longer automatically turn attack1 into attack2 (melee) if bots are out of ammo

qcsrc/common/weapons/weapon/shotgun.qc

index bc1ce89479b4390b67dcf02ed87fd0468a02a3bf..523de5d71b3f40dd3320d5a1b6e04e37ac4f712a 100644 (file)
@@ -253,7 +253,7 @@ METHOD(Shotgun, wr_think, void(entity thiswep, entity actor, .entity weaponentit
     }
     if(actor.(weaponentity).clip_load >= 0) // we are not currently reloading
     if(WEP_CVAR(shotgun, secondary) == 1)
-    if(((fire & 1) && GetResource(actor, thiswep.ammo_type) <= 0 && !(actor.items & IT_UNLIMITED_AMMO)) || (fire & 2))
+    if(((fire & 1) && !IS_BOT_CLIENT(actor) && GetResource(actor, thiswep.ammo_type) <= 0 && !(actor.items & IT_UNLIMITED_AMMO)) || (fire & 2))
     if(weapon_prepareattack(thiswep, actor, weaponentity, true, WEP_CVAR_SEC(shotgun, refire)))
     {
         // attempt forcing playback of the anim by switching to another anim (that we never play) here...
@@ -268,9 +268,6 @@ METHOD(Shotgun, wr_checkammo1, bool(entity thiswep, entity actor, .entity weapon
 }
 METHOD(Shotgun, wr_checkammo2, bool(entity thiswep, entity actor, .entity weaponentity))
 {
-    if(IS_BOT_CLIENT(actor))
-    if(vdist(actor.origin - actor.enemy.origin, >, WEP_CVAR_SEC(shotgun, melee_range)))
-        return false; // bots cannot use secondary out of range (fixes constant melee when out of ammo)
     switch(WEP_CVAR(shotgun, secondary))
     {
         case 1: return true; // melee does not use ammo