Files
2022-10-26 12:25:11 +08:00

72 lines
1.4 KiB
C++

#include "StdAfx.h"
#include ".\worldinfo.h"
WorldInfo::WorldInfo(void)
{
}
WorldInfo::~WorldInfo(void)
{
WORLD_MAP::iterator pos;
for( pos = m_mapWorldInfo.begin() ; pos != m_mapWorldInfo.end() ; ++pos )
{
_BaseInfo* pBaseInfo = pos->second;
if( pBaseInfo )
delete pBaseInfo;
}
m_mapWorldInfo.clear();
PORT_MAP::iterator iterMap;
for( iterMap = m_mapPort.begin() ; iterMap != m_mapPort.end() ; ++iterMap )
{
_PortInfo* pBaseInfo = iterMap->second;
if( pBaseInfo )
delete pBaseInfo;
}
m_mapPort.clear();
}
VOID WorldInfo::GetBaseInfo( WORD wWorld, WORLD_LIST& listWorld )
{
WORLD_MAP::iterator pos;
for( pos = m_mapWorldInfo.lower_bound(wWorld) ; pos != m_mapWorldInfo.upper_bound(wWorld) ; ++pos )
{
_BaseInfo* pInfo = pos->second;
if( pInfo )
listWorld.push_back( pInfo );
}
}
BOOL WorldInfo::AddBaseInfo( WORD wWorld, _BaseInfo* pBaseInfo )
{
if( !pBaseInfo || wWorld > MAX_WORLD_COUNT ) return FALSE;
m_mapWorldInfo.insert( make_pair( wWorld, pBaseInfo ) );
return TRUE;
}
_PortInfo* WorldInfo::GetPortInfo( WORD wServerType )
{
PORT_MAP::iterator iter;
iter = m_mapPort.find( wServerType );
if( iter == m_mapPort.end() )
return NULL;
return iter->second;
}
VOID WorldInfo::AddPortInfo( WORD wServerType, _PortInfo* pPortInfo )
{
if( !pPortInfo ) return;
m_mapPort.insert( make_pair(wServerType, pPortInfo ) );
}