From 2d3486ea1f3bb5fd5335aa9b6f62690f9347b7a2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 10 Feb 2023 08:56:58 +0100 Subject: [PATCH] Moved onFcLogout to a better place --- src/world/Actor/Player.cpp | 7 ++++--- src/world/Manager/PlayerMgr.cpp | 4 +--- src/world/Network/Handlers/PacketHandlers.cpp | 4 +++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index b29d3cfd..3f56c94b 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -20,6 +20,7 @@ #include "Manager/PlayerMgr.h" #include "Manager/PartyMgr.h" #include "Manager/WarpMgr.h" +#include "Manager/FreeCompanyMgr.h" #include "Territory/Territory.h" #include "Territory/InstanceContent.h" @@ -120,6 +121,8 @@ Player::~Player() = default; void Player::unload() { + auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref(); + auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref(); // do one last update to db updateSql(); // reset isLogin and loading sequences just in case @@ -130,11 +133,9 @@ void Player::unload() setMarkedForRemoval( false ); // send updates to mgrs if( getPartyId() != 0 ) - { - auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref(); partyMgr.onMemberDisconnect( *this ); - } + fcMgr.onFcLogout( getCharacterId() ); syncLastDBWrite(); } diff --git a/src/world/Manager/PlayerMgr.cpp b/src/world/Manager/PlayerMgr.cpp index 060ce7ed..ac2a8510 100644 --- a/src/world/Manager/PlayerMgr.cpp +++ b/src/world/Manager/PlayerMgr.cpp @@ -342,7 +342,7 @@ void PlayerMgr::onZone( Sapphire::Entity::Player& player ) auto& housingMgr = Common::Service< HousingMgr >::ref(); auto& partyMgr = Common::Service< World::Manager::PartyMgr >::ref(); auto& server = Common::Service< World::WorldServer >::ref(); - auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref(); + auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() ); if( !pZone ) @@ -423,8 +423,6 @@ void PlayerMgr::onZone( Sapphire::Entity::Player& player ) partyMgr.onMoveZone( player ); } - fcMgr.onFcLogin( player.getCharacterId() ); - } ////////// Helper /////////// diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 571505db..5f863346 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -55,6 +55,7 @@ #include "Manager/PlayerMgr.h" #include "Manager/WarpMgr.h" #include "Manager/ItemMgr.h" +#include "Manager/FreeCompanyMgr.h" #include "Action/Action.h" @@ -368,10 +369,11 @@ void Sapphire::Network::GameConnection::loginHandler( const Packets::FFXIVARR_PA { const auto packet = ZoneChannelPacket< Client::FFXIVIpcLoginHandler >( inPacket ); auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref(); - // init handler means this is a login procedure + auto& fcMgr = Common::Service< World::Manager::FreeCompanyMgr >::ref(); player.setIsLogin( true ); player.setConnected( true ); teriMgr.joinWorld( player ); + fcMgr.onFcLogin( player.getCharacterId() ); } void Sapphire::Network::GameConnection::syncHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )