#include "stdafx.h" #include "SDefaultTextureIconResourceDB.h" #include #include "KTypes.h" #include #include #include #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"; }