1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 22:17:45 +00:00

Use territoryType instead of TerritoryId, also refactor variables to reflect the change

This commit is contained in:
Mordred 2018-11-05 23:07:39 +01:00
parent df052982fa
commit c512a63b92
15 changed files with 77 additions and 79 deletions

View file

@ -50,12 +50,12 @@ void Core::Db::ZoneDbConnection::doPrepareStatements()
"CFPenaltyUntil = ?, Pose = ? WHERE CharacterId = ?;", CONNECTION_ASYNC ); "CFPenaltyUntil = ?, Pose = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
prepareStatement( CHARA_SEL_MINIMAL, "SELECT Name, Customize, ModelMainWeapon, ModelSubWeapon, ModelEquip, TerritoryId, GuardianDeity, " prepareStatement( CHARA_SEL_MINIMAL, "SELECT Name, Customize, ModelMainWeapon, ModelSubWeapon, ModelEquip, TerritoryType, GuardianDeity, "
"Class, ContentId, BirthDay, BirthMonth, EquipDisplayFlags " "Class, ContentId, BirthDay, BirthMonth, EquipDisplayFlags "
"FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC ); "FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
prepareStatement( CHARA_INS, "INSERT INTO charainfo (AccountId, CharacterId, ContentId, Name, Hp, Mp, " prepareStatement( CHARA_INS, "INSERT INTO charainfo (AccountId, CharacterId, ContentId, Name, Hp, Mp, "
"Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, " "Customize, Voice, IsNewGame, TerritoryType, PosX, PosY, PosZ, PosR, ModelEquip, "
"IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, " "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, "
"HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, " "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, "
"Aetheryte, GMRank, Mounts, Orchestrion, UPDATE_DATE ) " "Aetheryte, GMRank, Mounts, Orchestrion, UPDATE_DATE ) "

View file

@ -64,7 +64,7 @@ void PlayerMinimal::load( uint32_t charId )
m_guardianDeity = res->getUInt8( "GuardianDeity" ); m_guardianDeity = res->getUInt8( "GuardianDeity" );
m_class = res->getUInt8( "Class" ); m_class = res->getUInt8( "Class" );
m_contentId = res->getUInt64( "ContentId" ); m_contentId = res->getUInt64( "ContentId" );
m_zoneId = res->getUInt16( "TerritoryId" ); m_zoneId = res->getUInt16( "TerritoryType" );
res.reset(); res.reset();
@ -245,7 +245,7 @@ void PlayerMinimal::saveAsNew()
} }
// "(AccountId, CharacterId, ContentId, Name, Hp, Mp, " // "(AccountId, CharacterId, ContentId, Name, Hp, Mp, "
// "Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, " // "Customize, Voice, IsNewGame, TerritoryType, PosX, PosY, PosZ, PosR, ModelEquip, "
// "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, " // "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, "
// "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, " // "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, "
// "Aetheryte, GMRank, UPDATE_DATE ) // "Aetheryte, GMRank, UPDATE_DATE )

View file

@ -423,7 +423,7 @@ bool Core::Entity::Player::setInstance( ZonePtr instance )
auto pTeriMgr = g_fw.get< TerritoryMgr >(); auto pTeriMgr = g_fw.get< TerritoryMgr >();
// zoning within the same zone won't cause the prev data to be overwritten // zoning within the same zone won't cause the prev data to be overwritten
if( instance->getTerritoryId() != m_zoneId ) if( instance->getTerritoryTypeId() != m_zoneId )
{ {
m_prevPos = m_pos; m_prevPos = m_pos;
m_prevRot = m_rot; m_prevRot = m_rot;
@ -519,7 +519,7 @@ void Core::Entity::Player::discover( int16_t map_id, int16_t sub_id )
int32_t offset = 4; int32_t offset = 4;
auto info = pExdData->get< Core::Data::Map >( auto info = pExdData->get< Core::Data::Map >(
pExdData->get< Core::Data::TerritoryType >( getCurrentZone()->getTerritoryId() )->map ); pExdData->get< Core::Data::TerritoryType >( getCurrentZone()->getTerritoryTypeId() )->map );
if( info->discoveryArrayByte ) if( info->discoveryArrayByte )
offset = 5 + 2 * info->discoveryIndex; offset = 5 + 2 * info->discoveryIndex;
else else
@ -993,7 +993,7 @@ void Core::Entity::Player::update( int64_t currTime )
if( m_queuedZoneing && ( currTime - m_queuedZoneing->m_queueTime ) > 800 ) if( m_queuedZoneing && ( currTime - m_queuedZoneing->m_queueTime ) > 800 )
{ {
Common::FFXIVARR_POSITION3 targetPos = m_queuedZoneing->m_targetPosition; Common::FFXIVARR_POSITION3 targetPos = m_queuedZoneing->m_targetPosition;
if( getCurrentZone()->getTerritoryId() != m_queuedZoneing->m_targetZone ) if( getCurrentZone()->getTerritoryTypeId() != m_queuedZoneing->m_targetZone )
{ {
performZoning( m_queuedZoneing->m_targetZone, targetPos, m_queuedZoneing->m_targetRotation ); performZoning( m_queuedZoneing->m_targetZone, targetPos, m_queuedZoneing->m_targetRotation );
} }
@ -1502,12 +1502,12 @@ void Core::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp )
queuePacket( packet ); queuePacket( packet );
} }
void Core::Entity::Player::setTerritoryId( uint32_t territoryId ) void Core::Entity::Player::setTerritoryTypeId( uint32_t territoryTypeId )
{ {
m_zoneId = territoryId; m_zoneId = territoryTypeId;
} }
uint32_t Core::Entity::Player::getTerritoryId() const uint32_t Core::Entity::Player::getTerritoryTypeId() const
{ {
return m_zoneId; return m_zoneId;
} }
@ -1559,7 +1559,7 @@ void Core::Entity::Player::sendZonePackets()
} }
auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() );
initZonePacket->data().zoneId = getCurrentZone()->getTerritoryId(); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId();
initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() ); initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() );
initZonePacket->data().bitmask = 0x1; //Setting this to 16 (deciaml) makes it so you can fly in the area (more research needed!) initZonePacket->data().bitmask = 0x1; //Setting this to 16 (deciaml) makes it so you can fly in the area (more research needed!)
initZonePacket->data().unknown5 = 0x2A; initZonePacket->data().unknown5 = 0x2A;

View file

@ -481,11 +481,11 @@ namespace Core::Entity
/*! returns the player to their position before zoning into an instance */ /*! returns the player to their position before zoning into an instance */
bool exitInstance(); bool exitInstance();
/*! sets the players territoryId */ /*! sets the players territoryTypeId */
void setTerritoryId( uint32_t territoryId ); void setTerritoryTypeId( uint32_t territoryTypeId );
/*! gets the players territoryId */ /*! gets the players territoryTypeId */
uint32_t getTerritoryId() const; uint32_t getTerritoryTypeId() const;
void forceZoneing( uint32_t zoneId ); void forceZoneing( uint32_t zoneId );

View file

@ -49,9 +49,8 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession )
auto name = res->getString( "Name" ); auto name = res->getString( "Name" );
strcpy( m_name, name.c_str() ); strcpy( m_name, name.c_str() );
auto zoneId = res->getUInt( "TerritoryId" ); auto zoneId = res->getUInt( "TerritoryType" );
m_prevZoneId = res->getUInt( "OTerritoryId" ); m_prevZoneId = res->getUInt( "OTerritoryType" );
m_prevZoneType = res->getUInt( "OTerritoryType" );
// Position // Position
m_pos.x = res->getFloat( "PosX" ); m_pos.x = res->getFloat( "PosX" );
@ -79,12 +78,12 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession )
m_pos.y = m_prevPos.y; m_pos.y = m_prevPos.y;
m_pos.z = m_prevPos.z; m_pos.z = m_prevPos.z;
setRot( m_prevRot ); setRot( m_prevRot );
pCurrZone = pTeriMgr->getZoneByTerriId( zoneId ); pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId );
} }
} }
else else
{ {
pCurrZone = pTeriMgr->getZoneByTerriId( zoneId ); pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId );
} }
m_zoneId = zoneId; m_zoneId = zoneId;
@ -98,7 +97,7 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession )
// default to new gridania // default to new gridania
// TODO: should probably just abort and mark character as corrupt // TODO: should probably just abort and mark character as corrupt
pCurrZone = pTeriMgr->getZoneByTerriId( 132 ); pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( 132 );
m_pos.x = 0.0f; m_pos.x = 0.0f;
m_pos.y = 0.0f; m_pos.y = 0.0f;
@ -365,15 +364,15 @@ void Core::Entity::Player::updateSql()
stmt->setInt( 16, static_cast< uint32_t >( m_bNewGame ) ); stmt->setInt( 16, static_cast< uint32_t >( m_bNewGame ) );
stmt->setInt( 17, static_cast< uint32_t >( m_bNewAdventurer ) ); stmt->setInt( 17, static_cast< uint32_t >( m_bNewAdventurer ) );
stmt->setInt( 18, 0 ); // TerritoryType stmt->setInt( 18, m_zoneId ); // TerritoryType
stmt->setInt( 19, m_zoneId ); // TerritoryId stmt->setInt( 19, 0 ); // TerritoryId
stmt->setDouble( 20, m_pos.x ); stmt->setDouble( 20, m_pos.x );
stmt->setDouble( 21, m_pos.y ); stmt->setDouble( 21, m_pos.y );
stmt->setDouble( 22, m_pos.z ); stmt->setDouble( 22, m_pos.z );
stmt->setDouble( 23, getRot() ); stmt->setDouble( 23, getRot() );
stmt->setInt( 24, m_prevZoneType ); // OTerritoryType stmt->setInt( 24, m_prevZoneId ); // OTerritoryType
stmt->setInt( 25, m_prevZoneId ); // OTerritoryId stmt->setInt( 25, m_prevZoneType ); // OTerritoryId
stmt->setDouble( 26, m_prevPos.x ); stmt->setDouble( 26, m_prevPos.x );
stmt->setDouble( 27, m_prevPos.y ); stmt->setDouble( 27, m_prevPos.y );
stmt->setDouble( 28, m_prevPos.z ); stmt->setDouble( 28, m_prevPos.z );

View file

@ -535,7 +535,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh
if( ( subCommand == "pos" ) ) if( ( subCommand == "pos" ) )
{ {
int16_t map_id = pExdData->get< Core::Data::TerritoryType >( player.getCurrentZone()->getTerritoryId() )->map; int16_t map_id = pExdData->get< Core::Data::TerritoryType >( player.getCurrentZone()->getTerritoryTypeId() )->map;
player.sendNotice( "Pos:\n" + player.sendNotice( "Pos:\n" +
std::to_string( player.getPos().x ) + "\n" + std::to_string( player.getPos().x ) + "\n" +
@ -543,7 +543,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh
std::to_string( player.getPos().z ) + "\n" + std::to_string( player.getPos().z ) + "\n" +
std::to_string( player.getRot() ) + "\nMapId: " + std::to_string( player.getRot() ) + "\nMapId: " +
std::to_string( map_id ) + "\nZoneID: " + std::to_string( map_id ) + "\nZoneID: " +
std::to_string( player.getCurrentZone()->getTerritoryId() ) + "\n" ); std::to_string( player.getCurrentZone()->getTerritoryTypeId() ) + "\n" );
} }
else else
{ {

View file

@ -450,7 +450,7 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R
} }
else else
{ {
auto pZone = pTeriMgr->getZoneByTerriId( param1 ); auto pZone = pTeriMgr->getZoneByTerritoryTypeId( param1 );
if( !pZone ) if( !pZone )
{ {
player.sendUrgent( "No zone instance found for " + std::to_string( param1 ) ); player.sendUrgent( "No zone instance found for " + std::to_string( param1 ) );

View file

@ -348,7 +348,7 @@ void Core::Network::GameConnection::zoneLineHandler( const Core::Network::Packet
targetPos.x = 0; targetPos.x = 0;
targetPos.y = 0; targetPos.y = 0;
targetPos.z = 0; targetPos.z = 0;
targetZone = pZone->getTerritoryId(); targetZone = pZone->getTerritoryTypeId();
} }
player.performZoning( targetZone, targetPos, rotation ); player.performZoning( targetZone, targetPos, rotation );
@ -471,7 +471,7 @@ void Core::Network::GameConnection::socialListHandler( const Core::Network::Pack
int32_t entrysizes = sizeof( listPacket->data().entries ); int32_t entrysizes = sizeof( listPacket->data().entries );
memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) ); memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) );
listPacket->data().entries[ 0 ].bytes[ 2 ] = player.getCurrentZone()->getTerritoryId(); listPacket->data().entries[ 0 ].bytes[ 2 ] = player.getCurrentZone()->getTerritoryTypeId();
listPacket->data().entries[ 0 ].bytes[ 3 ] = 0x80; listPacket->data().entries[ 0 ].bytes[ 3 ] = 0x80;
listPacket->data().entries[ 0 ].bytes[ 4 ] = 0x02; listPacket->data().entries[ 0 ].bytes[ 4 ] = 0x02;
listPacket->data().entries[ 0 ].bytes[ 6 ] = 0x3B; listPacket->data().entries[ 0 ].bytes[ 6 ] = 0x3B;
@ -479,7 +479,7 @@ void Core::Network::GameConnection::socialListHandler( const Core::Network::Pack
listPacket->data().entries[ 0 ].classJob = static_cast< uint8_t >( player.getClass() ); listPacket->data().entries[ 0 ].classJob = static_cast< uint8_t >( player.getClass() );
listPacket->data().entries[ 0 ].contentId = player.getContentId(); listPacket->data().entries[ 0 ].contentId = player.getContentId();
listPacket->data().entries[ 0 ].level = player.getLevel(); listPacket->data().entries[ 0 ].level = player.getLevel();
listPacket->data().entries[ 0 ].zoneId = player.getCurrentZone()->getTerritoryId(); listPacket->data().entries[ 0 ].zoneId = player.getCurrentZone()->getTerritoryTypeId();
listPacket->data().entries[ 0 ].zoneId1 = 0x0100; listPacket->data().entries[ 0 ].zoneId1 = 0x0100;
// TODO: no idea what this does // TODO: no idea what this does
//listPacket.data().entries[0].one = 1; //listPacket.data().entries[0].one = 1;

View file

@ -359,7 +359,7 @@ bool Core::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint3
bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone )
{ {
auto script = m_nativeScriptMgr->getScript< ZoneScript >( pZone->getTerritoryId() ); auto script = m_nativeScriptMgr->getScript< ZoneScript >( pZone->getTerritoryTypeId() );
if( script ) if( script )
{ {
script->onZoneInit(); script->onZoneInit();

View file

@ -22,14 +22,14 @@ using namespace Core::Network::Packets;
using namespace Core::Network::Packets::Server; using namespace Core::Network::Packets::Server;
Core::HousingZone::HousingZone( uint8_t wardNum, Core::HousingZone::HousingZone( uint8_t wardNum,
uint16_t territoryId, uint16_t territoryTypeId,
uint32_t guId, uint32_t guId,
const std::string& internalName, const std::string& internalName,
const std::string& contentName ) : const std::string& contentName ) :
Zone( territoryId, guId, internalName, contentName ), Zone( territoryTypeId, guId, internalName, contentName ),
m_wardNum( wardNum ), m_wardNum( wardNum ),
m_zoneId( territoryId ), m_zoneId( territoryTypeId ),
m_landSetId( ( static_cast< uint32_t >( territoryId ) << 16 ) | wardNum ) m_landSetId( ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardNum )
{ {
} }
@ -60,7 +60,7 @@ bool Core::HousingZone::init()
uint32_t landId; uint32_t landId;
for( landId = 0; landId < 60; landId++ ) for( landId = 0; landId < 60; landId++ )
{ {
auto pObject = make_Land( m_territoryId, getWardNum(), landId, m_landSetId, info ); auto pObject = make_Land( m_territoryTypeId, getWardNum(), landId, m_landSetId, info );
pObject->setHouseSize( 1 ); pObject->setHouseSize( 1 );
m_landPtrMap[ landId ] = pObject; m_landPtrMap[ landId ] = pObject;
} }
@ -105,7 +105,7 @@ void Core::HousingZone::sendLandSet( Entity::Player& player )
auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() );
landsetInitializePacket->data().landSetId = m_landSetId; landsetInitializePacket->data().landSetId = m_landSetId;
landsetInitializePacket->data().zoneId = m_territoryId; landsetInitializePacket->data().zoneId = m_territoryTypeId;
//TODO: get current WorldId //TODO: get current WorldId
landsetInitializePacket->data().worldId = 67; landsetInitializePacket->data().worldId = 67;
landsetInitializePacket->data().subInstance = isPlayerSubInstance( player ) == false ? 1 : 2; landsetInitializePacket->data().subInstance = isPlayerSubInstance( player ) == false ? 1 : 2;

View file

@ -10,7 +10,7 @@ namespace Core
{ {
public: public:
HousingZone( uint8_t landSetId, HousingZone( uint8_t landSetId,
uint16_t territoryId, uint16_t territoryTypeId,
uint32_t guId, uint32_t guId,
const std::string& internalName, const std::string& internalName,
const std::string& contentName ); const std::string& contentName );

View file

@ -108,7 +108,7 @@ bool Core::TerritoryMgr::createDefaultTerritories()
// for each entry in territoryTypeExd, check if it is a normal and if so, add the zone object // for each entry in territoryTypeExd, check if it is a normal and if so, add the zone object
for( const auto& territory : m_territoryTypeDetailCacheMap ) for( const auto& territory : m_territoryTypeDetailCacheMap )
{ {
auto territoryId = territory.first; auto territoryTypeId = territory.first;
auto territoryInfo = territory.second; auto territoryInfo = territory.second;
// if the zone has no name set // if the zone has no name set
@ -117,24 +117,24 @@ bool Core::TerritoryMgr::createDefaultTerritories()
auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName ); auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName );
if( !pPlaceName || pPlaceName->name.empty() || !isDefaultTerritory( territoryId ) ) if( !pPlaceName || pPlaceName->name.empty() || !isDefaultTerritory( territoryTypeId ) )
continue; continue;
uint32_t guid = getNextInstanceId(); uint32_t guid = getNextInstanceId();
pLog->info( std::to_string( territoryId ) + pLog->info( std::to_string( territoryTypeId ) +
"\t" + std::to_string( guid ) + "\t" + std::to_string( guid ) +
"\t" + std::to_string( territoryInfo->territoryIntendedUse ) + "\t" + std::to_string( territoryInfo->territoryIntendedUse ) +
"\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) + "\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) +
"\t" + ( isPrivateTerritory( territoryId ) ? "PRIVATE" : "PUBLIC" ) + "\t" + ( isPrivateTerritory( territoryTypeId ) ? "PRIVATE" : "PUBLIC" ) +
"\t" + pPlaceName->name ); "\t" + pPlaceName->name );
auto pZone = make_Zone( territoryId, guid, territoryInfo->name, pPlaceName->name ); auto pZone = make_Zone( territoryTypeId, guid, territoryInfo->name, pPlaceName->name );
pZone->init(); pZone->init();
InstanceIdToZonePtrMap instanceMap; InstanceIdToZonePtrMap instanceMap;
instanceMap[ guid ] = pZone; instanceMap[ guid ] = pZone;
m_instanceIdToZonePtrMap[ guid ] = pZone; m_instanceIdToZonePtrMap[ guid ] = pZone;
m_territoryIdToInstanceGuidMap[ territoryId ] = instanceMap; m_territoryTypeIdToInstanceGuidMap[ territoryTypeId ] = instanceMap;
m_zoneSet.insert( { pZone } ); m_zoneSet.insert( { pZone } );
} }
@ -149,7 +149,7 @@ bool Core::TerritoryMgr::createHousingTerritories()
auto pLog = g_fw.get< Logger >(); auto pLog = g_fw.get< Logger >();
for( const auto& territory : m_territoryTypeDetailCacheMap ) for( const auto& territory : m_territoryTypeDetailCacheMap )
{ {
auto territoryId = territory.first; auto territoryTypeId = territory.first;
auto territoryInfo = territory.second; auto territoryInfo = territory.second;
uint32_t wardNum; uint32_t wardNum;
uint32_t wardMaxNum = 1; uint32_t wardMaxNum = 1;
@ -159,13 +159,13 @@ bool Core::TerritoryMgr::createHousingTerritories()
auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName ); auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName );
if( !pPlaceName || pPlaceName->name.empty() || !isHousingTerritory( territoryId ) ) if( !pPlaceName || pPlaceName->name.empty() || !isHousingTerritory( territoryTypeId ) )
continue; continue;
for( wardNum = 0; wardNum < wardMaxNum; wardNum++ ) for( wardNum = 0; wardNum < wardMaxNum; wardNum++ )
{ {
uint32_t guid = getNextInstanceId(); uint32_t guid = getNextInstanceId();
pLog->info( std::to_string( territoryId ) + pLog->info( std::to_string( territoryTypeId ) +
"\t" + std::to_string( guid ) + "\t" + std::to_string( guid ) +
"\t" + std::to_string( territoryInfo->territoryIntendedUse ) + "\t" + std::to_string( territoryInfo->territoryIntendedUse ) +
"\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) + "\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) +
@ -173,14 +173,14 @@ bool Core::TerritoryMgr::createHousingTerritories()
"\t" + pPlaceName->name + "\t" + pPlaceName->name +
"#" + std::to_string( wardNum ) ); "#" + std::to_string( wardNum ) );
auto pHousingZone = make_HousingZone( wardNum, territoryId, guid, territoryInfo->name, pPlaceName->name ); auto pHousingZone = make_HousingZone( wardNum, territoryTypeId, guid, territoryInfo->name, pPlaceName->name );
pHousingZone->init(); pHousingZone->init();
wardMaxNum = 18; wardMaxNum = 18;
InstanceIdToZonePtrMap instanceMap; InstanceIdToZonePtrMap instanceMap;
instanceMap[ guid ] = pHousingZone; instanceMap[ guid ] = pHousingZone;
m_instanceIdToZonePtrMap[ guid ] = pHousingZone; m_instanceIdToZonePtrMap[ guid ] = pHousingZone;
m_territoryIdToInstanceGuidMap[ territoryId ][ guid ] = pHousingZone; m_territoryTypeIdToInstanceGuidMap[ territoryTypeId ][ guid ] = pHousingZone;
m_zoneSet.insert( { pHousingZone } ); m_zoneSet.insert( { pHousingZone } );
} }
@ -212,7 +212,7 @@ Core::ZonePtr Core::TerritoryMgr::createTerritoryInstance( uint32_t territoryTyp
pZone->init(); pZone->init();
m_instanceIdToZonePtrMap[ pZone->getGuId() ] = pZone; m_instanceIdToZonePtrMap[ pZone->getGuId() ] = pZone;
m_territoryIdToInstanceGuidMap[ pZone->getTerritoryId() ][ pZone->getGuId() ] = pZone; m_territoryTypeIdToInstanceGuidMap[ pZone->getTerritoryTypeId() ][ pZone->getGuId() ] = pZone;
m_zoneSet.insert( { pZone } ); m_zoneSet.insert( { pZone } );
return pZone; return pZone;
@ -265,13 +265,13 @@ bool Core::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId )
m_instanceZoneSet.erase( pZone ); m_instanceZoneSet.erase( pZone );
m_zoneSet.erase( pZone ); m_zoneSet.erase( pZone );
if( isInstanceContentTerritory( pZone->getTerritoryId() ) ) if( isInstanceContentTerritory( pZone->getTerritoryTypeId() ) )
{ {
auto instance = std::dynamic_pointer_cast< InstanceContent >( pZone ); auto instance = std::dynamic_pointer_cast< InstanceContent >( pZone );
m_instanceContentToInstanceMap[ instance->getInstanceContentId() ].erase( pZone->getGuId() ); m_instanceContentToInstanceMap[ instance->getInstanceContentId() ].erase( pZone->getGuId() );
} }
else else
m_territoryIdToInstanceGuidMap[ pZone->getTerritoryId() ].erase( pZone->getGuId() ); m_territoryTypeIdToInstanceGuidMap[ pZone->getTerritoryTypeId() ].erase( pZone->getGuId() );
return true; return true;
@ -340,10 +340,10 @@ Core::ZonePositionPtr Core::TerritoryMgr::getTerritoryPosition( uint32_t territo
return nullptr; return nullptr;
} }
Core::ZonePtr Core::TerritoryMgr::getZoneByTerriId( uint32_t territoryId ) const Core::ZonePtr Core::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const
{ {
auto zoneMap = m_territoryIdToInstanceGuidMap.find( territoryId ); auto zoneMap = m_territoryTypeIdToInstanceGuidMap.find( territoryTypeId );
if( zoneMap == m_territoryIdToInstanceGuidMap.end() ) if( zoneMap == m_territoryTypeIdToInstanceGuidMap.end() )
return nullptr; return nullptr;
// TODO: actually select the proper one // TODO: actually select the proper one
@ -378,9 +378,9 @@ Core::TerritoryMgr::InstanceIdList Core::TerritoryMgr::getInstanceContentIdList(
return idList; return idList;
} }
bool Core::TerritoryMgr::movePlayer( uint32_t territoryId, Core::Entity::PlayerPtr pPlayer ) bool Core::TerritoryMgr::movePlayer( uint32_t territoryTypeId, Core::Entity::PlayerPtr pPlayer )
{ {
auto pZone = getZoneByTerriId( territoryId ); auto pZone = getZoneByTerritoryTypeId( territoryTypeId );
assert( pZone ); assert( pZone );
return movePlayer( pZone, pPlayer ); return movePlayer( pZone, pPlayer );
} }
@ -396,7 +396,7 @@ bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPla
pPlayer->initSpawnIdQueue(); pPlayer->initSpawnIdQueue();
pPlayer->setTerritoryId( pZone->getTerritoryId() ); pPlayer->setTerritoryTypeId( pZone->getTerritoryTypeId() );
// mark character as zoning in progress // mark character as zoning in progress
pPlayer->setLoadingComplete( false ); pPlayer->setLoadingComplete( false );

View file

@ -112,11 +112,11 @@ public:
/*! returns a ZonePositionPtr if found, else nullptr */ /*! returns a ZonePositionPtr if found, else nullptr */
ZonePositionPtr getTerritoryPosition( uint32_t territoryPositionId ) const; ZonePositionPtr getTerritoryPosition( uint32_t territoryPositionId ) const;
/*! returns a default Zone by territoryId /*! returns a default Zone by territoryTypeId
TODO: Mind multiple instances?! */ TODO: Mind multiple instances?! */
ZonePtr getZoneByTerriId( uint32_t territoryId ) const; ZonePtr getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const;
bool movePlayer( uint32_t territoryId, Entity::PlayerPtr pPlayer ); bool movePlayer( uint32_t territoryTypeId, Entity::PlayerPtr pPlayer );
bool movePlayer( ZonePtr, Entity::PlayerPtr pPlayer ); bool movePlayer( ZonePtr, Entity::PlayerPtr pPlayer );
@ -144,7 +144,7 @@ public:
private: private:
using TerritoryTypeDetailCache = std::unordered_map< uint16_t, Data::TerritoryTypePtr >; using TerritoryTypeDetailCache = std::unordered_map< uint16_t, Data::TerritoryTypePtr >;
using InstanceIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; using InstanceIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >;
using TerritoryIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; using TerritoryTypeIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >;
using InstanceContentIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; using InstanceContentIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >;
using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >; using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >;
using PositionMap = std::unordered_map< int32_t, ZonePositionPtr >; using PositionMap = std::unordered_map< int32_t, ZonePositionPtr >;
@ -154,7 +154,7 @@ private:
TerritoryTypeDetailCache m_territoryTypeDetailCacheMap; TerritoryTypeDetailCache m_territoryTypeDetailCacheMap;
/*! map holding actual instances of default territories */ /*! map holding actual instances of default territories */
TerritoryIdToInstanceMap m_territoryIdToInstanceGuidMap; TerritoryTypeIdToInstanceMap m_territoryTypeIdToInstanceGuidMap;
/*! map holding actual instances of InstanceContent */ /*! map holding actual instances of InstanceContent */
InstanceContentIdToInstanceMap m_instanceContentToInstanceMap; InstanceContentIdToInstanceMap m_instanceContentToInstanceMap;

View file

@ -48,7 +48,7 @@ extern Core::Framework g_fw;
* \brief * \brief
*/ */
Core::Zone::Zone() : Core::Zone::Zone() :
m_territoryId( 0 ), m_territoryTypeId( 0 ),
m_guId( 0 ), m_guId( 0 ),
m_currentWeather( Weather::FairSkies ), m_currentWeather( Weather::FairSkies ),
m_weatherOverride( Weather::None ), m_weatherOverride( Weather::None ),
@ -57,20 +57,20 @@ Core::Zone::Zone() :
{ {
} }
Core::Zone::Zone( uint16_t territoryId, uint32_t guId, const std::string& internalName, const std::string& placeName ) : Core::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ) :
m_currentWeather( Weather::FairSkies ), m_currentWeather( Weather::FairSkies ),
m_nextEObjId( 0x400D0000 ) m_nextEObjId( 0x400D0000 )
{ {
auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pExdData = g_fw.get< Data::ExdDataGenerated >();
m_guId = guId; m_guId = guId;
m_territoryId = territoryId; m_territoryTypeId = territoryTypeId;
m_internalName = internalName; m_internalName = internalName;
m_placeName = placeName; m_placeName = placeName;
m_lastMobUpdate = 0; m_lastMobUpdate = 0;
m_weatherOverride = Weather::None; m_weatherOverride = Weather::None;
m_territoryTypeInfo = pExdData->get< Core::Data::TerritoryType >( territoryId ); m_territoryTypeInfo = pExdData->get< Core::Data::TerritoryType >( territoryTypeId );
loadWeatherRates(); loadWeatherRates();
@ -281,7 +281,7 @@ void Core::Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t
Network::Packets::FFXIVPacketBasePtr pPacketEntry ) Network::Packets::FFXIVPacketBasePtr pPacketEntry )
{ {
auto pTeriMgr = g_fw.get< TerritoryMgr >(); auto pTeriMgr = g_fw.get< TerritoryMgr >();
if( pTeriMgr->isPrivateTerritory( getTerritoryId() ) ) if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) )
return; return;
auto pServerZone = g_fw.get< ServerZone >(); auto pServerZone = g_fw.get< ServerZone >();
@ -306,9 +306,9 @@ void Core::Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t
} }
} }
uint32_t Core::Zone::getTerritoryId() const uint32_t Core::Zone::getTerritoryTypeId() const
{ {
return m_territoryId; return m_territoryTypeId;
} }
uint32_t Core::Zone::getGuId() const uint32_t Core::Zone::getGuId() const
@ -611,7 +611,7 @@ void Core::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell )
auto pTeriMgr = g_fw.get< TerritoryMgr >(); auto pTeriMgr = g_fw.get< TerritoryMgr >();
// TODO: make sure gms can overwrite this. Potentially temporary solution // TODO: make sure gms can overwrite this. Potentially temporary solution
if( pTeriMgr->isPrivateTerritory( getTerritoryId() ) ) if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) )
return; return;
auto iter = pCell->m_actors.begin(); auto iter = pCell->m_actors.begin();
@ -661,7 +661,7 @@ void Core::Zone::onPlayerZoneIn( Entity::Player& player )
{ {
auto pLog = g_fw.get< Logger >(); auto pLog = g_fw.get< Logger >();
pLog->debug( pLog->debug(
"Zone::onEnterTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryId() ) + "Zone::onEnterTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) +
+", Entity#" + std::to_string( player.getId() ) ); +", Entity#" + std::to_string( player.getId() ) );
} }
@ -669,7 +669,7 @@ void Core::Zone::onLeaveTerritory( Entity::Player& player )
{ {
auto pLog = g_fw.get< Logger >(); auto pLog = g_fw.get< Logger >();
pLog->debug( pLog->debug(
"Zone::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryId() ) + "Zone::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) +
+", Entity#" + std::to_string( player.getId() ) ); +", Entity#" + std::to_string( player.getId() ) );
} }

View file

@ -30,11 +30,10 @@ struct InstanceContent;
struct TerritoryType; struct TerritoryType;
} }
class Zone : class Zone : public CellHandler< Cell >, public std::enable_shared_from_this< Zone >
public CellHandler< Cell >, public std::enable_shared_from_this< Zone >
{ {
protected: protected:
uint32_t m_territoryId; uint32_t m_territoryTypeId;
uint32_t m_guId; uint32_t m_guId;
std::string m_placeName; std::string m_placeName;
@ -62,7 +61,7 @@ protected:
public: public:
Zone(); Zone();
Zone( uint16_t territoryId, uint32_t guId, const std::string& internalName, const std::string& placeName ); Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName );
virtual ~Zone(); virtual ~Zone();
@ -79,7 +78,7 @@ public:
virtual void loadCellCache(); virtual void loadCellCache();
virtual uint32_t getTerritoryId() const; virtual uint32_t getTerritoryTypeId() const;
virtual void onBeforePlayerZoneIn( Entity::Player& player ) {}; virtual void onBeforePlayerZoneIn( Entity::Player& player ) {};