Files
Sun1602/Tools/WiseClient/Information/Zone/ZoneManager.cpp
T
2022-10-26 12:25:11 +08:00

59 lines
1.0 KiB
C++

#include "stdafx.h"
#include "ZoneManager.h"
#include "GameZone.h"
#include "WiseMapInfo.h"
//////////////////////////////////////////////////////////////////////////
//
ZoneManager* ZoneManager::m_pInstance = NULL;
ZoneManager::ZoneManager()
{
}
ZoneManager::~ZoneManager()
{
}
ZoneManager* ZoneManager::Instance()
{
if(m_pInstance)
return m_pInstance;
m_pInstance = new ZoneManager();
return m_pInstance;
}
//////////////////////////////////////////////////////////////////////////
//
GameZone* ZoneManager::GetMap(MAPCODE mcCODE)
{
ZoneManager& rZONE = *ZoneManager::Instance();
GAME_ZONE_HASH& rHASH = rZONE.m_ZoneHash;
GAME_ZONE_HASH_IT itFIND = rHASH.find(mcCODE);
GameZone* pZONE = NULL;
if(itFIND != rHASH.end())
{
pZONE = itFIND->second;
return pZONE;
}
WiseMapInfo::ConstructInstance(mcCODE, pZONE);
return pZONE;
}
DWORD ZoneManager::GetMapCheckSum(FIELDCODE mcFIELDCODE)
{
GameZone* pZONE = GetMap(mcFIELDCODE);
if(pZONE)
return pZONE->GetMapVersion(mcFIELDCODE);
return 0;
}