Fixed various bugs and crashes and moved more functionality into the world editor

This commit is contained in:
Aruki
2017-02-13 13:44:02 -07:00
parent 00a48e69f8
commit c5de322ac7
13 changed files with 105 additions and 148 deletions

View File

@@ -172,12 +172,13 @@ void CScene::DeleteNode(CSceneNode *pNode)
mNumNodes--;
}
void CScene::SetActiveArea(CGameArea *pArea)
void CScene::SetActiveArea(CWorld *pWorld, CGameArea *pArea)
{
// Clear existing area
ClearScene();
// Create nodes for new area
mpWorld = pWorld;
mpArea = pArea;
mpAreaRootNode = new CRootNode(this, -1, mpSceneRootNode);
@@ -248,11 +249,6 @@ void CScene::SetActiveArea(CGameArea *pArea)
Log::Write( TString::FromInt32(CSceneNode::NumNodes(), 0, 10) + " nodes" );
}
void CScene::SetActiveWorld(CWorld* pWorld)
{
mpWorld = pWorld;
}
void CScene::PostLoad()
{
mpSceneRootNode->OnLoadFinished();
@@ -265,6 +261,7 @@ void CScene::ClearScene()
{
mpAreaRootNode->Unparent();
delete mpAreaRootNode;
mpAreaRootNode = nullptr;
}
mNodes.clear();
@@ -274,6 +271,7 @@ void CScene::ClearScene()
mNumNodes = 0;
mpArea = nullptr;
mpWorld = nullptr;
}
void CScene::AddSceneToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo)

View File

@@ -56,8 +56,7 @@ public:
CScriptNode* CreateScriptNode(CScriptObject *pObj, u32 NodeID = -1);
CLightNode* CreateLightNode(CLight *pLight, u32 NodeID = -1);
void DeleteNode(CSceneNode *pNode);
void SetActiveArea(CGameArea *pArea);
void SetActiveWorld(CWorld *pWorld);
void SetActiveArea(CWorld *pWorld, CGameArea *pArea);
void PostLoad();
void ClearScene();
void AddSceneToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo);