Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
83
Engine/Zalla3D Base Class/TextureContainer.cpp
Normal file
83
Engine/Zalla3D Base Class/TextureContainer.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
// TextureContainer.cpp: implementation of the CTextureContainer class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "TextureContainer.h"
|
||||
#include "GMMemory.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
CTextureContainer::CTextureContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CTextureContainer::~CTextureContainer()
|
||||
{
|
||||
DeleteAllTexture();
|
||||
}
|
||||
|
||||
void CTextureContainer::AddTexture(const char *strTextName, const LPDIRECT3DBASETEXTURE8 pddTexture)
|
||||
{
|
||||
TextureNode* pAdd = new TextureNode(strTextName,pddTexture);
|
||||
|
||||
m_TextureList.push_back(pAdd);
|
||||
}
|
||||
|
||||
int CTextureContainer::FindTexture(char *strTextName)
|
||||
{
|
||||
for(int i=0;i<(int)m_TextureList.size();i++)
|
||||
{
|
||||
if(strcmp(m_TextureList[i]->m_strTextureName,strTextName)==0)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
LPDIRECT3DBASETEXTURE8 CTextureContainer::AddUsedTexture(int nUsed)
|
||||
{
|
||||
m_TextureList[nUsed]->m_nUsed++;
|
||||
return m_TextureList[nUsed]->m_pddsTexture;
|
||||
}
|
||||
|
||||
void CTextureContainer::DeleteTexture(char *strTextName)
|
||||
{
|
||||
std::vector<TextureNode*>::iterator obj = m_TextureList.begin();
|
||||
|
||||
for(int i=0;i<(int)m_TextureList.size();i++,obj++)
|
||||
{
|
||||
if(strcmp(m_TextureList[i]->m_strTextureName,strTextName)==0)
|
||||
{
|
||||
if(--m_TextureList[i]->m_nUsed==0)
|
||||
{
|
||||
TextureNode *temp=m_TextureList[i];
|
||||
|
||||
if(temp != NULL)
|
||||
{
|
||||
delete temp;
|
||||
temp = NULL;
|
||||
}
|
||||
|
||||
m_TextureList.erase(obj);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CTextureContainer::DeleteAllTexture()
|
||||
{
|
||||
for(int i=0;i<(int)m_TextureList.size();i++)
|
||||
{
|
||||
if(m_TextureList[i] != NULL)
|
||||
{
|
||||
delete m_TextureList[i];
|
||||
m_TextureList[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
m_TextureList.clear();
|
||||
}
|
||||
Reference in New Issue
Block a user