diff options
Diffstat (limited to 'mwe/resource-manager/resource_manager.h')
-rw-r--r-- | mwe/resource-manager/resource_manager.h | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/mwe/resource-manager/resource_manager.h b/mwe/resource-manager/resource_manager.h index c155559..446bedb 100644 --- a/mwe/resource-manager/resource_manager.h +++ b/mwe/resource-manager/resource_manager.h @@ -1,26 +1,19 @@ #pragma once - - #include <SDL_render.h> #include <unordered_map> - -#include "resource.h" #include "constants.h" +#include "resource.h" #include "resource_fabricator.h" using namespace crepe; -class ResourceManager{ - +class ResourceManager { private: - - static ResourceManager* m_single_resource_manager; - std::unordered_map<Constants::FILE_PATH, Resource*> m_resources; - - + static ResourceManager * m_single_resource_manager; + std::unordered_map<Constants::FILE_PATH, Resource *> m_resources; protected: ResourceManager(); @@ -29,30 +22,25 @@ protected: public: ResourceManager(const ResourceManager &) = delete; ResourceManager(ResourceManager &&) = delete; - ResourceManager &operator=(const ResourceManager &) = delete; - ResourceManager &operator=(ResourceManager &&) = delete; - - static ResourceManager* get_instance(); - + ResourceManager & operator=(const ResourceManager &) = delete; + ResourceManager & operator=(ResourceManager &&) = delete; + static ResourceManager * get_instance(); public: - template<typename T> - T* Load(const Constants::FILE_PATH& file_path){ - + template <typename T> + T * Load(const Constants::FILE_PATH & file_path) { + if (m_resources.find(file_path) != m_resources.end()) { - return static_cast<T*>(m_resources[file_path]); + return static_cast<T *>(m_resources[file_path]); } - Resource* resource = ResourceFactory::create_resource<T>(file_path); + Resource * resource = ResourceFactory::create_resource<T>(file_path); if (resource) { m_resources[file_path] = std::move(resource); } - return static_cast<T*>(m_resources[file_path]); + return static_cast<T *>(m_resources[file_path]); } - void Unload(const Constants::FILE_PATH& file_path); - - - + void Unload(const Constants::FILE_PATH & file_path); }; |