#pragma once #include #include #include #include "Singleton.h" namespace dae { class Scene; class SceneManager final : public Singleton { public: Scene& CreateScene(const std::string& name); bool SetScene(const std::string& name, bool restart = false); void Update(float deltaTime); void FixedUpdate(float deltaTime); void LateUpdate(float deltaTime); void HandleDeletions(); void HandleOwnershipChanges(); void Render(); unsigned int GetActiveSceneId() const { return m_ActiveSceneId; } Scene* GetActiveScene(); private: friend class Singleton; SceneManager() = default; std::vector> m_pScenes; unsigned int m_ActiveSceneId{ 0 }; }; }