mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-13 15:16:28 +00:00
Fixed various bugs and crashes and moved more functionality into the world editor
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user