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

63 lines
1.1 KiB
C++

#include "stdafx.h"
#include "SBanWordDB.h"
#include <Windows.h>
#include <kfile/KStream.h>
#include "KTypes.h"
#include <kfile/KFileManager.h>
#include <toolkit/XStringUtil.h>
#include "BanWordBase.h"
#include "SkillBaseFile.h"
#include "SDebug_Util.h"
SBanWordDB* SBanWordDB::m_pThis = NULL;
SBanWordDB & GetBanWordDB()
{
if( NULL == SBanWordDB::m_pThis )
SBanWordDB::m_pThis = new SBanWordDB;
return *SBanWordDB::m_pThis;
// static SBanWordDB BanWordDB;
// return BanWordDB;
}
SBanWordDB::SBanWordDB()
{
Init();
}
SBanWordDB::~SBanWordDB()
{
Destroy();
}
void SBanWordDB::Init()
{
Load();
}
void SBanWordDB::Destroy()
{
SAFE_DELETE_VECTOR( m_vBanWord );
}
void SBanWordDB::Load()
{
KStream * pRes = KFileManager::Instance().CreateStreamFromResource( "db_BanWord.rdb" );
if( !pRes ) return;
GAME_DB db_hdr;
pRes->Read( &db_hdr, sizeof(db_hdr) );
for( int i(0); db_hdr.nCount>i; i++ )
{
BanWordBase *pBanWord = new BanWordBase;
memset( pBanWord, 0, sizeof(BanWordBase) );
pRes->Read( pBanWord, sizeof(BanWordBase) );
m_vBanWord.push_back( pBanWord );
}
KFileManager::Instance().DeleteStream( pRes );
}