From a3ade0deab9fe53dbaeac8dc32c320d3f4f1ba5a Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Fri, 12 Jun 2020 13:02:14 +0200 Subject: [PATCH] trigger_teleport: respect the 'master' value, support for spawnflags 1 and 2. --- src/gs-entbase/server/trigger_teleport.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gs-entbase/server/trigger_teleport.cpp b/src/gs-entbase/server/trigger_teleport.cpp index af7423cb..65138148 100644 --- a/src/gs-entbase/server/trigger_teleport.cpp +++ b/src/gs-entbase/server/trigger_teleport.cpp @@ -22,6 +22,12 @@ Teleportation volume. Teleports anything it touches to the position of any entity set as the "target". Works best with info_teleport_destination. */ +enumflags +{ + TRIGTELE_MONSTERS, + TRIGTELE_NOCLIENTS +}; + class trigger_teleport:CBaseTrigger { void(void) trigger_teleport; @@ -32,6 +38,13 @@ class trigger_teleport:CBaseTrigger void trigger_teleport::touch(void) { + if (GetMaster() == FALSE) + return; + if (spawnflags & TRIGTELE_NOCLIENTS && other.flags & FL_CLIENT) + return; + if (spawnflags & TRIGTELE_MONSTERS && !(other.flags & FL_MONSTER)) + return; + if (other.health > 0 || other.solid == SOLID_SLIDEBOX) { eActivator = other; entity eTarget = find(world, CBaseTrigger::m_strTargetName, m_strTarget);