From 4dcaefe368dd859fd15f25c31b6b59575607b823 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Wed, 27 Sep 2023 13:03:03 -0700 Subject: [PATCH] trigger_changelevel: extra checks for funky behaviour --- src/gs-entbase/server/trigger_changelevel.qc | 22 ++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/gs-entbase/server/trigger_changelevel.qc b/src/gs-entbase/server/trigger_changelevel.qc index ce1ab108..266bbf73 100644 --- a/src/gs-entbase/server/trigger_changelevel.qc +++ b/src/gs-entbase/server/trigger_changelevel.qc @@ -51,22 +51,32 @@ enumflags void ChangeTarget_Activate(void) { + string ctarg = cvar_string("_bsp_changetarget"); NSTimer foo = __NULL__; static void Finalize(void) { string ctarg = cvar_string("_bsp_changetarget"); - if (ctarg) { - for (entity a = world; (a = find(a, ::targetname, ctarg));) { - NSEntity t = (NSEntity)a; - if (t.Trigger) - t.Trigger(self, TRIG_TOGGLE); - } + if not (ctarg) + return; + + if (ctarg == "") + return; + + for (entity a = world; (a = find(a, ::targetname, ctarg));) { + NSEntity t = (NSEntity)a; + + if (t.Trigger) + t.Trigger(self, TRIG_TOGGLE); } + readcmd("set _bsp_changetarget \"\"\n"); readcmd("set _bsp_changedelay \"\"\n"); } + if not (ctarg) + return; + foo.TemporaryTimer(self, Finalize, cvar("_bsp_changedelay"), false); }