From 30ebb97430b170390443aa89a278673d9dadeab4 Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Mon, 24 Nov 2025 17:57:19 -0800 Subject: [PATCH] KRAmbientZone now using KRNodeProperty --- kraken/nodes/KRAmbientZone.cpp | 40 ++++++++++------------------------ kraken/nodes/KRAmbientZone.h | 10 ++++----- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/kraken/nodes/KRAmbientZone.cpp b/kraken/nodes/KRAmbientZone.cpp index 4269df6..d7f0d1c 100755 --- a/kraken/nodes/KRAmbientZone.cpp +++ b/kraken/nodes/KRAmbientZone.cpp @@ -47,9 +47,6 @@ void KRAmbientZone::InitNodeInfo(KrNodeInfo* nodeInfo) KRAmbientZone::KRAmbientZone(KRScene& scene, std::string name) : KRNode(scene, name) - , m_ambient_gain(1.f) - , m_gradient_distance(0.25f) - { } @@ -65,46 +62,31 @@ std::string KRAmbientZone::getElementName() tinyxml2::XMLElement* KRAmbientZone::saveXML(tinyxml2::XMLNode* parent) { tinyxml2::XMLElement* e = KRNode::saveXML(parent); - e->SetAttribute("zone", m_zone.c_str()); - e->SetAttribute("sample", m_ambient.getName().c_str()); - e->SetAttribute("gain", m_ambient_gain); - e->SetAttribute("gradient", m_gradient_distance); + m_zone.save(e); + m_ambient.save(e); + m_ambient_gain.save(e); + m_gradient_distance.save(e); return e; } void KRAmbientZone::loadXML(tinyxml2::XMLElement* e) { KRNode::loadXML(e); - - m_zone = e->Attribute("zone"); - - m_gradient_distance = 0.25f; - if (e->QueryFloatAttribute("gradient", &m_gradient_distance) != tinyxml2::XML_SUCCESS) { - m_gradient_distance = 0.25f; - } - - const char* szAudioSampleName = e->Attribute("sample"); - if (szAudioSampleName == nullptr) { - m_ambient.clear(); - } else { - m_ambient.set(szAudioSampleName); - } - - m_ambient_gain = 1.0f; - if (e->QueryFloatAttribute("gain", &m_ambient_gain) != tinyxml2::XML_SUCCESS) { - m_ambient_gain = 1.0f; - } + m_zone.load(e); + m_gradient_distance.load(e); + m_ambient.load(e); + m_ambient_gain.load(e); } KRAudioSample* KRAmbientZone::getAmbient() { - m_ambient.bind(&getContext()); - return m_ambient.get(); + m_ambient.val.bind(&getContext()); + return m_ambient.val.get(); } void KRAmbientZone::setAmbient(const std::string& ambient) { - m_ambient.set(ambient); + m_ambient.val.set(ambient); } float KRAmbientZone::getAmbientGain() diff --git a/kraken/nodes/KRAmbientZone.h b/kraken/nodes/KRAmbientZone.h index b7206e2..b49383c 100755 --- a/kraken/nodes/KRAmbientZone.h +++ b/kraken/nodes/KRAmbientZone.h @@ -68,10 +68,8 @@ public: float getContainment(const hydra::Vector3& pos); private: - std::string m_zone; - - float m_gradient_distance; - - KRAudioSampleBinding m_ambient; - float m_ambient_gain; + KRNODE_PROPERTY(std::string, m_zone, "", "zone"); + KRNODE_PROPERTY(float, m_gradient_distance, 0.25f, "gradient"); + KRNODE_PROPERTY(float, m_ambient_gain, 1.f, "gain"); + KRNODE_PROPERTY(KRAudioSampleBinding, m_ambient, nullptr, "sample"); };