trigger_changelevel: extra checks for funky behaviour

This commit is contained in:
Marco Cawthorne 2023-09-27 13:03:03 -07:00
parent cd8825c02a
commit 4dcaefe368
Signed by: eukara
GPG key ID: CE2032F0A2882A22

View file

@ -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);
}