diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 20320840..064bc617 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -685,8 +685,6 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo sscanf( params.c_str(), "%d", &terriId ); auto instance = g_territoryMgr.createTerritoryInstance( terriId ); - g_territoryMgr.addInstance( instance ); - player.sendDebug( "Created instance with guid: " + std::to_string( instance->getGuId() ) ); } } diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index 2a4b0182..096e78e9 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -403,14 +403,13 @@ void Core::Network::GameConnection::gm1Handler( const Packets::GamePacket& inPac } case GmCommand::Teri: { - - if( !g_territoryMgr.isValidTerritory( param1 ) ) + if( auto instance = g_territoryMgr.getTerritoryZonePtr( param1 ) ) + { + player.sendDebug( "Found instance: " + instance->getName() + ", id: " + std::to_string( param1 ) ); + } + else if( !g_territoryMgr.isValidTerritory( param1 ) ) { player.sendUrgent( "Invalid zone " + std::to_string( param1 ) ); - } - else if( auto instance = g_territoryMgr.getInstance( param1 ) ) - { - } else { diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index eaa37a77..6e496126 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -144,27 +144,19 @@ Core::ZonePtr Core::TerritoryMgr::createTerritoryInstance( uint32_t territoryTyp ZonePtr pZone( new Zone( territoryTypeId, getNextInstanceId(), pTeri->name, pPlaceName->name, false ) ); pZone->init(); + m_territoryInstanceMap[pZone->getTerritoryId()][pZone->getGuId()] = pZone; + m_instanceIdToZonePtrMap[pZone->getGuId()] = pZone; + return pZone; } -bool Core::TerritoryMgr::addInstance( ZonePtr pInstance ) +Core::ZonePtr Core::TerritoryMgr::getTerritoryZonePtr( uint32_t instanceId ) const { - // todo: wtf... - m_territoryInstanceMap[ pInstance->getTerritoryId() ][ pInstance->getGuId() ] = pInstance; + auto it = m_instanceIdToZonePtrMap.find( instanceId ); + if( it == m_instanceIdToZonePtrMap.end() ) + return nullptr; - return true; -} - -Core::ZonePtr Core::TerritoryMgr::getInstance( uint32_t instanceId ) const -{ - for( InstanceIdToZonePtrMap map : m_territoryInstanceMap ) - { - auto it = map.find( instanceId ); - if( it == map.end() ) - return nullptr; - - return it->second; - } + return it->second; } void Core::TerritoryMgr::loadTerritoryPositionMap()