mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-28 23:27:45 +00:00
only create naviproviders if one doesn't exist for the map
This commit is contained in:
parent
0234800fce
commit
19cf05c9c1
2 changed files with 17 additions and 8 deletions
|
@ -10,10 +10,11 @@ Sapphire::World::Manager::NaviMgr::NaviMgr( FrameworkPtr pFw ) :
|
||||||
|
|
||||||
bool Sapphire::World::Manager::NaviMgr::setupTerritory( const std::string& bgPath )
|
bool Sapphire::World::Manager::NaviMgr::setupTerritory( const std::string& bgPath )
|
||||||
{
|
{
|
||||||
std::string bg;
|
std::string bg = getBgName( bgPath );
|
||||||
auto findPos = bgPath.find_last_of( "/" );
|
|
||||||
if( findPos != std::string::npos )
|
// check if a provider exists already
|
||||||
bg = bgPath.substr( findPos + 1 );
|
if( m_naviProviderTerritoryMap.find( bg ) != m_naviProviderTerritoryMap.end() )
|
||||||
|
return true;
|
||||||
|
|
||||||
auto provider = Navi::make_NaviProvider( bg, m_pFw );
|
auto provider = Navi::make_NaviProvider( bg, m_pFw );
|
||||||
|
|
||||||
|
@ -28,13 +29,19 @@ bool Sapphire::World::Manager::NaviMgr::setupTerritory( const std::string& bgPat
|
||||||
|
|
||||||
Sapphire::World::Navi::NaviProviderPtr Sapphire::World::Manager::NaviMgr::getNaviProvider( const std::string& bgPath )
|
Sapphire::World::Navi::NaviProviderPtr Sapphire::World::Manager::NaviMgr::getNaviProvider( const std::string& bgPath )
|
||||||
{
|
{
|
||||||
std::string bg;
|
std::string bg = getBgName( bgPath );
|
||||||
auto findPos = bgPath.find_last_of( "/" );
|
|
||||||
if( findPos != std::string::npos )
|
|
||||||
bg = bgPath.substr( findPos + 1 );
|
|
||||||
|
|
||||||
if( m_naviProviderTerritoryMap.find( bg ) != m_naviProviderTerritoryMap.end() )
|
if( m_naviProviderTerritoryMap.find( bg ) != m_naviProviderTerritoryMap.end() )
|
||||||
return m_naviProviderTerritoryMap[ bg ];
|
return m_naviProviderTerritoryMap[ bg ];
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string Sapphire::World::Manager::NaviMgr::getBgName( const std::string& bgPath )
|
||||||
|
{
|
||||||
|
auto findPos = bgPath.find_last_of( "/" );
|
||||||
|
if( findPos != std::string::npos )
|
||||||
|
return bgPath.substr( findPos + 1 );
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ namespace Sapphire::World::Manager
|
||||||
private:
|
private:
|
||||||
FrameworkPtr m_pFw;
|
FrameworkPtr m_pFw;
|
||||||
|
|
||||||
|
std::string getBgName( const std::string& bgPath );
|
||||||
|
|
||||||
std::unordered_map< std::string, Navi::NaviProviderPtr > m_naviProviderTerritoryMap;
|
std::unordered_map< std::string, Navi::NaviProviderPtr > m_naviProviderTerritoryMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue