From 369faa60cfe128c9b74fc8198f3d2f7839c0e762 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sun, 15 Sep 2019 23:56:02 +0200 Subject: [PATCH] Opposing Force: Tweak reload timers to avoid the hold-down-primary bug. --- src/shared/gearbox/w_m249.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/shared/gearbox/w_m249.c b/src/shared/gearbox/w_m249.c index 6e4a3fb8..3ee2299c 100644 --- a/src/shared/gearbox/w_m249.c +++ b/src/shared/gearbox/w_m249.c @@ -61,7 +61,7 @@ void w_m249_updateammo(player pl) { #ifdef SSQC - Weapons_UpdateAmmo(pl, pl.m249_mag, pl.ammo_556, __NULL__); + Weapons_UpdateAmmo(pl, pl.m249_mag, pl.ammo_556, -1); #endif } @@ -86,11 +86,9 @@ w_m249_deathmsg(void) void w_m249_draw(void) { +#ifdef CSQC Weapons_SetModel("models/v_saw.mdl"); Weapons_ViewAnimation(M249_DRAW); -#ifdef SSQC - player pl = (player)self; - Weapons_UpdateAmmo(pl, pl.m249_mag, pl.ammo_556, __NULL__); #endif } @@ -131,11 +129,15 @@ w_m249_primary(void) { player pl = (player)self; - if (pl.w_attack_next > 0.0) { + if (pl.a_ammo3 == 1) { w_m249_release(); return; } + if (pl.w_attack_next > 0.0) { + return; + } + /* ammo check */ #ifdef CSQC if (pl.a_ammo1 <= 0) { @@ -148,7 +150,7 @@ w_m249_primary(void) #endif Weapons_ViewAnimation(M249_FIRE); - pl.velocity += v_forward * -30; + pl.velocity += v_forward * -64; /* actual firing */ #ifdef CSQC @@ -171,7 +173,6 @@ w_m249_primary(void) } pl.m249_mag--; - Weapons_UpdateAmmo(pl, pl.m249_mag, pl.ammo_556, __NULL__); #endif pl.w_attack_next = 0.075f; @@ -182,7 +183,8 @@ void w_m249_reload(void) { player pl = (player)self; - if (pl.w_attack_next) { + + if (pl.w_attack_next > 0.0) { w_m249_release(); return; } @@ -207,8 +209,7 @@ w_m249_reload(void) #endif pl.a_ammo3 = 1; - pl.w_attack_next = 10.0f; - pl.w_idle_next = 1.5f; + pl.w_attack_next = pl.w_idle_next = 1.5f; } void