From 26d74ff6fc32ffb374c6030b44210f42330ea66f Mon Sep 17 00:00:00 2001
From: D-AIRY <admin@ds-servers.com>
Date: Wed, 15 Apr 2020 22:45:57 +0300
Subject: [PATCH] Show triggers in editor

---
 build/config_editor.cfg                    |  2 +
 build/engine/materials/dev/dev_trigger.mtl | 49 +---------------------
 source/game/BaseTrigger.cpp                | 10 ++++-
 source/game/BaseTrigger.h                  |  2 +
 source/game/GameData.cpp                   |  3 ++
 5 files changed, 18 insertions(+), 48 deletions(-)

diff --git a/build/config_editor.cfg b/build/config_editor.cfg
index 332d7ec93..6a2f85006 100644
--- a/build/config_editor.cfg
+++ b/build/config_editor.cfg
@@ -11,3 +11,5 @@ hud_crosshair 0
 hud_rangefinder 0
 
 cl_mousesense 4.5
+
+dev_show_triggers 1
diff --git a/build/engine/materials/dev/dev_trigger.mtl b/build/engine/materials/dev/dev_trigger.mtl
index bd234aa53..2925bf334 100644
--- a/build/engine/materials/dev/dev_trigger.mtl
+++ b/build/engine/materials/dev/dev_trigger.mtl
@@ -1,49 +1,4 @@
 [dev_trigger]
-type = 0
-is_inlit = 0
-physmaterial = 0
-vs = mtrlgeom_base.vs
-ps = mtrlgeom_base.ps
-alpha_test = 1
-texture = dev_trigger.dds
-mask = 0
-mirco_diff_r = 0
-mirco_diff_g = 0
-mirco_diff_b = 0
-mirco_diff_a = 0
-detail_r = 0
-detail_g = 0
-detail_b = 0
-detail_a = 0
-param_ligth = 0
-refraction = 0
-vs_world = 1
-vs_view = 0
-vs_projection = 0
-vs_worldview = 0
-vs_worldviewprojection = 1
-vs_poscam = 0
-vs_count_timedelta = 0
-vs_winsize = 0
-vs_userdata = 0
-vs_userdata_value_x = 0.000000
-vs_userdata_value_y = 0.000000
-vs_userdata_value_z = 0.000000
-vs_userdata_value_w = 0.000000
-vs_userdata_trans_in_ps = 0
-ps_world = 0
-ps_view = 0
-ps_projection = 0
-ps_worldview = 0
-ps_worldviewprojection = 0
-ps_poscam = 0
-ps_count_timedelta = 0
-ps_winsize = 0
-ps_userdata = 0
-ps_userdata_value_x = 0.000000
-ps_userdata_value_y = 0.000000
-ps_userdata_value_z = 0.000000
-ps_userdata_value_w = 0.000000
-ps_userdata_trans_in_vs = 0
-type_reflect = 0
+shader = Transparent
+tex.txBase = dev_trigger.dds
 
diff --git a/source/game/BaseTrigger.cpp b/source/game/BaseTrigger.cpp
index c70c45e16..6a4bd04f8 100644
--- a/source/game/BaseTrigger.cpp
+++ b/source/game/BaseTrigger.cpp
@@ -51,7 +51,7 @@ void CBaseTrigger::onPostLoad()
 
 	if(m_pModel)
 	{
-		m_pModel->enable(false);
+		//m_pModel->enable(false);
 		//m_pAnimPlayer->setOverrideMaterial("dev_trigger.dds");
 	}
 }
@@ -145,6 +145,14 @@ void CBaseTrigger::onSync()
 {
 	BaseClass::onSync();
 
+	static const bool *dev_show_triggers = GET_PCVAR_BOOL("dev_show_triggers");
+
+	if(m_pModel && *dev_show_triggers != m_isModelEnabled)
+	{
+		m_isModelEnabled = *dev_show_triggers;
+		m_pModel->enable(m_isModelEnabled);
+	}
+
 	if(!m_pGhostObject || !m_bEnabled)
 	{
 		return;
diff --git a/source/game/BaseTrigger.h b/source/game/BaseTrigger.h
index fd281672d..116883366 100644
--- a/source/game/BaseTrigger.h
+++ b/source/game/BaseTrigger.h
@@ -55,6 +55,8 @@ protected:
 
 	btPairCachingGhostObject *m_pGhostObject;
 
+	bool m_isModelEnabled = true;
+
 	void inEnable(inputdata_t * pInputdata);
 	void inDisable(inputdata_t * pInputdata);
 	void inToggle(inputdata_t * pInputdata);
diff --git a/source/game/GameData.cpp b/source/game/GameData.cpp
index b5375ad2f..3eab59e09 100644
--- a/source/game/GameData.cpp
+++ b/source/game/GameData.cpp
@@ -628,6 +628,9 @@ GameData::GameData(HWND hWnd, bool isGame):
 	Core_0RegisterCVarBool("hud_crosshair", true, "Отображать метку прицела");
 	Core_0RegisterCVarBool("hud_rangefinder", true, "Отображать дальномер");
 
+
+	Core_0RegisterCVarBool("dev_show_triggers", false, "Show trigger volumes", FCVAR_CHEAT);
+
 	CCrosshairManager::loadConfig("config/game/crosshairs.cfg");
 
 	m_pPlayer = (CPlayer*)CREATE_ENTITY("player", m_pMgr);
-- 
GitLab