From 26d7d62d040090af322cd6ab286f2186275f5502 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Fri, 12 Jun 2020 12:08:55 +0200 Subject: [PATCH] trigger_camera: Add trigger capabilities (to be in spec) and aim towards the moveto entity. Still missing a few bits but we're getting there soon. Need more test maps. --- src/gs-entbase/server/trigger_camera.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/gs-entbase/server/trigger_camera.cpp b/src/gs-entbase/server/trigger_camera.cpp index 6c2bd62b..db20a027 100644 --- a/src/gs-entbase/server/trigger_camera.cpp +++ b/src/gs-entbase/server/trigger_camera.cpp @@ -25,6 +25,8 @@ Causes the activators first-person camera to switch to the view of this entity. class trigger_camera:CBaseTrigger { + string m_strMoveTo; + float m_flDelay; float m_flWait; void(void) trigger_camera; @@ -34,15 +36,21 @@ class trigger_camera:CBaseTrigger void trigger_camera::Trigger(void) { - if (m_strTarget) { - entity e = find(world, CBaseTrigger::m_strTargetName, m_strTarget); + if (m_flDelay > 0) { + CBaseTrigger::UseTargets_Delay(m_flDelay); + } else { + CBaseTrigger::UseTargets(); + } + + if (m_strMoveTo) { + entity e = find(world, CBaseTrigger::m_strTargetName, m_strMoveTo); if (e) { angles = vectoangles(e.origin - origin); - //angles[0] *= -1; } } Client_TriggerCamera(eActivator, origin, angles, m_flWait); + //eActivator.view2 = this; dprint(sprintf("^2trigger_camera::^3Trigger^7: Camera at %v, %v, for %f sec/s requested\n", origin, angles, m_flWait)); @@ -53,9 +61,15 @@ trigger_camera::trigger_camera(void) { for (int i = 1; i < (tokenize(__fullspawndata) - 1); i += 2) { switch (argv(i)) { + case "delay": + m_flDelay = stof(argv(i+1)); + break; case "wait": m_flWait = stof(argv(i+1)); break; + case "moveto": + m_strMoveTo = argv(i+1); + break; default: break; }