// ItemStorage.cpp: implementation of the CItemStorage class. // ////////////////////////////////////////////////////////////////////// #include "ItemStorage.h" #include CItemStorage g_ItemStorage; ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CItemStorage::CItemStorage() { } CItemStorage::~CItemStorage() { DeleteItemTexture(); DeleteSkillTexture(); } void CItemStorage::DeleteItemTexture(void) { vector::iterator it; TexStorage *lpTexture; for(it = m_lstItemTexture.begin(); it != m_lstItemTexture.end();) { if((*it)->lpTexture) { delete (*it)->lpTexture; (*it)->lpTexture = NULL; } lpTexture = (*it); it = m_lstItemTexture.erase(it); delete lpTexture; } m_lstItemTexture.clear(); } void CItemStorage::DeleteSkillTexture(void) { vector::iterator it; TexStorage *lpTexture; for(it = m_lstSkillTexture.begin(); it != m_lstSkillTexture.end();) { if((*it)->lpTexture) { delete (*it)->lpTexture; (*it)->lpTexture = NULL; } lpTexture = (*it); it = m_lstSkillTexture.erase(it); delete lpTexture; } m_lstSkillTexture.clear(); } CTexture *CItemStorage::GetItemTexture(const char *strTextureFile) { char strName[MAX_PATH]; sprintf(strName, "\\item\\%s.dds", strTextureFile); vector::iterator it; for(it = m_lstItemTexture.begin(); it != m_lstItemTexture.end(); it++) { if(!strcmp((*it)->strFileName, strName)) { return (*it)->lpTexture; } } TexStorage *lpStorage = new TexStorage; CTexture::SetPath(INTERFACETEXTUREPATH); lpStorage->lpTexture = new CTexture; lpStorage->lpTexture->Load(strName); strcpy(lpStorage->strFileName, strName); m_lstItemTexture.push_back(lpStorage); return lpStorage->lpTexture; } CTexture *CItemStorage::GetSkillTexture(const char *strTextureFile) { char strName[MAX_PATH]; sprintf(strName, "\\item\\%s", strTextureFile); vector::iterator it; for(it = m_lstSkillTexture.begin(); it != m_lstSkillTexture.end(); it++) { if(!strcmp((*it)->strFileName, strName)) { return (*it)->lpTexture; } } TexStorage *lpStorage = new TexStorage; CTexture::SetPath(INTERFACETEXTUREPATH); lpStorage->lpTexture = new CTexture; lpStorage->lpTexture->Load(strName); strcpy(lpStorage->strFileName, strName); m_lstSkillTexture.push_back(lpStorage); return lpStorage->lpTexture; }