#include "stdafx.h" #include "SCreatureEnhanceDB.h" #include #include "SkillBaseFile.h" #include SCreatureEnhanceDB* SCreatureEnhanceDB::m_pThis = NULL; SCreatureEnhanceDB& GetCreatureEnhanceDB() { if( NULL == SCreatureEnhanceDB::m_pThis ) SCreatureEnhanceDB::m_pThis = new SCreatureEnhanceDB; return *SCreatureEnhanceDB::m_pThis; // static SCreatureEnhanceDB CreatureEnhanceDB; // return CreatureEnhanceDB; } SCreatureEnhanceDB::SCreatureEnhanceDB() { Init(); } SCreatureEnhanceDB::~SCreatureEnhanceDB() { Destroy(); } void SCreatureEnhanceDB::Init() { Load(); } void SCreatureEnhanceDB::Destroy() { m_db.clear(); } void SCreatureEnhanceDB::Load() { KStream * pRes = KFileManager::Instance().CreateStreamFromResource("db_CreatureEnhance.rdb"); if( !pRes ) return; GAME_DB db_hdr; pRes->Read( &db_hdr, sizeof(db_hdr) ); for (int i = 0; i < db_hdr.nCount; ++i) { sCreatureEnhanceDBInfo info; pRes->Read(&info, sizeof (sCreatureEnhanceDBInfo)); m_db.push_back(info); } KFileManager::Instance().DeleteStream( pRes ); } int SCreatureEnhanceDB::getEnhanceLevel(unsigned int enhance) const { if (enhance >= m_db.size()) return 0; return (int)m_db[enhance].enhance_level; } float SCreatureEnhanceDB::getStatAmplify(unsigned int enhance) const { if (enhance >= m_db.size()) return 0.0f; return m_db[enhance].slot_amount; } int SCreatureEnhanceDB::getCardDurability(unsigned int enhance) const { if (enhance >= m_db.size()) return 0; return (int)m_db[enhance].card_durability; } int SCreatureEnhanceDB::getSlotAmount(unsigned int enhance) const { if (enhance >= m_db.size()) return 0; return (int)m_db[enhance].slot_amount; } int SCreatureEnhanceDB::getJpAddition(unsigned int enhance) const { if (enhance >= m_db.size()) return 0; return (int)m_db[enhance].jp_addition; }