diff options
Diffstat (limited to 'src/crepe/api/LoopManager.hpp')
| -rw-r--r-- | src/crepe/api/LoopManager.hpp | 48 | 
1 files changed, 0 insertions, 48 deletions
diff --git a/src/crepe/api/LoopManager.hpp b/src/crepe/api/LoopManager.hpp deleted file mode 100644 index 266758a..0000000 --- a/src/crepe/api/LoopManager.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#pragma once - -#include <cassert> -#include <format> -#include <memory> - -#include "../system/System.h" - -#include "LoopManager.h" - -namespace crepe { - -template <class T> -void LoopManager::add_scene() { -	this->scene_manager.add_scene<T>(); -} - -template <class T> -T & LoopManager::get_system() { -	using namespace std; -	static_assert(is_base_of<System, T>::value, -				  "get_system must recieve a derivative class of System"); - -	const type_info & type = typeid(T); -	if (!this->systems.contains(type)) -		throw runtime_error(format("LoopManager: {} is not initialized", type.name())); - -	System * system = this->systems.at(type).get(); -	T * concrete_system = dynamic_cast<T *>(system); -	assert(concrete_system != nullptr); - -	return *concrete_system; -} - -template <class T> -void LoopManager::load_system() { -	using namespace std; -	static_assert(is_base_of<System, T>::value, -				  "load_system must recieve a derivative class of System"); - -	const type_info & type = typeid(T); -	if (this->systems.contains(type)) -		throw runtime_error(format("LoopManager: {} is already initialized", type.name())); -	System * system = new T(this->mediator); -	this->systems[type] = unique_ptr<System>(system); -} - -} // namespace crepe  |