From 86cfec6e6dac1b290184efc3866494058fd6f786 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Mon, 4 Mar 2024 18:42:48 -0800 Subject: [PATCH] NSTrigger: ensure killtarget is transferred on delayed triggers. Also double check a target is specified before we attempt to search for entities to trigger. --- src/shared/NSTrigger.qc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/shared/NSTrigger.qc b/src/shared/NSTrigger.qc index b9f970aa..90465163 100644 --- a/src/shared/NSTrigger.qc +++ b/src/shared/NSTrigger.qc @@ -101,16 +101,24 @@ NSTrigger::UseTargets(entity act, int state, float triggerDelay) if (triggerDelay > 0.0f) { EntLog("Scheduling trigger of %S in %f seconds.", target, triggerDelay); NSTrigger eTimer = spawn(NSTrigger); + eTimer.netname = sprintf("%s_%d_target_trigger", classname, num_for_edict(this)); eTimer.owner = act; eTimer.think = Entities_UseTargets_Think; eTimer.target = target; eTimer.nextthink = time + triggerDelay; eTimer.health = state; /* ugly */ + + if (m_strKillTarget) { + EntLog("Will kill %S before that happens.", m_strKillTarget); + } + eTimer.m_strKillTarget = m_strKillTarget; + eTimer.m_strMessage = m_strMessage; } else { if (m_strMessage) { env_message_single(act, m_strMessage); } + if (HasTriggerTarget() == true) for (entity f = world; (f = find(f, ::targetname, target));) { NSTrigger trigger = (NSTrigger)f;