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

92 lines
1.9 KiB
C++

#include "stdafx.h"
/*
#include "SEnhanceEffectDB.h"
#include <rdu/RDUReader.h>
#include <rdu/ColumnDataGetter.h>
SEnhanceEffectDB* SEnhanceEffectDB::m_pThis = NULL;
SEnhanceEffectDB & GetEnhanceEffectDB()
{
if( NULL == SEnhanceEffectDB::m_pThis )
SEnhanceEffectDB::m_pThis = new SEnhanceEffectDB;
return *SEnhanceEffectDB::m_pThis;
}
SEnhanceEffectDB::SEnhanceEffectDB()
{
Init();
}
SEnhanceEffectDB::~SEnhanceEffectDB()
{
}
void SEnhanceEffectDB::Init()
{
Load();
}
const std::vector< ItemEnhanceEffectBase >& SEnhanceEffectDB::Find( int nEnhanceID )
{
auto pos = m_mapEnhanceEffect.find( nEnhanceID );
if( pos != m_mapEnhanceEffect.end() )
{
return pos->second;
}
static std::vector< ItemEnhanceEffectBase > empty_list;
return empty_list;
}
void SEnhanceEffectDB::Load()
{
KStream * pRes = KFileManager::Instance().CreateStreamFromResource( "db_EnhanceEffect.rdb" );
if( !pRes ) return;
RDUReader reader;
if( reader.Open( pRes ) == false )
{
return;
}
RDURow row;
while( reader.Fetch( &row ) == true )
{
ItemEnhanceEffectBase ee;
::memset( &ee, 0, sizeof( ee ) );
typedef ColumnDataGetter< DECIMALToDouble< false > > ColGetter;
ee.sid = ColGetter( row.At( "sid" ) ).ToInterger();
ee.sub_id = ColGetter( row.At( "sub_id" ) ).ToInterger();
ee.effect_id = ColGetter( row.At( "effect_id" ) ).ToInterger();
for( int i = 0; i < _countof( ee.value ); ++i )
{
char szColumnName[64] = "";
s_sprintf( szColumnName, _countof( szColumnName ), "value_%02d", i+1 );
ee.value[i] = ColGetter( row.At( szColumnName ) ).ToDouble();
}
auto pos = m_mapEnhanceEffect.find( ee.sid );
if( pos != m_mapEnhanceEffect.end() )
{
pos->second.push_back( ee );
}
else
{
std::vector< ItemEnhanceEffectBase > v;
v.push_back( ee );
m_mapEnhanceEffect.insert( std::make_pair( ee.sid, v ) );
}
}
KFileManager::Instance().DeleteStream( pRes );
}
*/