From 775758c347aa874a9da1f5b67060bd308b69e349 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sun, 18 Aug 2019 23:44:13 -0700 Subject: [PATCH] func_healthcharger is now audible with 3 soothing sounds --- .../gs-entbase/server/func_healthcharger.cpp | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/Source/gs-entbase/server/func_healthcharger.cpp b/Source/gs-entbase/server/func_healthcharger.cpp index b827aefe..ffc73e59 100644 --- a/Source/gs-entbase/server/func_healthcharger.cpp +++ b/Source/gs-entbase/server/func_healthcharger.cpp @@ -8,25 +8,66 @@ class func_healthcharger:CBaseTrigger { + entity m_eUser; float m_flDelay; + float m_flCheck; void() func_healthcharger; + virtual void() customphysics; virtual void() PlayerUse; }; void func_healthcharger::PlayerUse(void) { eActivator.gflags |= GF_USE_RELEASED; + + /* First come first serve */ + if (m_eUser && eActivator != m_eUser) { + return; + } + + /* First time */ + if (m_eUser == world) { + sound(this, CHAN_VOICE, "items/medshot4.wav", 1.0, ATTN_NORM); + } + if (m_flDelay > time) { return; } - eActivator.health = bound(0, eActivator.health += 1, 100); + if (eActivator.health >= 100) { + eActivator.gflags &= ~GF_USE_RELEASED; + sound(this, CHAN_VOICE, "items/medshotno1.wav", 1.0, ATTN_NORM); + } else { + if (m_eUser == world) { + sound(this, CHAN_ITEM, "items/medcharge4.wav", 1.0, ATTN_NORM); + } + eActivator.health = bound(0, eActivator.health += 1, 100); + } + + m_eUser = eActivator; m_flDelay = time + 0.1f; + m_flCheck = time + 0.25f; +} + +void func_healthcharger::customphysics(void) +{ + if (m_flCheck > time) { + return; + } + if (m_eUser) { + sound(this, CHAN_ITEM, "misc/null.wav", 1.0, ATTN_NORM); + m_eUser = world; + } } void func_healthcharger::func_healthcharger(void) { + + precache_sound("items/medshot4.wav"); + precache_sound("items/medshotno1.wav"); + precache_sound("items/medcharge4.wav"); + solid = SOLID_BSP; movetype = MOVETYPE_PUSH; setorigin(this, origin);