#include 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(); }