Files
Leviathan/Client/Game/game/DB/SDefaultTextureIconResourceDB.cpp
2026-06-01 12:46:52 +02:00

98 lines
2.4 KiB
C++

#include "stdafx.h"
#include "SDefaultTextureIconResourceDB.h"
#include <Windows.h>
#include "KTypes.h"
#include <kfile/KStream.h>
#include <kfile/KFileManager.h>
#include <toolkit/XStringUtil.h>
#include "SkillBaseFile.h"
#include "ContentStruct.h"
#include "SStringDB.h"
#include "SDebug_Util.h"
SDefaultTextureIconResourceDB* SDefaultTextureIconResourceDB::m_pThis = NULL;
SDefaultTextureIconResourceDB & GetDefaultTextureIconResourceDB()
{
if( NULL == SDefaultTextureIconResourceDB::m_pThis )
SDefaultTextureIconResourceDB::m_pThis = new SDefaultTextureIconResourceDB;
return *SDefaultTextureIconResourceDB::m_pThis;
// static SDefaultTextureIconResourceDB DefaultTextureIconResourceDB;
// return DefaultTextureIconResourceDB;
}
SDefaultTextureIconResourceDB::SDefaultTextureIconResourceDB()
{
Init();
}
SDefaultTextureIconResourceDB::~SDefaultTextureIconResourceDB()
{
Destroy();
}
void SDefaultTextureIconResourceDB::Init()
{
Load();
}
void SDefaultTextureIconResourceDB::Destroy()
{
/*DefaultTextureIconResourceforGame* pDefaultTextureIconResource = NULL;
bool res;
res = m_hashDefaultTextureIconResource.get_first_value( pDefaultTextureIconResource );
while ( res )
{
if ( pDefaultTextureIconResource != NULL )
{
delete pDefaultTextureIconResource;
}
res = m_hashDefaultTextureIconResource.get_next_value( pDefaultTextureIconResource );
}
m_hashDefaultTextureIconResource.clear();*/
SAFE_DELETE_VECTOR( m_vIconList );
}
void SDefaultTextureIconResourceDB::Load()
{
KStream * pRes = KFileManager::Instance().CreateStreamFromResource( "db_DefaultTextureIconResource.rdb" );
if( !pRes ) return;
GAME_DB db_hdr;
pRes->Read( &db_hdr, sizeof(db_hdr) );
for( int i(0); db_hdr.nCount>i; i++ )
{
DefaultTextureIconResourceforGame* pItem = new DefaultTextureIconResourceforGame;
DefaultTextureIconResource defItem;
memset( &defItem, 0, sizeof(defItem) );
pRes->Read( &defItem, sizeof(defItem) );
pItem->SetData( &defItem );
//DefaultTextureIconResourceforGame* pFindItem = NULL;
//if( m_hashDefaultTextureIconResource.lookup( pItem->icon_id, pFindItem ) == false )
{
m_vIconList.push_back(pItem);
}
}
KFileManager::Instance().DeleteStream( pRes );
}
const char* SDefaultTextureIconResourceDB::GetIconFileName(int nIndex)
{
for( unsigned int i(0); m_vIconList.size()>i; i++ )
{
if( m_vIconList[i]->icon_id == nIndex )
return m_vIconList[i]->icon_file;
}
return "NotFoundFile";
}