From aa1c4b93ac04b207ba6961fead56082646ebfe09 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Tue, 3 Mar 2020 22:48:30 +0100 Subject: [PATCH] prop_rope: Add "segments" key to change the defaults from 16 --- src/gs-entbase/client/prop_rope.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gs-entbase/client/prop_rope.cpp b/src/gs-entbase/client/prop_rope.cpp index 93ad66bd..5ca5a073 100644 --- a/src/gs-entbase/client/prop_rope.cpp +++ b/src/gs-entbase/client/prop_rope.cpp @@ -25,6 +25,7 @@ class prop_rope:CBaseEntity string m_strShader; float m_flSag; float m_flSwingFactor; + int m_iSegments; void() prop_rope; virtual float() predraw; @@ -95,12 +96,14 @@ float prop_rope::predraw(void) float segments; float sc; - if (checkpvs(getproperty(VF_ORIGIN), this) == FALSE) { - return PREDRAW_NEXT; - } - entity x = find(world, CBaseEntity::targetname, target); + if (checkpvs(getproperty(VF_ORIGIN), this) == FALSE) { + if (checkpvs(getproperty(VF_ORIGIN), x) == FALSE) { + return PREDRAW_NEXT; + } + } + if (!x) { print("prop_rope without target.\n"); remove(this); @@ -115,7 +118,7 @@ float prop_rope::predraw(void) R_EndPolygon(); } - segments = 16; + segments = m_iSegments; travel = vlen(origin - x.origin) / segments; @@ -182,6 +185,9 @@ void prop_rope::SpawnKey(string strField, string strKey) case "sag": m_flSag = stof(strKey); break; + case "segments": + m_iSegments = stoi(strKey); + break; case "shader": m_strShader = strKey; precache_pic(m_strShader); @@ -198,6 +204,7 @@ void prop_rope::prop_rope(void) { m_flSwingFactor = random(); m_flSag = 15.0f; + m_iSegments = 16; m_strShader = "textures/props/wire_default"; drawmask = MASK_ENGINE; Init();