From 1bd552685d74b456c2019ea0cd247d8602b6907f Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Thu, 20 Aug 2020 19:14:26 +0200 Subject: [PATCH] env_spark: Added support for Trigger() state control --- src/gs-entbase/server/env_spark.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gs-entbase/server/env_spark.cpp b/src/gs-entbase/server/env_spark.cpp index 1c433c1d..18d9e790 100644 --- a/src/gs-entbase/server/env_spark.cpp +++ b/src/gs-entbase/server/env_spark.cpp @@ -68,16 +68,24 @@ void env_spark::TimedSpark(void) nextthink = time + (random() * m_flMaxDelay); } -/* TODO: Implement state */ void env_spark::Trigger(entity act, int state) { if (spawnflags & EVSPARK_TOGGLE) { - if (think != __NULL__) { + switch (state) { + case TRIG_OFF: think = __NULL__; nextthink = 0; - } else { + break; + case TRIG_ON: think = TimedSpark; nextthink = time + (random() * m_flMaxDelay); + break; + default: + if (think != __NULL__) { + Trigger(act, TRIG_OFF); + } else { + Trigger(act, TRIG_ON); + } } } else { CreateSpark(); @@ -91,8 +99,7 @@ void env_spark::Respawn(void) } if (spawnflags & EVSPARK_STARTON) { - think = TimedSpark; - nextthink = time + (random() * m_flMaxDelay); + Trigger(this, TRIG_ON); } }