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

102 lines
1.8 KiB
C++

#include "stdafx.h"
#include "SCreatureEnhanceDB.h"
#include <kfile/KFileManager.h>
#include "SkillBaseFile.h"
#include <kfile/KStream.h>
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;
}