]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix forced reloading with weird ammo configs
authordrjaska <drjaska83@gmail.com>
Thu, 5 Sep 2024 17:15:25 +0000 (20:15 +0300)
committerdrjaska <drjaska83@gmail.com>
Fri, 6 Sep 2024 07:40:04 +0000 (10:40 +0300)
qcsrc/common/weapons/weapon/machinegun.qc

index db979d61ad4fa62cadb41d8dbccdf08874e11a73..2178a5198d615972eea694311738c8be8646a412 100644 (file)
@@ -173,7 +173,7 @@ METHOD(MachineGun, wr_think, void(entity thiswep, entity actor, .entity weaponen
 {
        // forced reload - wait until the bulletcounter is 0 so a burst loop can finish
        if (WEP_CVAR(WEP_MACHINEGUN, reload_ammo)
-       && actor.(weaponentity).clip_load < min(max(WEP_CVAR(WEP_MACHINEGUN, sustained_ammo), WEP_CVAR(WEP_MACHINEGUN, first_ammo)), WEP_CVAR(WEP_MACHINEGUN, burst_ammo))
+       && actor.(weaponentity).clip_load < min(min(WEP_CVAR(WEP_MACHINEGUN, sustained_ammo), WEP_CVAR(WEP_MACHINEGUN, first_ammo)), WEP_CVAR(WEP_MACHINEGUN, burst_ammo))
        && actor.(weaponentity).misc_bulletcounter >= 0)
        {
                thiswep.wr_reload(thiswep, actor, weaponentity);
@@ -247,7 +247,7 @@ METHOD(MachineGun, wr_think, void(entity thiswep, entity actor, .entity weaponen
 METHOD(MachineGun, wr_checkammo1, bool(entity thiswep, entity actor, .entity weaponentity))
 {
        float ammo_amount;
-       if(WEP_CVAR(WEP_MACHINEGUN, mode) == 1)
+       if(WEP_CVAR(WEP_MACHINEGUN, mode) == 1 || actor.(weaponentity).misc_bulletcounter != 1)
                ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR(WEP_MACHINEGUN, sustained_ammo);
        else
                ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR(WEP_MACHINEGUN, first_ammo);
@@ -288,7 +288,7 @@ METHOD(MachineGun, wr_reload, void(entity thiswep, entity actor, .entity weapone
 {
        if(actor.(weaponentity).misc_bulletcounter < 0)
                return;
-       W_Reload(actor, weaponentity, min(max(WEP_CVAR(WEP_MACHINEGUN, sustained_ammo), WEP_CVAR(WEP_MACHINEGUN, first_ammo)), WEP_CVAR(WEP_MACHINEGUN, burst_ammo)), SND_RELOAD);
+       W_Reload(actor, weaponentity, min(min(WEP_CVAR(WEP_MACHINEGUN, sustained_ammo), WEP_CVAR(WEP_MACHINEGUN, first_ammo)), WEP_CVAR(WEP_MACHINEGUN, burst_ammo)), SND_RELOAD);
 }
 
 METHOD(MachineGun, wr_suicidemessage, Notification(entity thiswep))