#include "SceneManager.h" #include "Scene.h" #include "GameObject.h" bool dae::SceneManager::SetScene(const std::string& name, bool restart) { for (const auto& pScene : m_pScenes) { if (pScene->GetName() == name) { if (restart) pScene->Restart(); m_ActiveSceneId = pScene->GetId(); return true; } } return false; } void dae::SceneManager::Update(float deltaTime) { for(auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { pScene->Update(deltaTime); break; } //pScene->Update(deltaTime); } } void dae::SceneManager::FixedUpdate(float deltaTime) { for (auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { pScene->FixedUpdate(deltaTime); break; } //pScene->FixedUpdate(deltaTime); } } void dae::SceneManager::LateUpdate(float deltaTime) { for (auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { pScene->LateUpdate(deltaTime); break; } } } void dae::SceneManager::HandleDeletions() { for (auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { pScene->DeleteMarkedGameObjects(); break; } } } void dae::SceneManager::HandleOwnershipChanges() { for (auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { pScene->HandleChangeParents(); break; } } } void dae::SceneManager::Render() { for (auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { pScene->Render(); break; } //pScene->Render(); } } dae::Scene* dae::SceneManager::GetActiveScene() { for (const auto& pScene : m_pScenes) { if (pScene->GetId() == m_ActiveSceneId) { return pScene.get(); } } return nullptr; //std::count << "Error: Couldn't return scene!"; } dae::Scene& dae::SceneManager::CreateScene(const std::string& name) { const auto& pScene = std::shared_ptr(new Scene(name)); //auto pRootGameObject = new GameObject(); //pScene->Add(pRootGameObject); m_pScenes.push_back(pScene); return *pScene; }