From ece04dda38905be7b2ae15c28f0b6a145cdfb572 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Sun, 10 Jul 2022 08:33:56 -0700 Subject: [PATCH] dispenser: refine touch logic to check for changes, play appropriate sound --- src/server/dispenser.qc | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/server/dispenser.qc b/src/server/dispenser.qc index 06baf98..9c64fcb 100644 --- a/src/server/dispenser.qc +++ b/src/server/dispenser.qc @@ -164,11 +164,27 @@ TFCDispenser::Touch(entity eToucher) player pl = (player)eToucher; - pl.m_iAmmoRockets += GrabRockets(); - pl.m_iAmmoNails += GrabNails(); - pl.m_iAmmoCells += GrabCells(); - pl.m_iAmmoShells += GrabShells(); - pl.armor += GrabArmor(); + int r, n, c, s, a; + int sum = 0; + + r = GrabRockets(); + n = GrabNails(); + c = GrabCells(); + s = GrabShells(); + a = GrabArmor(); + + sum = r + n + c + s + a; + + /* check */ + if (sum <= 0) + return; + + sound(this, CHAN_ITEM, "weapons/scock1.wav", 1.0, ATTN_NORM); + pl.m_iAmmoRockets += r; + pl.m_iAmmoNails += n; + pl.m_iAmmoCells += c; + pl.m_iAmmoShells += s; + pl.armor += a; /* clamp */ if (pl.m_iAmmoRockets > pl.m_iMaxRockets)