59 lines
1.0 KiB
C++
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;
|
|
}
|
|
|