72 lines
1.4 KiB
C++
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 ) );
|
|
} |