From cdae3389f5362c6b9bfa5575ebac7ad589f9b30b Mon Sep 17 00:00:00 2001 From: Marcel Schindler Date: Tue, 23 Jul 2019 14:33:46 +0000 Subject: [PATCH] !XI Integrating CL 2005576 from ce_main -> ce_main_stabilization !B (Sandbox / CryPlugins) (CE-20906) Added functionality to set ERF_SELECTED render object flag to designer objects Copied from Perforce Change: 2005625 --- Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.cpp | 16 ++++++++++++++++ Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.h | 2 ++ .../Plugins/CryDesigner/Objects/DesignerObject.cpp | 6 ++++++ .../Sandbox/Plugins/CryDesigner/Objects/DesignerObject.h | 2 ++ 4 files changed, 26 insertions(+) diff --git a/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.cpp b/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.cpp index 8d742a31b..1587f2448 100644 --- a/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.cpp +++ b/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.cpp @@ -263,6 +263,22 @@ int ModelCompiler::GetStaticObjFlags() return m_pStatObj[0]->GetFlags(); } +void ModelCompiler::SetSelected(bool bSelect) +{ + for (int shelfID = 0; shelfID < cShelfMax; ++shelfID) + { + if (m_pRenderNode[shelfID]) + { + if (bSelect) + m_RenderFlags |= ERF_SELECTED; + else + m_RenderFlags &= ~ERF_SELECTED; + + m_pRenderNode[shelfID]->SetRndFlags(ERF_SELECTED, bSelect); + } + } +} + void ModelCompiler::DeleteAllRenderNodes() { for (int shelfID = 0; shelfID < cShelfMax; ++shelfID) diff --git a/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.h b/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.h index e4398879a..a782252a2 100644 --- a/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.h +++ b/Code/Sandbox/Plugins/CryDesigner/Core/ModelCompiler.h @@ -43,6 +43,8 @@ public: void SetStaticObjFlags(int nStaticObjFlag); int GetStaticObjFlags(); + void SetSelected(bool bSelect); + void AddFlags(int nFlags) { m_nCompilerFlag |= nFlags; } void RemoveFlags(int nFlags) { m_nCompilerFlag &= (~nFlags); } bool CheckFlags(int nFlags) const { return (m_nCompilerFlag & nFlags) ? true : false; } diff --git a/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.cpp b/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.cpp index 4dbe60efb..0dd3ebf78 100644 --- a/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.cpp +++ b/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.cpp @@ -502,6 +502,12 @@ void DesignerObject::SetMaterial(const string& materialName) UpdateEngineNode(); } +void DesignerObject::SetSelected(bool bSelect) +{ + CBaseObject::SetSelected(bSelect); + GetCompiler()->SetSelected(bSelect); +} + string DesignerObject::GetMaterialName() const { if (!m_materialNameOverride.IsEmpty()) diff --git a/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.h b/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.h index 630d8b5fc..db1602afa 100644 --- a/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.h +++ b/Code/Sandbox/Plugins/CryDesigner/Objects/DesignerObject.h @@ -62,6 +62,8 @@ public: void SetMaterial(IEditorMaterial* mtl) override; void SetMaterial(const string& materialName) override; + virtual void SetSelected(bool bSelect) override; + string GetMaterialName() const override; void SetMaterialLayersMask(uint32 nLayersMask); -- 2.11.4.GIT