#include "CKSceneObject.hpp" #include "../CKStateChunk.hpp" #include "../CKContext.hpp" #include "../MgrImpls/CKObjectManager.hpp" #include "CKBeObject.hpp" #include "CKGroup.hpp" namespace LibCmo::CK2::ObjImpls { CKBeObject::CKBeObject(CKContext* ctx, CK_ID ckid, CKSTRING name) : CKSceneObject(ctx, ckid, name), m_Groups() {} CKBeObject::~CKBeObject() { // remove self from all group //for (size_t i = 0; i < m_Groups.size(); ++i) { // if (m_Groups[i]) { // CKGroup* group = static_cast(m_Context->GetObjectManager()->GetGroupByGlobalIndex(static_cast(i))); // group->RemoveObject(this); // } //} } bool CKBeObject::Save(CKStateChunk* chunk, CKFileVisitor* file, CKDWORD flags) { bool suc = CKSceneObject::Save(chunk, file, flags); if (!suc) return false; return true; } bool CKBeObject::Load(CKStateChunk* chunk, CKFileVisitor* file) { bool suc = CKSceneObject::Load(chunk, file); if (!suc) return false; return true; } bool CKBeObject::IsInGroup(CKGroup* group) { if (group == nullptr) return false; CKDWORD idx = group->GetGroupIndex(); if (idx >= m_Groups.size()) return false; return m_Groups[idx]; } void CKBeObject::ExplicitSetGroup(CKDWORD pos, bool val) { if (pos >= m_Groups.size()) m_Groups.resize(pos + 1); m_Groups[pos] = val; } }