#include "stdafx.h" #include "STitleDB.h" #include #include #include "KTypes.h" #include #include #include "SDebug_Util.h" #include "SSkillDB.h" #include "STitleMgr.h" STitleDB::STitleDB() { Init(); } STitleDB::~STitleDB() { Destroy(); } void STitleDB::Init() { Load(); } void STitleDB::Destroy() { m_TitleRes.clear(); m_TitleConditionRes.clear(); m_titleTypeConditionRes.clear(); } void STitleDB::Load() { LoadTitleRes(); LoadTitleConRes(); LoadTitleConTypeRes(); } void STitleDB::LoadTitleRes() { KStream * pRes = KFileManager::Instance().CreateStreamFromResource( "db_TitleResource.rdb" ); if( !pRes ) return; GAME_DB db_hdr; TitleResource title; pRes->Read( &db_hdr, sizeof(db_hdr) ); for( int i(0); db_hdr.nCount>i; i++ ) { pRes->Read( &title, sizeof(title) ); m_TitleRes.insert( std::make_pair( title.id, title ) ); } KFileManager::Instance().DeleteStream( pRes ); } void STitleDB::LoadTitleConRes() { KStream * pRes = KFileManager::Instance().CreateStreamFromResource( "db_TitleConditionResource.rdb" ); if( !pRes ) return; GAME_DB db_hdr; TitleConditionResource title; pRes->Read( &db_hdr, sizeof(db_hdr) ); for( int i(0); db_hdr.nCount>i; i++ ) { pRes->Read( &title, sizeof(title) ); m_TitleConditionRes.insert( make_pair(title.id,title ) ); } KFileManager::Instance().DeleteStream( pRes ); } void STitleDB::LoadTitleConTypeRes() { KStream * pRes = KFileManager::Instance().CreateStreamFromResource( "db_TitleConditionTypeResource.rdb" ); if( !pRes ) return; GAME_DB db_hdr; TitleConditionTypeResource title; pRes->Read( &db_hdr, sizeof(db_hdr) ); for( int i(0); db_hdr.nCount>i; i++ ) { pRes->Read( &title, sizeof(title) ); m_titleTypeConditionRes.insert( make_pair( title.id, title) ); } KFileManager::Instance().DeleteStream( pRes ); } STitleDB* STitleDB::m_pThis = NULL; STitleDB & GetTitleDB() { if( NULL == STitleDB::m_pThis ) STitleDB::m_pThis = new STitleDB; return *STitleDB::m_pThis; // static STitleDB TitleDB; // return TitleDB; }