40 lines
807 B
C++
40 lines
807 B
C++
#include <scene.hpp>
|
|
|
|
SceneManager::SceneManager(){
|
|
current_scene = new MenuScene();
|
|
}
|
|
|
|
SceneManager::~SceneManager(){
|
|
delete current_scene;
|
|
}
|
|
|
|
void SceneManager::process_scene_switch(){
|
|
if (!g_Engine.pendingSwitch) return;
|
|
|
|
delete current_scene;
|
|
|
|
switch(g_Engine.nextScene){
|
|
case SceneType::MENU:
|
|
current_scene = new MenuScene();
|
|
break;
|
|
case SceneType::GAMEPLAY:
|
|
current_scene = new GamePlayScene();
|
|
break;
|
|
}
|
|
g_Engine.pendingSwitch = false;
|
|
}
|
|
|
|
void SceneManager::update(float dt){
|
|
if (current_scene){
|
|
current_scene->update(dt);
|
|
}
|
|
}
|
|
|
|
void SceneManager::render(){
|
|
current_scene->render();
|
|
}
|
|
|
|
void SceneManager::ui(){
|
|
current_scene->ui();
|
|
}
|