From 48e08fa5761417fedf00baa6e5ad254d0f5f3ff3 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Thu, 12 Apr 2012 00:07:56 +0100 Subject: [PATCH] [Fix] Fixed KonoM's resource manager shit. typenames had not been declared. --- src/Main/Game.cpp | 2 +- src/System/ResourceManager.h | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Main/Game.cpp b/src/Main/Game.cpp index 3914195..8b4e012 100644 --- a/src/Main/Game.cpp +++ b/src/Main/Game.cpp @@ -9,7 +9,7 @@ #include "../System/Debug.h" #include "../Sprite/Sprite.h" #include "../Texture/Texture.h" -#include "../Level/Level.h" +//#include "../Level/Level.h" #include "Game.h" Game::Game(void) { diff --git a/src/System/ResourceManager.h b/src/System/ResourceManager.h index 8d0593e..6724613 100644 --- a/src/System/ResourceManager.h +++ b/src/System/ResourceManager.h @@ -5,11 +5,11 @@ class Resource { public: - virtual bool Load(const std::string& filename) = 0; + virtual bool Load(const std::string& filename) = 0; protected: - Resource() : refs(0) {} - int refs; + Resource() : refs(0) {} + int refs; }; template @@ -18,24 +18,24 @@ class ResourceManager public: ResourceManager() { } - typedef std::map ResourceMap; + typedef std::map ResourceMap; T* Load(const std::string& name) { - ResourceManager::ResourceMap::iterator i = m_resources.find(name); + typename ResourceManager::ResourceMap::iterator i = m_resources.find(name); if(i == m_resources.end()) { T* resource = new T(); - - if(!resource->Load(name)) { + + if(!resource->Load(name)) { delete resource; return NULL; - } - + } + resource->refs = 1; - + m_resources.insert(std::pair(name, resource)); return resource; - } + } i->second->refs++; @@ -43,7 +43,7 @@ public: } T* Find(const std::string& name) { - ResourceManager::ResourceMap::iterator i = m_resources.find(name); + typename ResourceManager::ResourceMap::iterator i = m_resources.find(name); if(i != m_resources.end()) { return i->second; } @@ -51,7 +51,7 @@ public: } void Add(const std::string& name, T* resource) { - ResourceManager::ResourceMap::iterator i = m_resources.find(name); + typename ResourceManager::ResourceMap::iterator i = m_resources.find(name); if(i == m_resources.end()) { resource->refs++; m_resources.insert(std::pair(name, resource)); @@ -64,7 +64,7 @@ public: if(name.empty()) return; - ResourceManager::ResourceMap::iterator i = m_resources.find(name); + typename ResourceManager::ResourceMap::iterator i = m_resources.find(name); if(i != m_resources.end()) { T* resource = i->second; @@ -78,7 +78,7 @@ public: } void Destroy(T* resource) { - ResourceManager::ResourceMap::iterator i; + typename ResourceManager::ResourceMap::iterator i; for(i = m_resources.begin(); i != m_resources.end(); ++i) { if(i->second == resource){ resource->refs--;