diff options
author | heavydemon21 <nielsstunnebrink1@gmail.com> | 2024-11-21 20:35:09 +0100 |
---|---|---|
committer | heavydemon21 <nielsstunnebrink1@gmail.com> | 2024-11-21 20:35:09 +0100 |
commit | ad0dcad1f11d698abf71bf69fb0927c26298d253 (patch) | |
tree | 3e8a501a84682ca2b6c085a987666c9b777bc1c7 /src/crepe/api/SceneManager.h | |
parent | bdc81e355e5bee5d2a3e29346ba08f7bc55196ca (diff) | |
parent | 115d6f50152dc018073345800ca90b85846ebaa9 (diff) |
Merge branch 'master' into niels/decoupling_pixel_and_pos
Diffstat (limited to 'src/crepe/api/SceneManager.h')
-rw-r--r-- | src/crepe/api/SceneManager.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/crepe/api/SceneManager.h b/src/crepe/api/SceneManager.h index e854794..45ba668 100644 --- a/src/crepe/api/SceneManager.h +++ b/src/crepe/api/SceneManager.h @@ -1,7 +1,6 @@ #pragma once #include <memory> -#include <queue> #include <vector> #include "Scene.h" @@ -10,8 +9,15 @@ namespace crepe { class ComponentManager; +/** + * \brief Manages scenes + * + * This class manages scenes. It can add new scenes and load them. It also manages the current scene + * and the next scene. + */ class SceneManager { public: + //! \param mgr Reference to the ComponentManager SceneManager(ComponentManager & mgr); public: @@ -19,10 +25,9 @@ public: * \brief Add a new concrete scene to the scene manager * * \tparam T Type of concrete scene - * \param name Name of new scene */ template <typename T> - void add_scene(const std::string & name); + void add_scene(); /** * \brief Set the next scene * @@ -35,8 +40,11 @@ public: void load_next_scene(); private: + //! Vector of concrete scenes (added by add_scene()) std::vector<std::unique_ptr<Scene>> scenes; + //! Next scene to load std::string next_scene; + //! Reference to the ComponentManager ComponentManager & component_manager; }; |