CSEngine
Loading...
Searching...
No Matches
SceneMgr.cpp
1#include "SceneMgr.h"
2#include "MemoryMgr.h"
3#include "EngineCore.h"
4#include "Render/RenderMgr.h"
5
6using namespace CSE;
7
8SceneMgr::SceneMgr() = default;
9
10SceneMgr::~SceneMgr() = default;
11
12void SceneMgr::Init() {
13 if (m_scene == nullptr) return;
14
15 m_scene->Init();
16}
17
18void SceneMgr::Update(float elapsedTime) {
19 if (m_scene == nullptr)
20 return;
21
22 m_scene->Tick(elapsedTime);
23}
24
25void SceneMgr::SetLegacyScene(Scene* scene) {
26 if (m_scene != nullptr) {
27 m_scene->SetUndestroyable(false);
28 //MemoryMgr::getInstance()->ReleaseObject(m_scene);
29 CORE->GetCore(MemoryMgr)->ExterminateObjects();
30 }
31
32 m_scene = scene;
33
34 if (m_scene != nullptr)
35 m_scene->Init();
36}
37
38void SceneMgr::SetScene(Scene* scene) {
39 if (m_scene != nullptr) {
40 m_scene->SetUndestroyable(false);
41 CORE->GetCore(MemoryMgr)->ReleaseObject(m_scene);
42 m_scene = nullptr;
43 }
44
45 m_scene = scene;
46
47 if (m_scene != nullptr)
48 m_scene->Init();
49}
50
51Scene* SceneMgr::GetCurrentScene() const {
52 return m_scene;
53}