From 3a37d21257c884a8bcca081e3a119291a715b183 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Tue, 7 Feb 2023 17:35:47 -0800 Subject: [PATCH] item_pickup: Call respawn item sound in a separate method for sanity's sake --- src/server/items.h | 13 +++++++------ src/server/items.qc | 16 ++++++++-------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/server/items.h b/src/server/items.h index 82c5259..9a34809 100644 --- a/src/server/items.h +++ b/src/server/items.h @@ -21,11 +21,12 @@ class item_pickup:NSRenderableEntity int m_iClip; int m_iWasDropped; int id; - void(void) item_pickup; + void item_pickup(void); - virtual void(void) Spawned; - virtual void(entity) Touch; - virtual void(int i) SetItem; - virtual void(void) Respawn; - virtual void(int) SetFloating; + virtual void Spawned(void); + virtual void Touch(entity); + virtual void SetItem(int i); + virtual void Respawn(void); + virtual void SetFloating(int); + virtual void PickupRespawn(void); }; diff --git a/src/server/items.qc b/src/server/items.qc index 2c27bc4..dfaf163 100644 --- a/src/server/items.qc +++ b/src/server/items.qc @@ -34,7 +34,7 @@ void item_pickup::Touch(entity eToucher) Destroy(); } else { Disappear(); - ScheduleThink(Respawn, 30.0f); + ScheduleThink(PickupRespawn, 30.0f); } } @@ -51,6 +51,13 @@ void item_pickup::SetFloating(int i) m_bFloating = rint(bound(0, m_bFloating, 1)); } +void +item_pickup::PickupRespawn(void) +{ + Respawn(); + Sound_Play(this, CHAN_ITEM, "item.respawn"); +} + void item_pickup::Respawn(void) { SetSolid(SOLID_TRIGGER); @@ -65,13 +72,6 @@ void item_pickup::Respawn(void) SetSize([-16,-16,0], [16,16,16]); ReleaseThink(); - if (!m_iWasDropped && cvar("sv_playerslots") > 1) { - if (!real_owner && time > 30.0f) - Sound_Play(this, CHAN_ITEM, "item.respawn"); - - m_iClip = -1; - } - if (!m_bFloating) { DropToFloor(); SetMovetype(MOVETYPE_TOSS);