CScene: Make use of in-class initializers

This commit is contained in:
Lioncash 2020-06-19 03:44:19 -04:00
parent ffbe857c2c
commit 0059558efc
2 changed files with 19 additions and 25 deletions

View File

@ -13,13 +13,7 @@
#include <string> #include <string>
CScene::CScene() CScene::CScene()
: mSplitTerrain(true) : mpSceneRootNode(new CRootNode(this, UINT32_MAX, nullptr))
, mRanPostLoad(false)
, mNumNodes(0)
, mpSceneRootNode(new CRootNode(this, -1, nullptr))
, mpArea(nullptr)
, mpWorld(nullptr)
, mpAreaRootNode(nullptr)
{ {
} }
@ -34,7 +28,7 @@ bool CScene::IsNodeIDUsed(uint32 ID) const
return (mNodeMap.find(ID) != mNodeMap.end()); return (mNodeMap.find(ID) != mNodeMap.end());
} }
uint32 CScene::CreateNodeID(uint32 SuggestedID /*= -1*/) const uint32 CScene::CreateNodeID(uint32 SuggestedID) const
{ {
if (SuggestedID != -1) if (SuggestedID != -1)
{ {
@ -52,7 +46,7 @@ uint32 CScene::CreateNodeID(uint32 SuggestedID /*= -1*/) const
return ID; return ID;
} }
CModelNode* CScene::CreateModelNode(CModel *pModel, uint32 NodeID /*= -1*/) CModelNode* CScene::CreateModelNode(CModel *pModel, uint32 NodeID)
{ {
if (pModel == nullptr) return nullptr; if (pModel == nullptr) return nullptr;
@ -64,7 +58,7 @@ CModelNode* CScene::CreateModelNode(CModel *pModel, uint32 NodeID /*= -1*/)
return pNode; return pNode;
} }
CStaticNode* CScene::CreateStaticNode(CStaticModel *pModel, uint32 NodeID /*= -1*/) CStaticNode* CScene::CreateStaticNode(CStaticModel *pModel, uint32 NodeID)
{ {
if (pModel == nullptr) return nullptr; if (pModel == nullptr) return nullptr;
@ -76,7 +70,7 @@ CStaticNode* CScene::CreateStaticNode(CStaticModel *pModel, uint32 NodeID /*= -1
return pNode; return pNode;
} }
CCollisionNode* CScene::CreateCollisionNode(CCollisionMeshGroup *pMesh, uint32 NodeID /*= -1*/) CCollisionNode* CScene::CreateCollisionNode(CCollisionMeshGroup *pMesh, uint32 NodeID)
{ {
if (pMesh == nullptr) return nullptr; if (pMesh == nullptr) return nullptr;
@ -88,7 +82,7 @@ CCollisionNode* CScene::CreateCollisionNode(CCollisionMeshGroup *pMesh, uint32 N
return pNode; return pNode;
} }
CScriptNode* CScene::CreateScriptNode(CScriptObject *pObj, uint32 NodeID /*= -1*/) CScriptNode* CScene::CreateScriptNode(CScriptObject *pObj, uint32 NodeID)
{ {
if (pObj == nullptr) return nullptr; if (pObj == nullptr) return nullptr;
@ -114,7 +108,7 @@ CScriptNode* CScene::CreateScriptNode(CScriptObject *pObj, uint32 NodeID /*= -1*
return pNode; return pNode;
} }
CLightNode* CScene::CreateLightNode(CLight *pLight, uint32 NodeID /*= -1*/) CLightNode* CScene::CreateLightNode(CLight *pLight, uint32 NodeID)
{ {
if (pLight == nullptr) return nullptr; if (pLight == nullptr) return nullptr;
@ -180,7 +174,7 @@ void CScene::SetActiveArea(CWorld *pWorld, CGameArea *pArea)
// Create nodes for new area // Create nodes for new area
mpWorld = pWorld; mpWorld = pWorld;
mpArea = pArea; mpArea = pArea;
mpAreaRootNode = new CRootNode(this, -1, mpSceneRootNode); mpAreaRootNode = new CRootNode(this, UINT32_MAX, mpSceneRootNode);
// Create static nodes // Create static nodes
size_t Count = mpArea->NumStaticModels(); size_t Count = mpArea->NumStaticModels();

View File

@ -25,16 +25,16 @@ class CScene
{ {
friend class CSceneIterator; friend class CSceneIterator;
bool mSplitTerrain; bool mSplitTerrain = true;
bool mRanPostLoad; bool mRanPostLoad = false;
uint32 mNumNodes; uint32 mNumNodes = 0;
CRootNode *mpSceneRootNode; CRootNode *mpSceneRootNode = nullptr;
std::unordered_map<ENodeType, std::vector<CSceneNode*>> mNodes; std::unordered_map<ENodeType, std::vector<CSceneNode*>> mNodes;
TResPtr<CGameArea> mpArea; TResPtr<CGameArea> mpArea;
TResPtr<CWorld> mpWorld; TResPtr<CWorld> mpWorld;
CRootNode *mpAreaRootNode; CRootNode *mpAreaRootNode = nullptr;
// Environment // Environment
std::vector<CAreaAttributes> mAreaAttributesObjects; std::vector<CAreaAttributes> mAreaAttributesObjects;
@ -49,13 +49,13 @@ public:
// Scene Management // Scene Management
bool IsNodeIDUsed(uint32 ID) const; bool IsNodeIDUsed(uint32 ID) const;
uint32 CreateNodeID(uint32 SuggestedID = -1) const; uint32 CreateNodeID(uint32 SuggestedID = UINT32_MAX) const;
CModelNode* CreateModelNode(CModel *pModel, uint32 NodeID = -1); CModelNode* CreateModelNode(CModel *pModel, uint32 NodeID = UINT32_MAX);
CStaticNode* CreateStaticNode(CStaticModel *pModel, uint32 NodeID = -1); CStaticNode* CreateStaticNode(CStaticModel *pModel, uint32 NodeID = UINT32_MAX);
CCollisionNode* CreateCollisionNode(CCollisionMeshGroup *pMesh, uint32 NodeID = -1); CCollisionNode* CreateCollisionNode(CCollisionMeshGroup *pMesh, uint32 NodeID = UINT32_MAX);
CScriptNode* CreateScriptNode(CScriptObject *pObj, uint32 NodeID = -1); CScriptNode* CreateScriptNode(CScriptObject *pObj, uint32 NodeID = UINT32_MAX);
CLightNode* CreateLightNode(CLight *pLight, uint32 NodeID = -1); CLightNode* CreateLightNode(CLight *pLight, uint32 NodeID = UINT32_MAX);
void DeleteNode(CSceneNode *pNode); void DeleteNode(CSceneNode *pNode);
void SetActiveArea(CWorld *pWorld, CGameArea *pArea); void SetActiveArea(CWorld *pWorld, CGameArea *pArea);
void PostLoad(); void PostLoad();