aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/manager/SystemManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/manager/SystemManager.h')
-rw-r--r--src/crepe/manager/SystemManager.h13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/crepe/manager/SystemManager.h b/src/crepe/manager/SystemManager.h
index 7b862a3..614d90c 100644
--- a/src/crepe/manager/SystemManager.h
+++ b/src/crepe/manager/SystemManager.h
@@ -26,14 +26,14 @@ public:
*
* Updates the game state based on the elapsed time since the last frame.
*/
- void frame_update() noexcept;
+ void frame_update();
/**
* \brief Fixed update executed at a fixed rate.
*
* This function updates physics and game logic based on LoopTimer's fixed_delta_time.
*/
- void fixed_update() noexcept;
+ void fixed_update();
private:
/**
@@ -43,20 +43,13 @@ private:
* constructor of \c SystemManager using SystemManager::load_system.
*/
std::unordered_map<std::type_index, std::unique_ptr<System>> systems;
- //! Internal ordered system list entry
- struct SystemEntry {
- //! System instance reference
- System & system;
- //! System name
- std::string name;
- };
/**
* \brief Collection of System instances
*
* This map holds System instances indexed by the system's class typeid. It is filled in the
* constructor of \c SystemManager using SystemManager::load_system.
*/
- std::vector<SystemEntry> system_order;
+ std::vector<std::reference_wrapper<System>> system_order;
/**
* \brief Initialize a system
* \tparam T System type (must be derivative of \c System)