Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
101 lines
2.4 KiB
C++
101 lines
2.4 KiB
C++
// ItemStorage.cpp: implementation of the CItemStorage class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "ItemStorage.h"
|
|
#include <BaseDataDefine.h>
|
|
|
|
CItemStorage g_ItemStorage;
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CItemStorage::CItemStorage()
|
|
{
|
|
}
|
|
|
|
CItemStorage::~CItemStorage()
|
|
{
|
|
DeleteItemTexture();
|
|
DeleteSkillTexture();
|
|
}
|
|
|
|
void CItemStorage::DeleteItemTexture(void)
|
|
{
|
|
vector<TexStorage *>::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<TexStorage *>::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<TexStorage *>::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<TexStorage *>::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;
|
|
}
|