[Fix] ResourceManager stuff.

This commit is contained in:
Tamir Atias 2012-04-12 02:04:56 +03:00
parent 0cad1e8128
commit c32aeda9ee
3 changed files with 21 additions and 9 deletions

View File

@ -90,7 +90,9 @@
<ClInclude Include="..\..\src\glx\glext.h" />
<ClInclude Include="..\..\src\glx\wglext.h" />
<ClInclude Include="..\..\src\IO\Input.h" />
<ClInclude Include="..\..\src\Level\Layer.h" />
<ClInclude Include="..\..\src\Level\Level.h" />
<ClInclude Include="..\..\src\Level\MapTile.h" />
<ClInclude Include="..\..\src\Main\Game.h" />
<ClInclude Include="..\..\src\Main\GLWindow.h" />
<ClInclude Include="..\..\src\Math\FPS.h" />
@ -123,6 +125,7 @@
<ClCompile Include="..\..\src\Collision\AABB.cpp" />
<ClCompile Include="..\..\src\Global\Globals.cpp" />
<ClCompile Include="..\..\src\IO\Input.cpp" />
<ClCompile Include="..\..\src\Level\Layer.cpp" />
<ClCompile Include="..\..\src\Level\Level.cpp" />
<ClCompile Include="..\..\src\Main\Game.cpp" />
<ClCompile Include="..\..\src\Main\GLWindow.cpp" />

View File

@ -132,15 +132,21 @@
<ClInclude Include="..\..\src\TMXParser\TmxObject.h">
<Filter>TMXParser</Filter>
</ClInclude>
<ClInclude Include="..\..\src\System\ResourceManager.h">
<Filter>System</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Level\Level.h">
<Filter>Level</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Collision\AABB.h">
<Filter>Collision</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Level\Layer.h">
<Filter>Level</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Level\MapTile.h">
<Filter>Level</Filter>
</ClInclude>
<ClInclude Include="..\..\src\System\ResourceManager.h">
<Filter>System</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\Main\main.cpp">
@ -221,5 +227,8 @@
<ClCompile Include="..\..\src\Collision\AABB.cpp">
<Filter>Collision</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Level\Layer.cpp">
<Filter>Level</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -18,10 +18,10 @@ class ResourceManager
public:
ResourceManager() { }
typedef std::map<std::string, T*> ResourceMap;
typedef std::map<std::string, typename T*> ResourceMap;
T* Load(const std::string& name) {
ResourceMap::iterator i = m_resources.find(name);
ResourceManager<T>::ResourceMap::iterator i = m_resources.find(name);
if(i == m_resources.end()) {
T* resource = new T();
@ -43,7 +43,7 @@ public:
}
T* Find(const std::string& name) {
ResourceMap::iterator i = m_resources.find(name);
ResourceManager<T>::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) {
ResourceMap::iterator i = m_resources.find(name);
ResourceManager<T>::ResourceMap::iterator i = m_resources.find(name);
if(i == m_resources.end()) {
resource->refs++;
m_resources.insert(std::pair<std::string, T*>(name, resource));
@ -64,7 +64,7 @@ public:
if(name.empty())
return;
ResourceMap::iterator i = m_resources.find(name);
ResourceManager<T>::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) {
ResourceMap::iterator i;
ResourceManager<T>::ResourceMap::iterator i;
for(i = m_resources.begin(); i != m_resources.end(); ++i) {
if(i->second == resource){
resource->refs--;