From 2167b8db1a459f5926710299eee60ef4586b98f4 Mon Sep 17 00:00:00 2001 From: Sophie Hamilton Date: Sat, 29 Feb 2020 10:30:25 +0000 Subject: [PATCH 1/7] quest_parser template update Use correct method of determining actor, use callback variables instead of inline functions within scenes, and use the correct namespace. --- src/tools/quest_parser/main.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/tools/quest_parser/main.cpp b/src/tools/quest_parser/main.cpp index 06d48373..1f47b0a1 100644 --- a/src/tools/quest_parser/main.cpp +++ b/src/tools/quest_parser/main.cpp @@ -27,7 +27,8 @@ using namespace Sapphire; const std::string onTalkStr( " void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override\n" " {\n" - " auto actor = Event::mapEventActorToRealActor( actorId );\n" + " auto pEventMgr = m_framework->get< World::Manager::EventMgr >();\n" + " auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) );\n" " }\n\n" ); @@ -40,6 +41,8 @@ const std::string onWithinRangeStr( const std::string onEmoteStr( " void onEmote( uint32_t eventId, Entity::Player& player, uint64_t actorId, uint32_t emoteId ) override\n" " {\n" + " auto pEventMgr = m_framework->get< World::Manager::EventMgr >();\n" + " auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) );\n" " }\n\n" ); @@ -101,12 +104,15 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st sceneName + "( Entity::Player& player )\n" " {\n" + " auto callback = [ & ]( Entity::Player& player, const Event::SceneResult& result )\n" + " {\n" + " };\n" + "\n" " player.playScene( getId(), " + - sceneId + - ", 0,\n" - " [ & ]( Entity::Player& player, const Event::SceneResult& result )\n" - " {\n" - " });\n" + sceneId + ", " + "NONE, " + "callback" + " );\n" " }\n\n" ); } @@ -204,6 +210,8 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st additional += "// Start NPC: " + std::to_string( pQuestData->issuerStart ) + "\n"; additional += "// End NPC: " + std::to_string( pQuestData->targetEnd ) + "\n\n"; + additional += "using namespace Sapphire;\n\n"; + std::string actionEntry; std::string scriptEntry; scriptEntry.reserve( 0xFFFF ); @@ -224,7 +232,7 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st if( !enemy_ids.empty() ) scriptEntry += std::string( - " void onBNpcKill( uint32_t npcId, Entity::Player& player )\n" + " void onBNpcKill( uint32_t npcId, Entity::Player& player ) override\n" " {\n" " switch( npcId )\n" " {\n" ); @@ -240,7 +248,7 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st if( !action_ids.empty() ) actionEntry += std::string( - " void onEObjHit( uint32_t npcId, Entity::Player& player, uin32_t actionId )\n" + " void onEObjHit( uint32_t npcId, Entity::Player& player, uin32_t actionId ) override\n" " {\n" " switch( actionId )\n" " {\n" ); From def639e2187828576fea668171403ac33d04d143 Mon Sep 17 00:00:00 2001 From: Sophie Hamilton Date: Sat, 29 Feb 2020 17:33:55 +0000 Subject: [PATCH 2/7] quest_parser: Fix case for constants The generated onBNpcKill and onEObjHit functions were using the wrong case for the constants they used. Ensure that they use the same case as the declared constants, and reduce duplicate code. Also, fix a typo in the onEObjHit function prototype which was causing generated scripts to not compile properly, and revert the incorrect addition (by me in an earlier commit) of "override". --- src/tools/quest_parser/main.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/tools/quest_parser/main.cpp b/src/tools/quest_parser/main.cpp index 1f47b0a1..9efc2cba 100644 --- a/src/tools/quest_parser/main.cpp +++ b/src/tools/quest_parser/main.cpp @@ -64,6 +64,17 @@ std::string titleCase( const std::string& str ) return retStr; } +std::string titleCaseNoUnderscores( const std::string& str ) +{ + std::string result = titleCase( str ); + + result.erase( std::remove_if( result.begin(), result.end(), []( const char c ) { + return c == '_'; + }), result.end()); + + return result; +} + void createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< std::string >& additionalList, int questId ) { @@ -132,12 +143,7 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st } else { - std::string seqName = titleCase( entry ); - - seqName.erase( std::remove_if( seqName.begin(), seqName.end(), []( const char c ) { - return c == '_'; - }), seqName.end()); - + std::string seqName = titleCaseNoUnderscores( entry ); std::string seqId = entry.substr( 4 ); seqStr += " " + seqName + " = " + seqId + ",\n"; } @@ -195,12 +201,7 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st std::sort( script_entities.begin(), script_entities.end() ); for( auto& entity : script_entities ) { - auto name = titleCase( entity ); - - name.erase( std::remove_if( name.begin(), name.end(), []( const char c ) { - return c == '_'; - }), name.end()); - + auto name = titleCaseNoUnderscores( entity ); sentities += " static constexpr auto " + name + ";\n"; } @@ -239,7 +240,7 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st for( auto enemy : enemy_strings ) { - scriptEntry += " case " + enemy + ": { break; }\n"; + scriptEntry += " case " + titleCaseNoUnderscores( enemy ) + ": { break; }\n"; } if( !enemy_ids.empty() ) @@ -248,14 +249,14 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st if( !action_ids.empty() ) actionEntry += std::string( - " void onEObjHit( uint32_t npcId, Entity::Player& player, uin32_t actionId ) override\n" + " void onEObjHit( uint32_t npcId, Entity::Player& player, uint32_t actionId )\n" " {\n" " switch( actionId )\n" " {\n" ); for( auto action : action_names ) { - actionEntry += " case " + action + ": { break; }\n"; + actionEntry += " case " + titleCaseNoUnderscores( action ) + ": { break; }\n"; } if( !action_ids.empty() ) From 64828a4c8afc280c43631243be83316cecb0ef66 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 29 Feb 2020 22:30:10 +1100 Subject: [PATCH 3/7] start of new service locator impl --- src/api/main.cpp | 2 +- src/common/Service.h | 114 ++++++++++++++++++ src/dbm/main.cpp | 2 +- src/lobby/mainLobbyServer.cpp | 2 +- src/tools/event_object_parser/main.cpp | 2 +- src/tools/exd_struct_test/main.cpp | 2 +- src/tools/questbattle_bruteforce/main.cpp | 2 +- src/world/Actor/Player.cpp | 17 +-- src/world/Actor/PlayerEvent.cpp | 6 +- src/world/Manager/DebugCommandMgr.cpp | 31 +++-- src/world/Manager/HousingMgr.cpp | 10 +- src/world/Manager/TerritoryMgr.cpp | 4 +- src/world/Navi/NaviProvider.cpp | 4 +- src/world/Network/GameConnection.cpp | 9 +- .../Network/Handlers/ClientTriggerHandler.cpp | 4 +- .../Network/Handlers/GMCommandHandlers.cpp | 5 +- src/world/Network/Handlers/PacketHandlers.cpp | 12 +- src/world/Script/NativeScriptMgr.cpp | 6 +- src/world/Script/ScriptMgr.cpp | 11 +- src/world/ServerMgr.cpp | 29 ++--- src/world/Territory/Territory.cpp | 16 +-- src/world/mainGameServer.cpp | 6 +- 22 files changed, 223 insertions(+), 73 deletions(-) create mode 100644 src/common/Service.h diff --git a/src/api/main.cpp b/src/api/main.cpp index 32d4b794..011fb509 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -33,7 +33,7 @@ #include -Sapphire::Common::Util::CrashHandler crashHandler; +[[maybe_unused]] Sapphire::Common::Util::CrashHandler crashHandler; Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection > g_charaDb; Sapphire::Data::ExdDataGenerated g_exdDataGen; diff --git a/src/common/Service.h b/src/common/Service.h new file mode 100644 index 00000000..bcf3dc2f --- /dev/null +++ b/src/common/Service.h @@ -0,0 +1,114 @@ +#ifndef SAPPHIRE_SERVICE_H +#define SAPPHIRE_SERVICE_H + +#include +#include + +// stolen from: https://github.com/skypjack/entt/blob/master/src/entt/locator/locator.hpp + +namespace Sapphire::Common +{ + /** + * @brief Service locator, nothing more. + * + * A service locator can be used to do what it promises: locate services.
+ * Usually service locators are tightly bound to the services they expose and + * thus it's hard to define a general purpose class to do that. This template + * based implementation tries to fill the gap and to get rid of the burden of + * defining a different specific locator for each application. + * + * @tparam SvcType Type of service managed by the locator. + */ + template< typename SvcType > + struct Service + { + /*! @brief Type of service offered. */ + using ServiceType = SvcType; + + /*! @brief Default constructor, deleted on purpose. */ + Service() = delete; + + /*! @brief Default destructor, deleted on purpose. */ + ~Service() = delete; + + /** + * @brief Tests if a valid service implementation is set. + * @return True if the service is set, false otherwise. + */ + static bool empty() noexcept + { + return !static_cast< bool >( service ); + } + + /** + * @brief Returns a weak pointer to a service implementation, if any. + * + * Clients of a service shouldn't retain references to it. The recommended + * way is to retrieve the service implementation currently set each and + * every time the need of using it arises. Otherwise users can incur in + * unexpected behaviors. + * + * @return A reference to the service implementation currently set, if any. + */ + static std::weak_ptr< SvcType > get() noexcept + { + return service; + } + + /** + * @brief Returns a weak reference to a service implementation, if any. + * + * Clients of a service shouldn't retain references to it. The recommended + * way is to retrieve the service implementation currently set each and + * every time the need of using it arises. Otherwise users can incur in + * unexpected behaviors. + * + * @warning + * In case no service implementation has been set, a call to this function + * results in undefined behavior. + * + * @return A reference to the service implementation currently set, if any. + */ + static SvcType& ref() noexcept + { + return *service; + } + + /** + * @brief Sets or replaces a service. + * @tparam Impl Type of the new service to use. + * @tparam Args Types of arguments to use to construct the service. + * @param args Parameters to use to construct the service. + */ + template< typename Impl = SvcType, typename... Args > + static void set( Args&& ... args ) + { + service = std::make_shared< Impl >( std::forward< Args >( args )... ); + } + + /** + * @brief Sets or replaces a service. + * @param ptr Service to use to replace the current one. + */ + static void set( std::shared_ptr< SvcType > ptr ) + { + assert( static_cast< bool >( ptr ) ); + service = std::move( ptr ); + } + + /** + * @brief Resets a service. + * + * The service is no longer valid after a reset. + */ + static void reset() + { + service.reset(); + } + + private: + inline static std::shared_ptr< SvcType > service = nullptr; + }; +} + +#endif //SAPPHIRE_SERVICE_H diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index 990f500d..ed6c09d4 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -8,7 +8,7 @@ #include #include -Sapphire::Common::Util::CrashHandler crashHandler; +[[maybe_unused]] Sapphire::Common::Util::CrashHandler crashHandler; namespace fs = std::filesystem; diff --git a/src/lobby/mainLobbyServer.cpp b/src/lobby/mainLobbyServer.cpp index eb3c7653..0b16ff26 100644 --- a/src/lobby/mainLobbyServer.cpp +++ b/src/lobby/mainLobbyServer.cpp @@ -2,7 +2,7 @@ #include -Sapphire::Common::Util::CrashHandler crashHandler; +[[maybe_unused]] Sapphire::Common::Util::CrashHandler crashHandler; Sapphire::Lobby::ServerLobby g_serverLobby( "lobby.ini" ); diff --git a/src/tools/event_object_parser/main.cpp b/src/tools/event_object_parser/main.cpp index 8d86dbb7..f1529fcb 100644 --- a/src/tools/event_object_parser/main.cpp +++ b/src/tools/event_object_parser/main.cpp @@ -28,7 +28,7 @@ #include -Sapphire::Common::Util::CrashHandler crashHandler; +[[maybe_unused]] Sapphire::Common::Util::CrashHandler crashHandler; Sapphire::Data::ExdDataGenerated g_exdData; using namespace Sapphire; diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp index e2beba0e..cb997b6f 100644 --- a/src/tools/exd_struct_test/main.cpp +++ b/src/tools/exd_struct_test/main.cpp @@ -24,7 +24,7 @@ #include -Sapphire::Common::Util::CrashHandler crashHandler; +[[maybe_unused]] Sapphire::Common::Util::CrashHandler crashHandler; Sapphire::Data::ExdDataGenerated g_exdData; xiv::dat::GameData* gameData = nullptr; diff --git a/src/tools/questbattle_bruteforce/main.cpp b/src/tools/questbattle_bruteforce/main.cpp index 7aa34fbd..d8c1c6d4 100644 --- a/src/tools/questbattle_bruteforce/main.cpp +++ b/src/tools/questbattle_bruteforce/main.cpp @@ -20,7 +20,7 @@ #include -Sapphire::Common::Util::CrashHandler crashHandler; +[[maybe_unused]] Sapphire::Common::Util::CrashHandler crashHandler; Sapphire::Data::ExdDataGenerated g_exdData; xiv::dat::GameData* gameData = nullptr; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 8677d001..8565e7a4 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "Session.h" #include "Player.h" @@ -114,8 +115,8 @@ Sapphire::Entity::Player::~Player() void Sapphire::Entity::Player::injectPacket( const std::string& path ) { - auto pServerZone = m_pFw->get< World::ServerMgr >(); - auto session = pServerZone->getSession( getId() ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto session = serverMgr.getSession( getId() ); if( session ) session->getZoneConnection()->injectPacket( path, *this ); } @@ -1257,8 +1258,8 @@ const uint8_t* Sapphire::Entity::Player::getGcRankArray() const void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket ) { - auto pServerZone = m_pFw->get< World::ServerMgr >(); - auto pSession = pServerZone->getSession( m_id ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto pSession = serverMgr.getSession( m_id ); if( !pSession ) return; @@ -1272,8 +1273,8 @@ void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr void Sapphire::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket ) { - auto pServerZone = m_pFw->get< World::ServerMgr >(); - auto pSession = pServerZone->getSession( m_id ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto pSession = serverMgr.getSession( m_id ); if( !pSession ) return; @@ -1689,8 +1690,8 @@ void Sapphire::Entity::Player::sendZonePackets() if( isLogin() ) { //Update player map in servermgr - in case player name has been changed - auto pServerMgr = m_pFw->get< World::ServerMgr >(); - pServerMgr->updatePlayerName( getId(), getName() ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + serverMgr.updatePlayerName( getId(), getName() ); } getCurrentTerritory()->onBeforePlayerZoneIn( *this ); diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index 08f830e4..e8d79f5a 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket.h" @@ -341,8 +342,9 @@ void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId, void Sapphire::Entity::Player::onLogin() { - auto pServerMgr = m_pFw->get< Sapphire::World::ServerMgr >(); - auto motd = pServerMgr->getConfig().motd; + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + + auto motd = serverMgr.getConfig().motd; std::istringstream ss( motd ); std::string msg; diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index bba8c523..98a7480e 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include "DebugCommand/DebugCommand.h" #include "DebugCommandMgr.h" @@ -372,6 +373,8 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + std::string subCommand; std::string params = ""; @@ -418,9 +421,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& } else if( subCommand == "bnpc" ) { - auto serverZone = framework()->get< World::ServerMgr >(); - - auto bNpcTemplate = serverZone->getBNpcTemplate( params ); + auto bNpcTemplate = serverMgr.getBNpcTemplate( params ); if( !bNpcTemplate ) { @@ -577,8 +578,9 @@ void Sapphire::World::Manager::DebugCommandMgr::injectPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = framework()->get< World::ServerMgr >(); - auto pSession = pServerZone->getSession( player.getId() ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + + auto pSession = serverMgr.getSession( player.getId() ); if( pSession ) pSession->getZoneConnection()->injectPacket( data + 7, player ); } @@ -586,8 +588,9 @@ Sapphire::World::Manager::DebugCommandMgr::injectPacket( char* data, Entity::Pla void Sapphire::World::Manager::DebugCommandMgr::injectChatPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = framework()->get< World::ServerMgr >(); - auto pSession = pServerZone->getSession( player.getId() ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + + auto pSession = serverMgr.getSession( player.getId() ); if( pSession ) pSession->getChatConnection()->injectPacket( data + 8, player ); } @@ -595,7 +598,8 @@ void Sapphire::World::Manager::DebugCommandMgr::injectChatPacket( char* data, En void Sapphire::World::Manager::DebugCommandMgr::replay( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = framework()->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + std::string subCommand; std::string params = ""; @@ -620,19 +624,19 @@ void Sapphire::World::Manager::DebugCommandMgr::replay( char* data, Entity::Play if( subCommand == "start" ) { - auto pSession = pServerZone->getSession( player.getId() ); + auto pSession = serverMgr.getSession( player.getId() ); if( pSession ) pSession->startReplay( params ); } else if( subCommand == "stop" ) { - auto pSession = pServerZone->getSession( player.getId() ); + auto pSession = serverMgr.getSession( player.getId() ); if( pSession ) pSession->stopReplay(); } else if( subCommand == "info" ) { - auto pSession = pServerZone->getSession( player.getId() ); + auto pSession = serverMgr.getSession( player.getId() ); if( pSession ) pSession->sendReplayInfo(); } @@ -695,10 +699,11 @@ void Sapphire::World::Manager::DebugCommandMgr::serverInfo( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = framework()->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + player.sendDebug( "SapphireZone {0} \nRev: {1}", Version::VERSION, Version::GIT_HASH ); player.sendDebug( "Compiled: " __DATE__ " " __TIME__ ); - player.sendDebug( "Sessions: {0}", pServerZone->getSessionCount() ); + player.sendDebug( "Sessions: {0}", serverMgr.getSessionCount() ); } void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Player& player, diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 43d697ee..ff3e0b39 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -10,6 +10,7 @@ #include #include +#include #include "Actor/Player.h" #include "Actor/EventObject.h" @@ -310,6 +311,8 @@ Sapphire::LandPtr Sapphire::World::Manager::HousingMgr::getLandByOwnerId( uint32 void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& player, const Common::LandIdent ident ) { + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + player.setActiveLand( static_cast< uint8_t >( ident.landId ), static_cast< uint8_t >( ident.wardNum ) ); auto landSetId = toLandSetId( static_cast< uint16_t >( ident.territoryTypeId ), static_cast< uint8_t >( ident.wardNum ) ); @@ -336,7 +339,8 @@ void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& pl } uint32_t playerId = static_cast< uint32_t >( land->getOwnerId() ); - std::string playerName = framework()->get< World::ServerMgr >()->getPlayerNameFromDb( playerId ); + + std::string playerName = serverMgr.getPlayerNameFromDb( playerId ); memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); @@ -463,6 +467,8 @@ bool Sapphire::World::Manager::HousingMgr::relinquishLand( Entity::Player& playe void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ) { + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -509,7 +515,7 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla entry.infoFlags |= Common::WardlandFlags::IsEstateOwned; auto owner = land->getOwnerId(); - auto playerName = framework()->get< World::ServerMgr >()->getPlayerNameFromDb( static_cast< uint32_t >( owner ) ); + auto playerName = serverMgr.getPlayerNameFromDb( static_cast< uint32_t >( owner ) ); memcpy( &entry.estateOwnerName, playerName.c_str(), playerName.size() ); break; diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 916f94a6..25d7458b 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -5,6 +5,7 @@ #include "ServerMgr.h" #include +#include #include "Actor/Player.h" @@ -72,7 +73,8 @@ bool Sapphire::World::Manager::TerritoryMgr::init() return false; } - auto& cfg = framework()->get< World::ServerMgr >()->getConfig(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto& cfg = serverMgr.getConfig(); m_inRangeDistance = cfg.network.inRangeDistance; diff --git a/src/world/Navi/NaviProvider.cpp b/src/world/Navi/NaviProvider.cpp index fc05f9bf..15569ba0 100644 --- a/src/world/Navi/NaviProvider.cpp +++ b/src/world/Navi/NaviProvider.cpp @@ -17,6 +17,7 @@ #include #include #include +#include Sapphire::World::Navi::NaviProvider::NaviProvider( const std::string& internalName, FrameworkPtr pFw ) : m_naviMesh( nullptr ), @@ -32,7 +33,8 @@ Sapphire::World::Navi::NaviProvider::NaviProvider( const std::string& internalNa bool Sapphire::World::Navi::NaviProvider::init() { - auto& cfg = m_pFw->get< Sapphire::World::ServerMgr >()->getConfig(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto& cfg = serverMgr.getConfig(); auto meshesFolder = std::filesystem::path( cfg.navigation.meshPath ); auto meshFolder = meshesFolder / std::filesystem::path( m_internalName ); diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index fd8fa095..68ca997a 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "Territory/Territory.h" @@ -380,7 +381,7 @@ void Sapphire::Network::GameConnection::injectPacket( const std::string& packetp void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, const std::vector< Sapphire::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) { - auto pServerZone = m_pFw->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); // if a session is set, update the last time it recieved a game packet if( m_pSession ) @@ -397,18 +398,18 @@ void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network:: auto pCon = std::static_pointer_cast< GameConnection, Connection >( shared_from_this() ); // try to retrieve the session for this id - auto session = pServerZone->getSession( playerId ); + auto session = serverMgr.getSession( playerId ); if( !session ) { Logger::info( "[{0}] Session not registered, creating", id ); // return; - if( !pServerZone->createSession( playerId ) ) + if( !serverMgr.createSession( playerId ) ) { disconnect(); return; } - session = pServerZone->getSession( playerId ); + session = serverMgr.getSession( playerId ); } //TODO: Catch more things in lobby and send real errors else if( !session->isValid() || ( session->getPlayer() && session->getPlayer()->getLastPing() != 0 ) ) diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index b6decf1b..374a5bf3 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -34,6 +34,7 @@ #include "Forwards.h" #include "Framework.h" #include +#include using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -45,7 +46,8 @@ void examineHandler( Sapphire::FrameworkPtr pFw, Sapphire::Entity::Player& playe { using namespace Sapphire; - auto pSession = pFw->get< World::ServerMgr >()->getSession( targetId ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto pSession = serverMgr.getSession( targetId ); if( pSession ) { auto pTarget = pSession->getPlayer(); diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index 77bd4380..d01e3a0e 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -8,6 +8,7 @@ #include #include +#include #include "Network/GameConnection.h" @@ -594,7 +595,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, if( player.getGmRank() <= 0 ) return; - auto pServerZone = pFw->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcGmCommand2 >( inPacket ); @@ -608,7 +609,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, Logger::debug( "{0} used GM2 commandId: {1}, params: {2}, {3}, {4}, {5}, target: {6}", player.getName(), commandId, param1, param2, param3, param4, target ); - auto targetSession = pServerZone->getSession( target ); + auto targetSession = serverMgr.getSession( target ); Sapphire::Entity::CharaPtr targetActor; if( targetSession != nullptr ) diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 5e23045d..c2373960 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include "Network/GameConnection.h" @@ -120,7 +121,8 @@ void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( Framewor { auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x10 ] ); - auto pSession = pFw->get< World::ServerMgr >()->getSession( targetId ); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto pSession = serverMgr.getSession( targetId ); Logger::debug( "reqExamineSearchCommentHandler: {0}", targetId ); @@ -148,7 +150,9 @@ void Sapphire::Network::GameConnection::reqExamineFcInfo( FrameworkPtr pFw, { auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x18 ] ); - auto pSession = pFw->get< World::ServerMgr >()->getSession( targetId ); + + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto pSession = serverMgr.getSession( targetId ); Logger::debug( "reqExamineFcInfo: {0}", targetId ); @@ -566,9 +570,9 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw, { const auto packet = ZoneChannelPacket< Client::FFXIVIpcTellHandler >( inPacket ); - auto pZoneServer = pFw->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); - auto pSession = pZoneServer->getSession( packet.data().targetPCName ); + auto pSession = serverMgr.getSession( packet.data().targetPCName ); if( !pSession ) { diff --git a/src/world/Script/NativeScriptMgr.cpp b/src/world/Script/NativeScriptMgr.cpp index 2cf8fa37..b8392351 100644 --- a/src/world/Script/NativeScriptMgr.cpp +++ b/src/world/Script/NativeScriptMgr.cpp @@ -1,6 +1,7 @@ #include "NativeScriptMgr.h" #include +#include #include "ServerMgr.h" #include "Framework.h" @@ -124,8 +125,9 @@ namespace Sapphire::Scripting NativeScriptMgr::NativeScriptMgr( FrameworkPtr pFw ) : World::Manager::BaseManager( pFw ) { - auto pServerMgr = framework()->get< Sapphire::World::ServerMgr >(); - m_loader.setCachePath( pServerMgr->getConfig().scripts.cachePath ); + auto& serverMgr = Common::Service< Sapphire::World::ServerMgr >::ref(); + + m_loader.setCachePath( serverMgr.getConfig().scripts.cachePath ); } diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index fc0a7736..0593cda1 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "Territory/Territory.h" #include "Territory/InstanceContent.h" @@ -49,9 +50,9 @@ void Sapphire::Scripting::ScriptMgr::update() bool Sapphire::Scripting::ScriptMgr::init() { std::set< std::string > files; - auto pServerMgr = framework()->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); - auto status = loadDir( pServerMgr->getConfig().scripts.path, files, m_nativeScriptMgr->getModuleExtension() ); + auto status = loadDir( serverMgr.getConfig().scripts.path, files, m_nativeScriptMgr->getModuleExtension() ); if( !status ) { @@ -81,12 +82,12 @@ bool Sapphire::Scripting::ScriptMgr::init() void Sapphire::Scripting::ScriptMgr::watchDirectories() { - auto pServerMgr = framework()->get< World::ServerMgr >(); - auto shouldWatch = pServerMgr->getConfig().scripts.hotSwap; + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + auto shouldWatch = serverMgr.getConfig().scripts.hotSwap; if( !shouldWatch ) return; - Watchdog::watchMany( pServerMgr->getConfig().scripts.path + "*" + + Watchdog::watchMany( serverMgr.getConfig().scripts.path + "*" + m_nativeScriptMgr->getModuleExtension(), [ this ]( const std::vector< ci::fs::path >& paths ) { diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 460b8c98..5b7159ee 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -28,6 +28,7 @@ #include #include +#include #include "Manager/LinkshellMgr.h" #include "Manager/TerritoryMgr.h" #include "Manager/HousingMgr.h" @@ -66,20 +67,20 @@ size_t Sapphire::World::ServerMgr::getSessionCount() const bool Sapphire::World::ServerMgr::loadSettings( int32_t argc, char* argv[] ) { - auto pConfig = framework()->get< Common::ConfigMgr >(); + auto& configMgr = Common::Service< Common::ConfigMgr >::ref(); Logger::info( "Loading config {0}", m_configName ); bool failedLoad = false; // load global cfg first - if( !pConfig->loadGlobalConfig( m_config.global ) ) + if( !configMgr.loadGlobalConfig( m_config.global ) ) { Logger::fatal( "Error loading config global.ini, copying default..." ); failedLoad = true; } - if( !pConfig->loadConfig( m_configName ) ) + if( !configMgr.loadConfig( m_configName ) ) { Logger::fatal( "Error loading config {0}", m_configName ); failedLoad = true; @@ -93,20 +94,20 @@ bool Sapphire::World::ServerMgr::loadSettings( int32_t argc, char* argv[] ) } // load world specific config - m_config.scripts.hotSwap = pConfig->getValue( "Scripts", "HotSwap", true ); - m_config.scripts.path = pConfig->getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ); - m_config.scripts.cachePath = pConfig->getValue< std::string >( "Scripts", "CachePath", "./cache/" ); + m_config.scripts.hotSwap = configMgr.getValue( "Scripts", "HotSwap", true ); + m_config.scripts.path = configMgr.getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ); + m_config.scripts.cachePath = configMgr.getValue< std::string >( "Scripts", "CachePath", "./cache/" ); - m_config.navigation.meshPath = pConfig->getValue< std::string >( "Navigation", "MeshPath", "navi" ); + m_config.navigation.meshPath = configMgr.getValue< std::string >( "Navigation", "MeshPath", "navi" ); - m_config.network.disconnectTimeout = pConfig->getValue< uint16_t >( "Network", "DisconnectTimeout", 20 ); - m_config.network.listenIp = pConfig->getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); - m_config.network.listenPort = pConfig->getValue< uint16_t >( "Network", "ListenPort", 54992 ); - m_config.network.inRangeDistance = pConfig->getValue< float >( "Network", "InRangeDistance", 80.f ); + m_config.network.disconnectTimeout = configMgr.getValue< uint16_t >( "Network", "DisconnectTimeout", 20 ); + m_config.network.listenIp = configMgr.getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); + m_config.network.listenPort = configMgr.getValue< uint16_t >( "Network", "ListenPort", 54992 ); + m_config.network.inRangeDistance = configMgr.getValue< float >( "Network", "InRangeDistance", 80.f ); - m_config.motd = pConfig->getValue< std::string >( "General", "MotD", "" ); + m_config.motd = configMgr.getValue< std::string >( "General", "MotD", "" ); - m_config.housing.defaultEstateName = pConfig->getValue< std::string >( "Housing", "DefaultEstateName", "Estate #{}" ); + m_config.housing.defaultEstateName = configMgr.getValue< std::string >( "Housing", "DefaultEstateName", "Estate #{}" ); m_port = m_config.network.listenPort; m_ip = m_config.network.listenIp; @@ -124,7 +125,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) printBanner(); auto pConfig = std::make_shared< Common::ConfigMgr >(); - framework()->set< Common::ConfigMgr >( pConfig ); + Common::Service< Common::ConfigMgr >::set( pConfig ); if( !loadSettings( argc, argv ) ) { Logger::fatal( "Unable to load settings!" ); diff --git a/src/world/Territory/Territory.cpp b/src/world/Territory/Territory.cpp index 910a7785..07a6269f 100644 --- a/src/world/Territory/Territory.cpp +++ b/src/world/Territory/Territory.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include "Territory.h" #include "InstanceContent.h" @@ -251,7 +252,6 @@ void Sapphire::Territory::pushActor( Entity::ActorPtr pActor ) agentId = m_pNaviProvider->addAgent( *pPlayer ); pPlayer->setAgentId( agentId ); - auto pServerZone = m_pFw->get< World::ServerMgr >(); m_playerMap[ pPlayer->getId() ] = pPlayer; updateCellActivity( cx, cy, 2 ); } @@ -319,7 +319,8 @@ void Sapphire::Territory::queuePacketForRange( Entity::Player& sourcePlayer, uin if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) return; - auto pServerZone = m_pFw->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + for( auto entry : m_playerMap ) { auto player = entry.second; @@ -329,7 +330,7 @@ void Sapphire::Territory::queuePacketForRange( Entity::Player& sourcePlayer, uin if( ( distance < range ) && sourcePlayer.getId() != player->getId() ) { - auto pSession = pServerZone->getSession( player->getId() ); + auto pSession = serverMgr.getSession( player->getId() ); //pPacketEntry->setValAt< uint32_t >( 0x08, player->getId() ); if( pSession ) pSession->getZoneConnection()->queueOutPacket( pPacketEntry ); @@ -345,14 +346,15 @@ void Sapphire::Territory::queuePacketForZone( Entity::Player& sourcePlayer, if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) return; - auto pServerZone = m_pFw->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); + for( auto entry : m_playerMap ) { auto player = entry.second; if( ( sourcePlayer.getId() != player->getId() ) || ( ( sourcePlayer.getId() == player->getId() ) && forSelf ) ) { - auto pSession = pServerZone->getSession( player->getId() ); + auto pSession = serverMgr.getSession( player->getId() ); if( pSession ) pSession->getZoneConnection()->queueOutPacket( pPacketEntry ); } @@ -874,9 +876,9 @@ void Sapphire::Territory::updateSpawnPoints() { if( !point->getLinkedBNpc() && ( Util::getTimeSeconds() - point->getTimeOfDeath() ) > 60 ) { - auto serverZone = m_pFw->get< World::ServerMgr >(); + auto& serverMgr = Common::Service< World::ServerMgr >::ref(); - auto bNpcTemplate = serverZone->getBNpcTemplate( group.getTemplateId() ); + auto bNpcTemplate = serverMgr.getBNpcTemplate( group.getTemplateId() ); if( !bNpcTemplate ) { diff --git a/src/world/mainGameServer.cpp b/src/world/mainGameServer.cpp index 2c77ea66..93f3d139 100644 --- a/src/world/mainGameServer.cpp +++ b/src/world/mainGameServer.cpp @@ -4,17 +4,21 @@ #include #include +#include using namespace Sapphire; using namespace Sapphire::World; +[[maybe_unused]] Common::Util::CrashHandler crashHandler; int main( int32_t argc, char* argv[] ) { auto pFramework = make_Framework(); auto pServer = std::make_shared< ServerMgr >( "world.ini", pFramework ); - pFramework->set< ServerMgr >( pServer ); + + Common::Service< ServerMgr >::set( pServer ); + pServer->run( argc, argv ); return 0; } From 41e6d73ff3c5d7f1eaa990c6ddfc60a615f74b3b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 1 Mar 2020 01:00:57 +1100 Subject: [PATCH 4/7] move to new service locator --- src/api/main.cpp | 1 - src/common/Database/DbConnection.cpp | 1 - src/common/Database/DbWorkerPool.cpp | 1 - src/common/Framework.cpp | 2 - src/common/Framework.h | 37 ----- src/common/Network/Connection.cpp | 6 +- src/common/Network/Connection.h | 7 +- src/lobby/ServerLobby.cpp | 1 - src/scripts/common/GilShop.cpp | 7 +- src/scripts/common/aethernet/Aetheryte.cpp | 9 +- .../common/aethernet/HousingAethernet.cpp | 12 +- .../common/eobj/HousingEstateEntrance.cpp | 9 +- .../common/housing/CmnDefHousingSignboard.cpp | 9 +- src/scripts/common/warptaxi/WarpTaxi.cpp | 20 ++- src/scripts/quest/ManFst001.cpp | 6 +- src/scripts/quest/ManFst002.cpp | 6 +- src/scripts/quest/ManFst003.cpp | 6 +- src/scripts/quest/ManFst004.cpp | 6 +- src/scripts/quest/ManFst005.cpp | 13 +- src/scripts/quest/ManSea001.cpp | 6 +- src/scripts/quest/ManSea002.cpp | 6 +- src/scripts/quest/ManSea003.cpp | 6 +- src/scripts/quest/ManWil001.cpp | 6 +- src/scripts/quest/ManWil002.cpp | 6 +- src/scripts/quest/ManWil003.cpp | 6 +- src/scripts/quest/ManWil004.cpp | 6 +- src/scripts/quest/classquest/ClsLnc000.cpp | 6 +- .../quest/subquest/gridania/SubFst001.cpp | 6 +- .../quest/subquest/gridania/SubFst002.cpp | 6 +- .../quest/subquest/gridania/SubFst003.cpp | 6 +- .../quest/subquest/gridania/SubFst004.cpp | 6 +- .../quest/subquest/gridania/SubFst005.cpp | 6 +- .../quest/subquest/gridania/SubFst008.cpp | 6 +- .../quest/subquest/gridania/SubFst009.cpp | 6 +- .../quest/subquest/gridania/SubFst010.cpp | 6 +- .../quest/subquest/gridania/SubFst011.cpp | 6 +- .../quest/subquest/gridania/SubFst013.cpp | 10 +- .../quest/subquest/gridania/SubFst014.cpp | 6 +- .../quest/subquest/gridania/SubFst015.cpp | 6 +- .../quest/subquest/gridania/SubFst019.cpp | 6 +- .../quest/subquest/gridania/SubFst026.cpp | 6 +- .../quest/subquest/gridania/SubFst029.cpp | 6 +- .../quest/subquest/gridania/SubFst030.cpp | 6 +- .../quest/subquest/gridania/SubFst034.cpp | 6 +- .../quest/subquest/gridania/SubFst039.cpp | 6 +- .../quest/subquest/gridania/SubFst041.cpp | 6 +- .../quest/subquest/gridania/SubFst045.cpp | 6 +- .../quest/subquest/limsa/SubSea001.cpp | 6 +- .../quest/subquest/limsa/SubSea012.cpp | 6 +- .../quest/subquest/uldah/SubWil000.cpp | 6 +- .../quest/subquest/uldah/SubWil001.cpp | 6 +- .../quest/subquest/uldah/SubWil002.cpp | 6 +- .../quest/subquest/uldah/SubWil004.cpp | 6 +- .../quest/subquest/uldah/SubWil006.cpp | 6 +- .../quest/subquest/uldah/SubWil007.cpp | 10 +- .../quest/subquest/uldah/SubWil018.cpp | 6 +- .../quest/subquest/uldah/SubWil019.cpp | 6 +- .../quest/subquest/uldah/SubWil020.cpp | 6 +- .../quest/subquest/uldah/SubWil021.cpp | 6 +- .../quest/subquest/uldah/SubWil022.cpp | 6 +- .../quest/subquest/uldah/SubWil027.cpp | 6 +- .../quest/subquest/uldah/SubWil028.cpp | 6 +- .../quest/subquest/uldah/SubWil029.cpp | 6 +- src/tools/quest_parser/main.cpp | 2 +- src/world/Action/Action.cpp | 35 ++-- src/world/Action/Action.h | 5 +- src/world/Action/EventAction.cpp | 10 +- src/world/Action/EventAction.h | 2 +- src/world/Action/ItemAction.cpp | 3 +- src/world/Action/ItemAction.h | 2 +- src/world/Action/MountAction.cpp | 4 +- src/world/Action/MountAction.h | 2 +- src/world/Actor/BNpc.cpp | 30 ++-- src/world/Actor/BNpc.h | 4 +- src/world/Actor/Chara.cpp | 14 +- src/world/Actor/Chara.h | 3 +- src/world/Actor/Npc.cpp | 5 +- src/world/Actor/Npc.h | 2 +- src/world/Actor/Player.cpp | 140 ++++++++-------- src/world/Actor/Player.h | 2 +- src/world/Actor/PlayerEvent.cpp | 3 +- src/world/Actor/PlayerInventory.cpp | 51 +++--- src/world/Actor/PlayerQuest.cpp | 8 +- src/world/Actor/PlayerSql.cpp | 149 ++++++++--------- src/world/Inventory/HousingItem.cpp | 4 +- src/world/Inventory/HousingItem.h | 2 +- src/world/Inventory/Item.cpp | 11 +- src/world/Inventory/Item.h | 3 +- src/world/Inventory/ItemContainer.cpp | 9 +- src/world/Inventory/ItemContainer.h | 3 +- src/world/Manager/ActionMgr.cpp | 15 +- src/world/Manager/ActionMgr.h | 5 +- src/world/Manager/BaseManager.h | 27 ---- src/world/Manager/DebugCommandMgr.cpp | 54 +++---- src/world/Manager/DebugCommandMgr.h | 5 +- src/world/Manager/EventMgr.cpp | 30 ++-- src/world/Manager/EventMgr.h | 5 +- src/world/Manager/HousingMgr.cpp | 150 +++++++++--------- src/world/Manager/HousingMgr.h | 5 +- src/world/Manager/InventoryMgr.cpp | 46 +++--- src/world/Manager/InventoryMgr.h | 5 +- src/world/Manager/ItemMgr.cpp | 24 ++- src/world/Manager/ItemMgr.h | 5 +- src/world/Manager/LinkshellMgr.cpp | 12 +- src/world/Manager/LinkshellMgr.h | 5 +- src/world/Manager/MarketMgr.cpp | 13 +- src/world/Manager/MarketMgr.h | 5 +- src/world/Manager/NaviMgr.cpp | 8 +- src/world/Manager/NaviMgr.h | 9 +- src/world/Manager/PlayerMgr.cpp | 28 ++-- src/world/Manager/PlayerMgr.h | 5 +- src/world/Manager/RNGMgr.cpp | 3 +- src/world/Manager/RNGMgr.h | 8 +- src/world/Manager/ShopMgr.cpp | 16 +- src/world/Manager/ShopMgr.h | 5 +- src/world/Manager/TerritoryMgr.cpp | 61 ++++--- src/world/Manager/TerritoryMgr.h | 5 +- src/world/Math/CalcBattle.cpp | 8 +- src/world/Math/CalcStats.cpp | 10 +- src/world/Math/CalcStats.h | 2 +- src/world/Navi/NaviProvider.cpp | 10 +- src/world/Navi/NaviProvider.h | 3 +- src/world/Network/GameConnection.cpp | 12 +- src/world/Network/GameConnection.h | 7 +- src/world/Network/Handlers/ActionHandler.cpp | 37 ++--- src/world/Network/Handlers/CFHandlers.cpp | 22 ++- .../Network/Handlers/ClientTriggerHandler.cpp | 94 +++++------ src/world/Network/Handlers/EventHandlers.cpp | 92 +++++------ .../Network/Handlers/GMCommandHandlers.cpp | 23 ++- .../Network/Handlers/InventoryHandler.cpp | 5 +- src/world/Network/Handlers/PacketHandlers.cpp | 140 +++++++--------- src/world/Script/NativeScriptApi.cpp | 11 -- src/world/Script/NativeScriptApi.h | 16 -- src/world/Script/NativeScriptMgr.cpp | 11 +- src/world/Script/NativeScriptMgr.h | 7 +- src/world/Script/ScriptLoader.cpp | 2 - src/world/Script/ScriptMgr.cpp | 18 +-- src/world/Script/ScriptMgr.h | 5 +- src/world/ServerMgr.cpp | 100 ++++++------ src/world/ServerMgr.h | 7 +- src/world/Session.cpp | 5 +- src/world/Session.h | 4 +- src/world/StatusEffect/StatusEffect.cpp | 24 +-- src/world/StatusEffect/StatusEffect.h | 3 +- src/world/Territory/House.cpp | 13 +- src/world/Territory/House.h | 3 +- .../Housing/HousingInteriorTerritory.cpp | 23 ++- .../Housing/HousingInteriorTerritory.h | 3 +- src/world/Territory/HousingZone.cpp | 36 ++--- src/world/Territory/HousingZone.h | 4 +- src/world/Territory/InstanceContent.cpp | 23 ++- src/world/Territory/InstanceContent.h | 3 +- src/world/Territory/InstanceObjectCache.cpp | 15 +- src/world/Territory/InstanceObjectCache.h | 2 +- src/world/Territory/Land.cpp | 27 ++-- src/world/Territory/Land.h | 4 +- src/world/Territory/QuestBattle.cpp | 39 ++--- src/world/Territory/QuestBattle.h | 3 +- src/world/Territory/Territory.cpp | 67 ++++---- src/world/Territory/Territory.h | 3 +- src/world/mainGameServer.cpp | 4 +- 161 files changed, 1053 insertions(+), 1395 deletions(-) delete mode 100644 src/common/Framework.cpp delete mode 100644 src/common/Framework.h delete mode 100644 src/world/Manager/BaseManager.h diff --git a/src/api/main.cpp b/src/api/main.cpp index 011fb509..edced26a 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -26,7 +26,6 @@ #include #include -#include #include #include "SapphireApi.h" diff --git a/src/common/Database/DbConnection.cpp b/src/common/Database/DbConnection.cpp index f03b7f9e..7013d626 100644 --- a/src/common/Database/DbConnection.cpp +++ b/src/common/Database/DbConnection.cpp @@ -4,7 +4,6 @@ #include "Logging/Logger.h" #include "PreparedStatement.h" -#include "Framework.h" Sapphire::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) : m_reconnecting( false ), diff --git a/src/common/Database/DbWorkerPool.cpp b/src/common/Database/DbWorkerPool.cpp index 81b9d96d..09a24bfb 100644 --- a/src/common/Database/DbWorkerPool.cpp +++ b/src/common/Database/DbWorkerPool.cpp @@ -5,7 +5,6 @@ #include "StatementTask.h" #include "Operation.h" #include "ZoneDbConnection.h" -#include "Framework.h" #include "Logging/Logger.h" #include diff --git a/src/common/Framework.cpp b/src/common/Framework.cpp deleted file mode 100644 index 7243f69b..00000000 --- a/src/common/Framework.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Framework.h" -#include "Logging/Logger.h" diff --git a/src/common/Framework.h b/src/common/Framework.h deleted file mode 100644 index 5714bdb3..00000000 --- a/src/common/Framework.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _CORE_FRAMEWORK_H -#define _CORE_FRAMEWORK_H - -#include -#include -#include -#include -#include - -namespace Sapphire -{ - - class Framework - { - using TypenameToObject = std::map< std::type_index, std::shared_ptr< void > >; - TypenameToObject ObjectMap; - - public: - template< typename T > - std::shared_ptr< T > get() - { - auto iType = ObjectMap.find( typeid( T ) ); - assert( !( iType == ObjectMap.end() ) ); - return std::static_pointer_cast< T >( iType->second ); - } - - template< typename T > - void set( std::shared_ptr< T > value ) - { - assert( value ); // why would anyone store nullptrs.... - ObjectMap[ typeid( T ) ] = value; - } - }; - -} - -#endif // _CORE_FRAMEWORK_H diff --git a/src/common/Network/Connection.cpp b/src/common/Network/Connection.cpp index 1bc9054a..a2e71f38 100644 --- a/src/common/Network/Connection.cpp +++ b/src/common/Network/Connection.cpp @@ -1,17 +1,15 @@ #include "Connection.h" #include "Hive.h" #include -#include "Framework.h" using namespace Sapphire; -Network::Connection::Connection( HivePtr hive, FrameworkPtr pFw ) : +Network::Connection::Connection( HivePtr hive ) : m_hive( hive ), m_socket( hive->getService() ), m_io_strand( hive->getService() ), m_receive_buffer_size( 32000 ), - m_error_state( 0 ), - m_pFw( pFw ) + m_error_state( 0 ) { } diff --git a/src/common/Network/Connection.h b/src/common/Network/Connection.h index ef5c4070..91f86aea 100644 --- a/src/common/Network/Connection.h +++ b/src/common/Network/Connection.h @@ -35,9 +35,8 @@ namespace Sapphire::Network std::list< std::vector< uint8_t > > m_pending_sends; int32_t m_receive_buffer_size; std::atomic< uint32_t > m_error_state; - FrameworkPtr m_pFw; - Connection( HivePtr hive, FrameworkPtr pFw ); + Connection( HivePtr hive ); virtual ~Connection(); @@ -141,13 +140,13 @@ namespace Sapphire::Network //----------------------------------------------------------------------------- template< class T > - std::shared_ptr< T > addServerToHive( const std::string& listenIp, uint32_t port, HivePtr pHive, FrameworkPtr pFw ) + std::shared_ptr< T > addServerToHive( const std::string& listenIp, uint32_t port, HivePtr pHive ) { try { AcceptorPtr acceptor( new Acceptor( pHive ) ); acceptor->listen( listenIp, port ); - std::shared_ptr< T > connection( new T( pHive, acceptor, pFw ) ); + std::shared_ptr< T > connection( new T( pHive, acceptor ) ); acceptor->accept( connection ); return connection; } diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index b85380c9..1ad5e068 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -10,7 +10,6 @@ #include #include -#include "Framework.h" #include "ServerLobby.h" diff --git a/src/scripts/common/GilShop.cpp b/src/scripts/common/GilShop.cpp index 8e7afe0e..93b93d9f 100644 --- a/src/scripts/common/GilShop.cpp +++ b/src/scripts/common/GilShop.cpp @@ -1,8 +1,8 @@ #include #include -#include #include +#include using namespace Sapphire; @@ -31,9 +31,10 @@ private: // buy if( result.param2 == 1 ) { - auto shopMgr = framework()->get< Sapphire::World::Manager::ShopMgr >(); + auto& shopMgr = Common::Service< Sapphire::World::Manager::ShopMgr >::ref(); - shopMgr->purchaseGilShopItem( player, result.eventId, result.param3, result.param4 ); + + shopMgr.purchaseGilShopItem( player, result.eventId, result.param3, result.param4 ); } // sell diff --git a/src/scripts/common/aethernet/Aetheryte.cpp b/src/scripts/common/aethernet/Aetheryte.cpp index d7267d20..d4c1c68c 100644 --- a/src/scripts/common/aethernet/Aetheryte.cpp +++ b/src/scripts/common/aethernet/Aetheryte.cpp @@ -1,9 +1,8 @@ #include #include -#include #include - +#include using namespace Sapphire; @@ -109,11 +108,9 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pExdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); - if( !pExdData ) - return; + auto exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); - auto aetherInfo = pExdData->get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); + auto aetherInfo = exdData.get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); if( !aetherInfo ) return; diff --git a/src/scripts/common/aethernet/HousingAethernet.cpp b/src/scripts/common/aethernet/HousingAethernet.cpp index 5fcbbd04..1af780ad 100644 --- a/src/scripts/common/aethernet/HousingAethernet.cpp +++ b/src/scripts/common/aethernet/HousingAethernet.cpp @@ -1,10 +1,10 @@ #include #include -#include #include #include #include +#include using namespace Sapphire; @@ -21,16 +21,14 @@ public: { player.playScene( eventId, 0, HIDE_HOTBAR | NO_DEFAULT_CAMERA, [this, eventId]( Entity::Player& player, const Event::SceneResult& result ) { - auto pExdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); - if( !pExdData ) - return; + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); auto housingZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ); if( !housingZone ) return; // param2 is the index starting from 0 inside housingaethernet.exd, but the ID column starts at 0x001E0000........ wtf - auto pHousingAethernet = pExdData->get< Sapphire::Data::HousingAethernet >( getId() + result.param2 ); + auto pHousingAethernet = exdData.get< Sapphire::Data::HousingAethernet >( getId() + result.param2 ); if( !pHousingAethernet ) return; @@ -42,8 +40,8 @@ public: // moving a player inside an event will crash the game so we end it here player.eventFinish( eventId, 1 ); - auto playerMgr = framework()->get< Sapphire::World::Manager::PlayerMgr >(); - playerMgr->movePlayerToLandDestination( player, pHousingAethernet->level, housingZone->getWardNum() ); + auto& playerMgr = Common::Service< Sapphire::World::Manager::PlayerMgr >::ref(); + playerMgr.movePlayerToLandDestination( player, pHousingAethernet->level, housingZone->getWardNum() ); } ); } }; diff --git a/src/scripts/common/eobj/HousingEstateEntrance.cpp b/src/scripts/common/eobj/HousingEstateEntrance.cpp index e0447f31..2abc371b 100644 --- a/src/scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/scripts/common/eobj/HousingEstateEntrance.cpp @@ -1,11 +1,11 @@ #include #include +#include #include "Actor/EventObject.h" #include "Territory/HousingZone.h" #include "Manager/TerritoryMgr.h" #include "Territory/Land.h" -#include "Framework.h" using namespace Sapphire; @@ -26,9 +26,7 @@ public: if( result.param2 != 1 ) return; - auto terriMgr = framework()->get< Sapphire::World::Manager::TerritoryMgr >(); - if( !terriMgr ) - return; + auto& terriMgr = Common::Service< Sapphire::World::Manager::TerritoryMgr >::ref(); auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ); if( !zone ) @@ -40,7 +38,7 @@ public: ident.wardNum = zone->getWardNum(); ident.worldId = 67; - auto internalZone = terriMgr->findOrCreateHousingInterior( ident ); + auto internalZone = terriMgr.findOrCreateHousingInterior( ident ); if( !internalZone ) { // an error occurred during event movement @@ -60,6 +58,7 @@ public: switch( land->getSize() ) { + // todo: think there's actually a poprange for this? double czech case 0: { pos = { 0.1321167f, 0.f, 2.746273f }; diff --git a/src/scripts/common/housing/CmnDefHousingSignboard.cpp b/src/scripts/common/housing/CmnDefHousingSignboard.cpp index 21f13046..3de38035 100644 --- a/src/scripts/common/housing/CmnDefHousingSignboard.cpp +++ b/src/scripts/common/housing/CmnDefHousingSignboard.cpp @@ -5,7 +5,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -25,9 +25,6 @@ public: { auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result ) { - auto pFw = framework(); - if( !pFw ) - return LandPurchaseResult::ERR_INTERNAL; // Purchase Land if( result.param2 == 2 ) { @@ -36,9 +33,9 @@ public: auto pTerritory = player.getCurrentTerritory(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); - auto pHouMgr = pFw->get< HousingMgr >(); + auto& pHouMgr = Common::Service< HousingMgr >::ref(); - LandPurchaseResult res = pHouMgr->purchaseLand( player, activeLand.plot, + LandPurchaseResult res = pHouMgr.purchaseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); switch( res ) diff --git a/src/scripts/common/warptaxi/WarpTaxi.cpp b/src/scripts/common/warptaxi/WarpTaxi.cpp index dbf3b58d..c4eb8907 100644 --- a/src/scripts/common/warptaxi/WarpTaxi.cpp +++ b/src/scripts/common/warptaxi/WarpTaxi.cpp @@ -7,8 +7,8 @@ #include "Territory/InstanceObjectCache.h" #include -#include #include +#include using namespace Sapphire; @@ -32,16 +32,16 @@ public: player.eventFinish( 1310721, 0 ); player.eventFinish( getId(), 1 ); - auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); - auto pPopRange = framework()->get< Sapphire::InstanceObjectCache >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& popRange = Common::Service< Sapphire::InstanceObjectCache >::ref(); - auto warp = exdData->get< Sapphire::Data::Warp >( getId() ); + auto warp = exdData.get< Sapphire::Data::Warp >( getId() ); if( !warp ) return; - auto playerMgr = framework()->get< Sapphire::World::Manager::PlayerMgr >(); + auto& playerMgr = Common::Service< Sapphire::World::Manager::PlayerMgr >::ref(); - auto pPop = pPopRange->getPopRange( warp->territoryType, warp->popRange ); + auto pPop = popRange.getPopRange( warp->territoryType, warp->popRange ); if( !pPop ) { @@ -52,7 +52,7 @@ public: std::cout << "found!!"; } - playerMgr->movePlayerToLandDestination( player, warp->popRange, result.param3 ); + playerMgr.movePlayerToLandDestination( player, warp->popRange, result.param3 ); } else { @@ -75,11 +75,9 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); - if( !exdData ) - return; + auto exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); - auto warp = exdData->get< Sapphire::Data::Warp >( eventId ); + auto warp = exdData.get< Sapphire::Data::Warp >( eventId ); if( !warp ) return; diff --git a/src/scripts/quest/ManFst001.cpp b/src/scripts/quest/ManFst001.cpp index 1411a0d9..d21feff1 100644 --- a/src/scripts/quest/ManFst001.cpp +++ b/src/scripts/quest/ManFst001.cpp @@ -2,7 +2,7 @@ #include #include "Manager/EventMgr.h" #include "Event/EventHandler.h" -#include "Framework.h" +#include // Quest Script: ManFst001_00039 // Quest Name: Coming to Gridania @@ -96,8 +96,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) Scene00000( player ); diff --git a/src/scripts/quest/ManFst002.cpp b/src/scripts/quest/ManFst002.cpp index e7a2b364..a12c0929 100644 --- a/src/scripts/quest/ManFst002.cpp +++ b/src/scripts/quest/ManFst002.cpp @@ -2,7 +2,7 @@ #include #include "Event/EventHandler.h" #include "Manager/EventMgr.h" -#include "Framework.h" +#include // Quest Script: ManFst002_00124 // Quest Name: Close to Home @@ -193,8 +193,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) Scene00000( player ); diff --git a/src/scripts/quest/ManFst003.cpp b/src/scripts/quest/ManFst003.cpp index f9725a64..5cb09efc 100644 --- a/src/scripts/quest/ManFst003.cpp +++ b/src/scripts/quest/ManFst003.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManFst003_00123 // Quest Name: Close to Home @@ -82,8 +82,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/ManFst004.cpp b/src/scripts/quest/ManFst004.cpp index 6ec0b56a..cbb04d36 100644 --- a/src/scripts/quest/ManFst004.cpp +++ b/src/scripts/quest/ManFst004.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManFst004_00124 // Quest Name: Close to Home @@ -80,8 +80,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ManFst004::Actor0 ) { diff --git a/src/scripts/quest/ManFst005.cpp b/src/scripts/quest/ManFst005.cpp index 1089248b..d98391ce 100644 --- a/src/scripts/quest/ManFst005.cpp +++ b/src/scripts/quest/ManFst005.cpp @@ -2,7 +2,7 @@ #include "Manager/EventMgr.h" #include "Manager/TerritoryMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManFst005_00445 // Quest Name: Chasing Shadows @@ -61,8 +61,8 @@ class ManFst005 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { @@ -142,11 +142,10 @@ class ManFst005 : public Sapphire::ScriptAPI::EventScript { if( result.param2 == 1 ) { - auto pTeriMgr = framework()->get< Sapphire::World::Manager::TerritoryMgr >(); - if( !pTeriMgr ) - return; + auto& pTeriMgr = Common::Service< Sapphire::World::Manager::TerritoryMgr >::ref(); + player.eventFinish( result.eventId, 0 ); - pTeriMgr->createAndJoinQuestBattle( player, Questbattle0 ); + pTeriMgr.createAndJoinQuestBattle( player, Questbattle0 ); } } ); } diff --git a/src/scripts/quest/ManSea001.cpp b/src/scripts/quest/ManSea001.cpp index 0c54a0e7..b86751cb 100644 --- a/src/scripts/quest/ManSea001.cpp +++ b/src/scripts/quest/ManSea001.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManSea001_00107 // Quest Name: Coming to Limsa Lominsa @@ -142,8 +142,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) Scene00000( player ); diff --git a/src/scripts/quest/ManSea002.cpp b/src/scripts/quest/ManSea002.cpp index e6153df2..02e1be2e 100644 --- a/src/scripts/quest/ManSea002.cpp +++ b/src/scripts/quest/ManSea002.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManSea002_00108 // Quest Name: Close to Home @@ -48,8 +48,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) { diff --git a/src/scripts/quest/ManSea003.cpp b/src/scripts/quest/ManSea003.cpp index 2c9d712a..4b65a1a9 100644 --- a/src/scripts/quest/ManSea003.cpp +++ b/src/scripts/quest/ManSea003.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManSea003_00109 // Quest Name: Close to Home @@ -64,8 +64,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/ManWil001.cpp b/src/scripts/quest/ManWil001.cpp index 55fa454e..db4e804b 100644 --- a/src/scripts/quest/ManWil001.cpp +++ b/src/scripts/quest/ManWil001.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include // Quest Script: ManWil001_00594 // Quest Name: Coming to Ul'dah @@ -174,8 +174,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) { diff --git a/src/scripts/quest/ManWil002.cpp b/src/scripts/quest/ManWil002.cpp index 3c9a24bc..bb8cdae2 100644 --- a/src/scripts/quest/ManWil002.cpp +++ b/src/scripts/quest/ManWil002.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include // Quest Script: ManWil002_00568 // Quest Name: Close to Home @@ -70,8 +70,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/ManWil003.cpp b/src/scripts/quest/ManWil003.cpp index 1380b9c0..3b577cdd 100644 --- a/src/scripts/quest/ManWil003.cpp +++ b/src/scripts/quest/ManWil003.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include // Quest Script: ManWil003_00569 // Quest Name: Close to Home @@ -70,8 +70,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/ManWil004.cpp b/src/scripts/quest/ManWil004.cpp index aaa3b757..4d3e006f 100644 --- a/src/scripts/quest/ManWil004.cpp +++ b/src/scripts/quest/ManWil004.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include // Quest Script: ManWil004_00570 // Quest Name: Close to Home @@ -70,8 +70,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/classquest/ClsLnc000.cpp b/src/scripts/quest/classquest/ClsLnc000.cpp index 9cddc7a6..a73330a5 100644 --- a/src/scripts/quest/classquest/ClsLnc000.cpp +++ b/src/scripts/quest/classquest/ClsLnc000.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -57,8 +57,8 @@ class ClsLnc000 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = framework()->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst001.cpp b/src/scripts/quest/subquest/gridania/SubFst001.cpp index aa7ffdef..5dc93336 100644 --- a/src/scripts/quest/subquest/gridania/SubFst001.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst001.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -73,8 +73,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst002.cpp b/src/scripts/quest/subquest/gridania/SubFst002.cpp index e3d0661c..630f2c31 100644 --- a/src/scripts/quest/subquest/gridania/SubFst002.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst002.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -59,8 +59,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 && !player.hasQuest( getId() ) ) Scene00000( player ); diff --git a/src/scripts/quest/subquest/gridania/SubFst003.cpp b/src/scripts/quest/subquest/gridania/SubFst003.cpp index 84bc9655..87d4ff4e 100644 --- a/src/scripts/quest/subquest/gridania/SubFst003.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst003.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -52,8 +52,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst004.cpp b/src/scripts/quest/subquest/gridania/SubFst004.cpp index aa6b65f4..ce559431 100644 --- a/src/scripts/quest/subquest/gridania/SubFst004.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst004.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -56,8 +56,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst005.cpp b/src/scripts/quest/subquest/gridania/SubFst005.cpp index b401f66b..4846a063 100644 --- a/src/scripts/quest/subquest/gridania/SubFst005.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst005.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -48,8 +48,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if ( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst008.cpp b/src/scripts/quest/subquest/gridania/SubFst008.cpp index 94613bbb..93bc374a 100644 --- a/src/scripts/quest/subquest/gridania/SubFst008.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst008.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -56,8 +56,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst009.cpp b/src/scripts/quest/subquest/gridania/SubFst009.cpp index 5ff64741..baaf7420 100644 --- a/src/scripts/quest/subquest/gridania/SubFst009.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst009.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -52,8 +52,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst010.cpp b/src/scripts/quest/subquest/gridania/SubFst010.cpp index ea07711e..395095f4 100644 --- a/src/scripts/quest/subquest/gridania/SubFst010.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst010.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -55,8 +55,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) Scene00000( player ); diff --git a/src/scripts/quest/subquest/gridania/SubFst011.cpp b/src/scripts/quest/subquest/gridania/SubFst011.cpp index 029e996e..42bb9db7 100644 --- a/src/scripts/quest/subquest/gridania/SubFst011.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst011.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -49,8 +49,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst013.cpp b/src/scripts/quest/subquest/gridania/SubFst013.cpp index bca98f07..febe937a 100644 --- a/src/scripts/quest/subquest/gridania/SubFst013.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst013.cpp @@ -1,7 +1,7 @@ #include #include #include "Manager/EventMgr.h" -#include "Framework.h" +#include using namespace Sapphire; @@ -161,8 +161,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( !player.hasQuest( getId() ) ) { @@ -182,8 +182,8 @@ public: void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR1 && emoteId == 5 && player.getQuestSeq( getId() ) == SEQ_1 ) Scene00100( player ); diff --git a/src/scripts/quest/subquest/gridania/SubFst014.cpp b/src/scripts/quest/subquest/gridania/SubFst014.cpp index 45fc19c9..28f77dce 100644 --- a/src/scripts/quest/subquest/gridania/SubFst014.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst014.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -56,8 +56,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst015.cpp b/src/scripts/quest/subquest/gridania/SubFst015.cpp index 5690e82e..d7e8040b 100644 --- a/src/scripts/quest/subquest/gridania/SubFst015.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst015.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -54,8 +54,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst019.cpp b/src/scripts/quest/subquest/gridania/SubFst019.cpp index d5a2338c..954e7376 100644 --- a/src/scripts/quest/subquest/gridania/SubFst019.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst019.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -49,8 +49,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst026.cpp b/src/scripts/quest/subquest/gridania/SubFst026.cpp index 05486014..8351ea51 100644 --- a/src/scripts/quest/subquest/gridania/SubFst026.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst026.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -51,8 +51,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst029.cpp b/src/scripts/quest/subquest/gridania/SubFst029.cpp index e14918e3..74044a7b 100644 --- a/src/scripts/quest/subquest/gridania/SubFst029.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst029.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -47,8 +47,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == SubFst029::Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst030.cpp b/src/scripts/quest/subquest/gridania/SubFst030.cpp index c32245fa..cb542930 100644 --- a/src/scripts/quest/subquest/gridania/SubFst030.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst030.cpp @@ -2,7 +2,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -65,8 +65,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst034.cpp b/src/scripts/quest/subquest/gridania/SubFst034.cpp index a2604bf4..2c52e661 100644 --- a/src/scripts/quest/subquest/gridania/SubFst034.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst034.cpp @@ -2,7 +2,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -56,8 +56,8 @@ class SubFst034 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst039.cpp b/src/scripts/quest/subquest/gridania/SubFst039.cpp index c5fac2c9..1159c434 100644 --- a/src/scripts/quest/subquest/gridania/SubFst039.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst039.cpp @@ -2,7 +2,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -42,8 +42,8 @@ class SubFst039 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst041.cpp b/src/scripts/quest/subquest/gridania/SubFst041.cpp index 6a983731..8c3512e4 100644 --- a/src/scripts/quest/subquest/gridania/SubFst041.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst041.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -57,8 +57,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/gridania/SubFst045.cpp b/src/scripts/quest/subquest/gridania/SubFst045.cpp index 095a485f..a8fbb691 100644 --- a/src/scripts/quest/subquest/gridania/SubFst045.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst045.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -47,8 +47,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if ( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/limsa/SubSea001.cpp b/src/scripts/quest/subquest/limsa/SubSea001.cpp index 65169946..24c141a9 100644 --- a/src/scripts/quest/subquest/limsa/SubSea001.cpp +++ b/src/scripts/quest/subquest/limsa/SubSea001.cpp @@ -2,7 +2,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -65,8 +65,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/limsa/SubSea012.cpp b/src/scripts/quest/subquest/limsa/SubSea012.cpp index 33855690..d65979bb 100644 --- a/src/scripts/quest/subquest/limsa/SubSea012.cpp +++ b/src/scripts/quest/subquest/limsa/SubSea012.cpp @@ -1,7 +1,7 @@ #include #include "Manager/EventMgr.h" #include -#include "Framework.h" +#include using namespace Sapphire; @@ -48,8 +48,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil000.cpp b/src/scripts/quest/subquest/uldah/SubWil000.cpp index 60ea8a7b..5516b841 100644 --- a/src/scripts/quest/subquest/uldah/SubWil000.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil000.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -48,8 +48,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil001.cpp b/src/scripts/quest/subquest/uldah/SubWil001.cpp index 45f60668..d6197905 100644 --- a/src/scripts/quest/subquest/uldah/SubWil001.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil001.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -49,8 +49,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil002.cpp b/src/scripts/quest/subquest/uldah/SubWil002.cpp index b0d110ae..ba22f96b 100644 --- a/src/scripts/quest/subquest/uldah/SubWil002.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil002.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -53,8 +53,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil004.cpp b/src/scripts/quest/subquest/uldah/SubWil004.cpp index 86ce8440..dfabd64f 100644 --- a/src/scripts/quest/subquest/uldah/SubWil004.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil004.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -58,8 +58,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil006.cpp b/src/scripts/quest/subquest/uldah/SubWil006.cpp index 5b0dc867..9125a3db 100644 --- a/src/scripts/quest/subquest/uldah/SubWil006.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil006.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -51,8 +51,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil007.cpp b/src/scripts/quest/subquest/uldah/SubWil007.cpp index 9c65c4b1..46ff82c8 100644 --- a/src/scripts/quest/subquest/uldah/SubWil007.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil007.cpp @@ -2,7 +2,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -55,8 +55,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { @@ -90,8 +90,8 @@ public: void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && emoteId == 41 && player.getQuestSeq( getId() ) == Seq1 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil018.cpp b/src/scripts/quest/subquest/uldah/SubWil018.cpp index d29e33b7..7618fd2f 100644 --- a/src/scripts/quest/subquest/uldah/SubWil018.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil018.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -55,8 +55,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil019.cpp b/src/scripts/quest/subquest/uldah/SubWil019.cpp index 77a54877..c04ff9a2 100644 --- a/src/scripts/quest/subquest/uldah/SubWil019.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil019.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -47,8 +47,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil020.cpp b/src/scripts/quest/subquest/uldah/SubWil020.cpp index e29f8d05..7ea1a93f 100644 --- a/src/scripts/quest/subquest/uldah/SubWil020.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil020.cpp @@ -2,7 +2,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -63,8 +63,8 @@ class SubWil020 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); /*player.setQuestUI8BH( getId(), 0 ); player.setQuestUI8AL( getId(), 0 ); diff --git a/src/scripts/quest/subquest/uldah/SubWil021.cpp b/src/scripts/quest/subquest/uldah/SubWil021.cpp index 4de1484d..8e17059d 100644 --- a/src/scripts/quest/subquest/uldah/SubWil021.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil021.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -52,8 +52,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil022.cpp b/src/scripts/quest/subquest/uldah/SubWil022.cpp index da169d97..4d274987 100644 --- a/src/scripts/quest/subquest/uldah/SubWil022.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil022.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -52,8 +52,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil027.cpp b/src/scripts/quest/subquest/uldah/SubWil027.cpp index 2dee104f..66dc4843 100644 --- a/src/scripts/quest/subquest/uldah/SubWil027.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil027.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -46,8 +46,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil028.cpp b/src/scripts/quest/subquest/uldah/SubWil028.cpp index 45bb3fc2..57222790 100644 --- a/src/scripts/quest/subquest/uldah/SubWil028.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil028.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -48,8 +48,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/scripts/quest/subquest/uldah/SubWil029.cpp b/src/scripts/quest/subquest/uldah/SubWil029.cpp index 77fab777..ec09773a 100644 --- a/src/scripts/quest/subquest/uldah/SubWil029.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil029.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "Framework.h" +#include using namespace Sapphire; @@ -51,8 +51,8 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); - auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) { diff --git a/src/tools/quest_parser/main.cpp b/src/tools/quest_parser/main.cpp index 9efc2cba..069e213e 100644 --- a/src/tools/quest_parser/main.cpp +++ b/src/tools/quest_parser/main.cpp @@ -86,7 +86,7 @@ createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< st "#include \n" "#include \"Manager/EventMgr.h\"\n" "#include \n" - "#include \"Framework.h\"\n\n" + "#include \n\n" ); std::size_t splitPos( pQuestData->id.find( "_" ) ); diff --git a/src/world/Action/Action.cpp b/src/world/Action/Action.cpp index aa9a3b28..fbf08757 100644 --- a/src/world/Action/Action.cpp +++ b/src/world/Action/Action.cpp @@ -4,7 +4,6 @@ #include #include -#include "Framework.h" #include "Script/ScriptMgr.h" #include @@ -23,6 +22,7 @@ #include #include +#include using namespace Sapphire; using namespace Sapphire::Common; @@ -36,15 +36,14 @@ using namespace Sapphire::World; Action::Action::Action() = default; Action::Action::~Action() = default; -Action::Action::Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence, FrameworkPtr fw ) : - Action( std::move( caster ), actionId, sequence, nullptr, std::move( fw ) ) +Action::Action::Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence) : + Action( std::move( caster ), actionId, sequence, nullptr ) { } Action::Action::Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence, - Data::ActionPtr actionData, FrameworkPtr fw ) : + Data::ActionPtr actionData ) : m_pSource( std::move( caster ) ), - m_pFw( std::move( fw ) ), m_actionData( std::move( actionData ) ), m_id( actionId ), m_targetId( 0 ), @@ -64,10 +63,9 @@ bool Action::Action::init() if( !m_actionData ) { // need to get actionData - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto actionData = exdData->get< Data::Action >( m_id ); + auto actionData = exdData.get< Data::Action >( m_id ); assert( actionData ); m_actionData = actionData; @@ -290,10 +288,10 @@ void Action::Action::start() m_recastTimeMs / 10 ); player->queuePacket( actionStartPkt ); - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); // check the lut too and see if we have something usable, otherwise cancel the cast - if( !pScriptMgr->onStart( *this ) && !ActionLut::validEntryExists( static_cast< uint16_t >( getId() ) ) ) + if( !scriptMgr.onStart( *this ) && !ActionLut::validEntryExists( static_cast< uint16_t >( getId() ) ) ) { // script not implemented and insufficient lut data (no potencies) interrupt(); @@ -342,8 +340,8 @@ void Action::Action::interrupt() m_pSource->sendToInRangeSet( control, true ); } - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInterrupt( *this ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInterrupt( *this ); } void Action::Action::execute() @@ -357,7 +355,7 @@ void Action::Action::execute() return; } - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); if( hasCastTime() ) { @@ -385,7 +383,7 @@ void Action::Action::execute() } else if( auto player = m_pSource->getAsPlayer() ) { - pScriptMgr->onEObjHit( *player, m_targetId, getId() ); + scriptMgr.onEObjHit( *player, m_targetId, getId() ); } // set currently casted action as the combo action if it interrupts a combo @@ -455,10 +453,10 @@ void Action::Action::buildEffects() { snapshotAffectedActors( m_hitActors ); - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); auto hasLutEntry = hasValidLutEntry(); - if( !pScriptMgr->onExecute( *this ) && !hasLutEntry ) + if( !scriptMgr.onExecute( *this ) && !hasLutEntry ) { if( auto player = m_pSource->getAsPlayer() ) { @@ -577,10 +575,9 @@ bool Action::Action::playerPreCheck( Entity::Player& player ) if( actionClass != Common::ClassJob::Adventurer && currentClass != actionClass && !m_actionData->isRoleAction ) { // check if not a base class action - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto classJob = exdData->get< Data::ClassJob >( static_cast< uint8_t >( currentClass ) ); + auto classJob = exdData.get< Data::ClassJob >( static_cast< uint8_t >( currentClass ) ); if( !classJob ) return false; diff --git a/src/world/Action/Action.h b/src/world/Action/Action.h index 04142f3b..0b62f856 100644 --- a/src/world/Action/Action.h +++ b/src/world/Action/Action.h @@ -22,8 +22,8 @@ namespace Sapphire::World::Action public: Action(); - Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence, FrameworkPtr fw ); - Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence, Data::ActionPtr actionData, FrameworkPtr fw ); + Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence ); + Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t sequence, Data::ActionPtr actionData ); virtual ~Action(); @@ -183,7 +183,6 @@ namespace Sapphire::World::Action Common::ActionInterruptType m_interruptType; - FrameworkPtr m_pFw; Data::ActionPtr m_actionData; Common::FFXIVARR_POSITION3 m_pos; diff --git a/src/world/Action/EventAction.cpp b/src/world/Action/EventAction.cpp index 8c742ded..f524f33e 100644 --- a/src/world/Action/EventAction.cpp +++ b/src/world/Action/EventAction.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include "Network/PacketWrappers/ActorControlPacket.h" #include "Network/PacketWrappers/ActorControlSelfPacket.h" @@ -9,7 +10,6 @@ #include "Actor/Player.h" #include "EventAction.h" -#include "Framework.h" using namespace Sapphire; using namespace Sapphire::World; @@ -20,15 +20,13 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; Action::EventAction::EventAction( Entity::CharaPtr pActor, uint32_t eventId, uint16_t action, - ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional, - FrameworkPtr pFw ) + ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional ) { m_additional = additional; m_eventId = eventId; m_id = action; - m_pFw = pFw; - auto pExdData = pFw->get< Data::ExdDataGenerated >(); - m_castTimeMs = pExdData->get< Sapphire::Data::EventAction >( action )->castTime * 1000; // TODO: Add security checks. + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + m_castTimeMs = exdData.get< Sapphire::Data::EventAction >( action )->castTime * 1000; // TODO: Add security checks. m_onActionFinishClb = std::move( finishRef ); m_onActionInterruptClb = std::move( interruptRef ); m_pSource = std::move( pActor ); diff --git a/src/world/Action/EventAction.h b/src/world/Action/EventAction.h index 4a9bb50a..b4c00085 100644 --- a/src/world/Action/EventAction.h +++ b/src/world/Action/EventAction.h @@ -16,7 +16,7 @@ public: virtual ~EventAction(); EventAction( Entity::CharaPtr pActor, uint32_t eventId, uint16_t action, - ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional, FrameworkPtr pFw ); + ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional ); void start() override; diff --git a/src/world/Action/ItemAction.cpp b/src/world/Action/ItemAction.cpp index efbef2f4..96971e8b 100644 --- a/src/world/Action/ItemAction.cpp +++ b/src/world/Action/ItemAction.cpp @@ -10,14 +10,13 @@ using namespace Sapphire::World::Action; ItemAction::ItemAction( Sapphire::Entity::CharaPtr source, uint32_t itemId, Sapphire::Data::ItemActionPtr itemActionData, uint16_t itemSourceSlot, - uint16_t itemSourceContainer, Sapphire::FrameworkPtr fw ) : + uint16_t itemSourceContainer ) : m_itemAction( std::move( itemActionData ) ), m_itemSourceSlot( itemSourceSlot ), m_itemSourceContainer( itemSourceContainer ) { m_id = itemId; m_pSource = std::move( source ); - m_pFw = std::move( fw ); } void ItemAction::start() diff --git a/src/world/Action/ItemAction.h b/src/world/Action/ItemAction.h index f0f7c24f..4d60d8ff 100644 --- a/src/world/Action/ItemAction.h +++ b/src/world/Action/ItemAction.h @@ -15,7 +15,7 @@ namespace Sapphire::World::Action { public: ItemAction( Entity::CharaPtr source, uint32_t itemId, Data::ItemActionPtr itemActionData, - uint16_t itemSourceSlot, uint16_t itemSourceContainer, FrameworkPtr fw ); + uint16_t itemSourceSlot, uint16_t itemSourceContainer ); virtual ~ItemAction() = default; void start() override; diff --git a/src/world/Action/MountAction.cpp b/src/world/Action/MountAction.cpp index 7b01f870..39b928d3 100644 --- a/src/world/Action/MountAction.cpp +++ b/src/world/Action/MountAction.cpp @@ -15,8 +15,8 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; using namespace Sapphire::World::Action; -MountAction::MountAction( Sapphire::Entity::CharaPtr source, uint16_t mountId, uint16_t sequence, Data::ActionPtr actionData, Sapphire::FrameworkPtr fw ) : - Action::Action( source, 4, sequence, actionData, fw ), +MountAction::MountAction( Sapphire::Entity::CharaPtr source, uint16_t mountId, uint16_t sequence, Data::ActionPtr actionData ) : + Action::Action( source, 4, sequence, actionData ), m_mountId( mountId ) { } diff --git a/src/world/Action/MountAction.h b/src/world/Action/MountAction.h index 1b095b47..6b79113d 100644 --- a/src/world/Action/MountAction.h +++ b/src/world/Action/MountAction.h @@ -8,7 +8,7 @@ namespace Sapphire::World::Action class MountAction : public Action { public: - MountAction( Entity::CharaPtr source, uint16_t mountId, uint16_t sequence, Data::ActionPtr actionData, FrameworkPtr fw ); + MountAction( Entity::CharaPtr source, uint16_t mountId, uint16_t sequence, Data::ActionPtr actionData ); virtual ~MountAction() = default; bool preCheck() override; diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index ca7e9a80..09b96793 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -35,26 +35,26 @@ #include "BNpcTemplate.h" #include "Common.h" -#include "Framework.h" #include #include #include #include +#include using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; -Sapphire::Entity::BNpc::BNpc( FrameworkPtr pFw ) : - Npc( ObjKind::BattleNpc, pFw ) +Sapphire::Entity::BNpc::BNpc() : + Npc( ObjKind::BattleNpc ) { } Sapphire::Entity::BNpc::BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, float rot, - uint8_t level, uint32_t maxHp, TerritoryPtr pZone, FrameworkPtr pFw ) : - Npc( ObjKind::BattleNpc, pFw ) + uint8_t level, uint32_t maxHp, TerritoryPtr pZone ) : + Npc( ObjKind::BattleNpc ) { m_id = id; m_modelChara = pTemplate->getModelChara(); @@ -99,18 +99,17 @@ Sapphire::Entity::BNpc::BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX memcpy( m_customize, pTemplate->getCustomize(), sizeof( m_customize ) ); memcpy( m_modelEquip, pTemplate->getModelEquip(), sizeof( m_modelEquip ) ); - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto bNpcBaseData = exdData->get< Data::BNpcBase >( m_bNpcBaseId ); + auto bNpcBaseData = exdData.get< Data::BNpcBase >( m_bNpcBaseId ); assert( bNpcBaseData ); m_radius = bNpcBaseData->scale; - auto modelChara = exdData->get< Data::ModelChara >( bNpcBaseData->modelChara ); + auto modelChara = exdData.get< Data::ModelChara >( bNpcBaseData->modelChara ); if( modelChara ) { - auto modelSkeleton = exdData->get< Data::ModelSkeleton >( modelChara->model ); + auto modelSkeleton = exdData.get< Data::ModelSkeleton >( modelChara->model ); if( modelSkeleton ) m_radius *= modelSkeleton->radius; } @@ -359,8 +358,8 @@ bool Sapphire::Entity::BNpc::hateListHasActor( Sapphire::Entity::CharaPtr pChara void Sapphire::Entity::BNpc::aggro( Sapphire::Entity::CharaPtr pChara ) { - auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >(); - auto variation = static_cast< uint32_t >( pRNGMgr->getRandGenerator< float >( 500, 1000 ).next() ); + auto& pRNGMgr = Common::Service< World::Manager::RNGMgr >::ref(); + auto variation = static_cast< uint32_t >( pRNGMgr.getRandGenerator< float >( 500, 1000 ).next() ); m_lastAttack = Util::getTimeMs() + variation; hateListUpdate( pChara, 1 ); @@ -692,7 +691,6 @@ void Sapphire::Entity::BNpc::autoAttack( CharaPtr pTarget ) m_lastAttack = tick; srand( static_cast< uint32_t >( tick ) ); - auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >(); auto damage = Math::CalcStats::calcAutoAttackDamage( *this ); auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 7 ); @@ -716,10 +714,10 @@ void Sapphire::Entity::BNpc::calculateStats() uint8_t level = getLevel(); uint8_t job = static_cast< uint8_t >( getClass() ); - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( job ); - auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( level ); + auto classInfo = exdData.get< Sapphire::Data::ClassJob >( job ); + auto paramGrowthInfo = exdData.get< Sapphire::Data::ParamGrow >( level ); float base = Math::CalcStats::calculateBaseStat( *this ); diff --git a/src/world/Actor/BNpc.h b/src/world/Actor/BNpc.h index c76f8e99..aea42d48 100644 --- a/src/world/Actor/BNpc.h +++ b/src/world/Actor/BNpc.h @@ -49,9 +49,9 @@ namespace Sapphire::Entity { public: - BNpc( FrameworkPtr pFw ); + BNpc(); BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, float rot, - uint8_t level, uint32_t maxHp, TerritoryPtr pZone,FrameworkPtr pFw ); + uint8_t level, uint32_t maxHp, TerritoryPtr pZone ); virtual ~BNpc() override; diff --git a/src/world/Actor/Chara.cpp b/src/world/Actor/Chara.cpp index 35e1155e..c62c268c 100644 --- a/src/world/Actor/Chara.cpp +++ b/src/world/Actor/Chara.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "Forwards.h" @@ -25,7 +26,6 @@ #include "Chara.h" #include "Player.h" #include "Manager/TerritoryMgr.h" -#include "Framework.h" #include "Common.h" using namespace Sapphire::Common; @@ -33,11 +33,10 @@ using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; -Sapphire::Entity::Chara::Chara( ObjKind type, FrameworkPtr pFw ) : +Sapphire::Entity::Chara::Chara( ObjKind type ) : Actor( type ), m_pose( 0 ), m_targetId( INVALID_GAME_OBJECT_ID64 ), - m_pFw( std::move( std::move( pFw ) ) ), m_directorId( 0 ), m_radius( 1.f ) { @@ -557,7 +556,7 @@ void Sapphire::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEf /*! \param StatusEffectPtr to be applied to the actor */ void Sapphire::Entity::Chara::addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param ) { - auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000, m_pFw ); + auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000 ); effect->setParam( param ); addStatusEffect( effect ); } @@ -569,7 +568,7 @@ void Sapphire::Entity::Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_ if( hasStatusEffect( id ) ) return; - auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000, m_pFw ); + auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000 ); effect->setParam( param ); addStatusEffect( effect ); @@ -763,10 +762,9 @@ float Sapphire::Entity::Chara::getRadius() const Sapphire::Common::BaseParam Sapphire::Entity::Chara::getPrimaryStat() const { - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto classJob = exdData->get< Data::ClassJob >( static_cast< uint16_t >( getClass() ) ); + auto classJob = exdData.get< Data::ClassJob >( static_cast< uint16_t >( getClass() ) ); assert( classJob ); return static_cast< Sapphire::Common::BaseParam >( classJob->primaryStat ); diff --git a/src/world/Actor/Chara.h b/src/world/Actor/Chara.h index f423507e..aab58dec 100644 --- a/src/world/Actor/Chara.h +++ b/src/world/Actor/Chara.h @@ -126,7 +126,6 @@ namespace Sapphire::Entity std::queue< uint8_t > m_statusEffectFreeSlotQueue; std::vector< std::pair< uint8_t, uint32_t > > m_statusEffectList; std::map< uint8_t, StatusEffect::StatusEffectPtr > m_statusEffectMap; - FrameworkPtr m_pFw; /*! Detour Crowd AgentId */ uint32_t m_agentId; @@ -135,7 +134,7 @@ namespace Sapphire::Entity float m_radius; public: - Chara( Common::ObjKind type, FrameworkPtr pFw ); + Chara( Common::ObjKind type ); virtual ~Chara() override; diff --git a/src/world/Actor/Npc.cpp b/src/world/Actor/Npc.cpp index d795aabb..e5427b6d 100644 --- a/src/world/Actor/Npc.cpp +++ b/src/world/Actor/Npc.cpp @@ -25,7 +25,6 @@ #include "Player.h" #include "Npc.h" #include "Manager/TerritoryMgr.h" -#include "Framework.h" #include "Common.h" using namespace Sapphire::Common; @@ -33,8 +32,8 @@ using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; -Sapphire::Entity::Npc::Npc( ObjKind type, FrameworkPtr pFw ) : - Chara( type, pFw ) +Sapphire::Entity::Npc::Npc( ObjKind type ) : + Chara( type ) { } diff --git a/src/world/Actor/Npc.h b/src/world/Actor/Npc.h index d7505364..bf7cb4f2 100644 --- a/src/world/Actor/Npc.h +++ b/src/world/Actor/Npc.h @@ -21,7 +21,7 @@ namespace Sapphire::Entity { public: - Npc( Common::ObjKind type, FrameworkPtr pFw ); + Npc( Common::ObjKind type ); virtual ~Npc() override; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 8565e7a4..e949afab 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -46,7 +46,6 @@ #include "Math/CalcBattle.h" #include "ServerMgr.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -59,8 +58,8 @@ using InvSlotPair = std::pair< uint16_t, int8_t >; using InvSlotPairVec = std::vector< InvSlotPair >; // player constructor -Sapphire::Entity::Player::Player( FrameworkPtr pFw ) : - Chara( ObjKind::Player, pFw ), +Sapphire::Entity::Player::Player() : + Chara( ObjKind::Player ), m_lastWrite( 0 ), m_lastPing( 0 ), m_bIsLogin( false ), @@ -201,9 +200,7 @@ bool Sapphire::Entity::Player::isMarkedForRemoval() const Sapphire::Common::OnlineStatus Sapphire::Entity::Player::getOnlineStatus() const { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - if( !pExdData ) - return OnlineStatus::Online; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); uint32_t statusDisplayOrder = 0xFF14; uint32_t applicableStatus = static_cast< uint32_t >( OnlineStatus::Online ); @@ -215,7 +212,7 @@ Sapphire::Common::OnlineStatus Sapphire::Entity::Player::getOnlineStatus() const if( !bit ) continue; - auto pOnlineStatus = pExdData->get< Data::OnlineStatus >( i ); + auto pOnlineStatus = exdData.get< Data::OnlineStatus >( i ); if( !pOnlineStatus ) continue; @@ -256,11 +253,11 @@ void Sapphire::Entity::Player::calculateStats() uint8_t level = getLevel(); uint8_t job = static_cast< uint8_t >( getClass() ); - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( job ); - auto tribeInfo = pExdData->get< Sapphire::Data::Tribe >( tribe ); - auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( level ); + auto classInfo = exdData.get< Sapphire::Data::ClassJob >( job ); + auto tribeInfo = exdData.get< Sapphire::Data::Tribe >( tribe ); + auto paramGrowthInfo = exdData.get< Sapphire::Data::ParamGrow >( level ); float base = Math::CalcStats::calculateBaseStat( *this ); @@ -293,7 +290,7 @@ void Sapphire::Entity::Player::calculateStats() m_baseStats.max_mp = 10000; - m_baseStats.max_hp = Math::CalcStats::calculateMaxHp( getAsPlayer(), m_pFw ); + m_baseStats.max_hp = Math::CalcStats::calculateMaxHp( getAsPlayer() ); if( m_mp > m_baseStats.max_mp ) m_mp = m_baseStats.max_mp; @@ -344,18 +341,18 @@ void Sapphire::Entity::Player::sendStats() void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); - auto data = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId ); + auto data = exdData.get< Sapphire::Data::Aetheryte >( aetheryteId ); if( data == nullptr ) return; setStateFlag( PlayerStateFlag::BetweenAreas ); - auto pInstanceObjectCache = m_pFw->get< InstanceObjectCache >(); - auto pop = pInstanceObjectCache->getPopRange( data->territory, data->level[ 0 ] ); + auto& instanceObjectCache = Common::Service< InstanceObjectCache >::ref(); + auto pop = instanceObjectCache.getPopRange( data->territory, data->level[ 0 ] ); Common::FFXIVARR_POSITION3 pos; pos.x = 0; @@ -378,8 +375,8 @@ void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) } sendDebug( "Teleport: {0} {1} ({2})", - pExdData->get< Sapphire::Data::PlaceName >( data->placeName )->name, - pExdData->get< Sapphire::Data::PlaceName >( data->aethernetName )->name, + exdData.get< Sapphire::Data::PlaceName >( data->placeName )->name, + exdData.get< Sapphire::Data::PlaceName >( data->aethernetName )->name, data->territory ); // TODO: this should be simplified and a type created in server_common/common.h. @@ -421,16 +418,16 @@ void Sapphire::Entity::Player::returnToHomepoint() void Sapphire::Entity::Player::setZone( uint32_t zoneId ) { - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); m_onEnterEventDone = false; - if( !pTeriMgr->movePlayer( zoneId, getAsPlayer() ) ) + if( !teriMgr.movePlayer( zoneId, getAsPlayer() ) ) { // todo: this will require proper handling, for now just return the player to their previous area m_pos = m_prevPos; m_rot = m_prevRot; m_territoryTypeId = m_prevTerritoryTypeId; - if( !pTeriMgr->movePlayer( m_territoryTypeId, getAsPlayer() ) ) + if( !teriMgr.movePlayer( m_territoryTypeId, getAsPlayer() ) ) return; } @@ -439,9 +436,9 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId ) bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId ) { m_onEnterEventDone = false; - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); - auto instance = pTeriMgr->getTerritoryByGuId( instanceContentId ); + auto instance = teriMgr.getTerritoryByGuId( instanceContentId ); if( !instance ) return false; @@ -454,7 +451,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance ) if( !instance ) return false; - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); auto currentZone = getCurrentTerritory(); // zoning within the same zone won't cause the prev data to be overwritten @@ -466,7 +463,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance ) m_prevTerritoryId = getTerritoryId(); } - return pTeriMgr->movePlayer( instance, getAsPlayer() ); + return teriMgr.movePlayer( instance, getAsPlayer() ); } bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIVARR_POSITION3 pos ) @@ -475,7 +472,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIV if( !instance ) return false; - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); auto currentZone = getCurrentTerritory(); // zoning within the same zone won't cause the prev data to be overwritten @@ -487,7 +484,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIV m_prevTerritoryId = getTerritoryId(); } - if( pTeriMgr->movePlayer( instance, getAsPlayer() ) ) + if( teriMgr.movePlayer( instance, getAsPlayer() ) ) { m_pos = pos; return true; @@ -498,7 +495,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIV bool Sapphire::Entity::Player::exitInstance() { - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); auto pZone = getCurrentTerritory(); auto pInstance = pZone->getAsInstanceContent(); @@ -507,14 +504,14 @@ bool Sapphire::Entity::Player::exitInstance() resetMp(); // check if housing zone - if( pTeriMgr->isHousingTerritory( m_prevTerritoryTypeId ) ) + if( teriMgr.isHousingTerritory( m_prevTerritoryTypeId ) ) { - if( !pTeriMgr->movePlayer( pTeriMgr->getZoneByLandSetId( m_prevTerritoryId ), getAsPlayer() ) ) + if( !teriMgr.movePlayer( teriMgr.getZoneByLandSetId( m_prevTerritoryId ), getAsPlayer() ) ) return false; } else { - if( !pTeriMgr->movePlayer( m_prevTerritoryTypeId, getAsPlayer() ) ) + if( !teriMgr.movePlayer( m_prevTerritoryTypeId, getAsPlayer() ) ) return false; } @@ -602,12 +599,12 @@ void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id ) // section to starts at 320 - 4 bytes long - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); int32_t offset = 4; - auto info = pExdData->get< Sapphire::Data::Map >( - pExdData->get< Sapphire::Data::TerritoryType >( getCurrentTerritory()->getTerritoryTypeId() )->map ); + auto info = exdData.get< Sapphire::Data::Map >( + exdData.get< Sapphire::Data::TerritoryType >( getCurrentTerritory()->getTerritoryTypeId() )->map ); if( info->discoveryArrayByte ) offset = 5 + 2 * info->discoveryIndex; else @@ -622,7 +619,7 @@ void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id ) uint16_t level = getLevel(); - uint32_t exp = ( pExdData->get< Sapphire::Data::ParamGrow >( level )->expToNext * 5 / 100 ); + uint32_t exp = ( exdData.get< Sapphire::Data::ParamGrow >( level )->expToNext * 5 / 100 ); gainExp( exp ); @@ -706,11 +703,11 @@ void Sapphire::Entity::Player::gainExp( uint32_t amount ) return; } - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - uint32_t neededExpToLevel = pExdData->get< Sapphire::Data::ParamGrow >( level )->expToNext; + uint32_t neededExpToLevel = exdData.get< Sapphire::Data::ParamGrow >( level )->expToNext; - uint32_t neededExpToLevelplus1 = pExdData->get< Sapphire::Data::ParamGrow >( level + 1 )->expToNext; + uint32_t neededExpToLevelplus1 = exdData.get< Sapphire::Data::ParamGrow >( level + 1 )->expToNext; queuePacket( makeActorControlSelf( getId(), GainExpMsg, static_cast< uint8_t >( getClass() ), amount ) ); @@ -778,15 +775,15 @@ void Sapphire::Entity::Player::sendStatusUpdate() uint8_t Sapphire::Entity::Player::getLevel() const { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; return static_cast< uint8_t >( m_classArray[ classJobIndex ] ); } uint8_t Sapphire::Entity::Player::getLevelForClass( Common::ClassJob pClass ) const { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex; return static_cast< uint8_t >( m_classArray[ classJobIndex ] ); } @@ -798,15 +795,15 @@ bool Sapphire::Entity::Player::isClassJobUnlocked( Common::ClassJob classJob ) c uint32_t Sapphire::Entity::Player::getExp() const { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; return m_expArray[ classJobIndex ]; } void Sapphire::Entity::Player::setExp( uint32_t amount ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; m_expArray[ classJobIndex ] = amount; } @@ -847,15 +844,15 @@ void Sapphire::Entity::Player::setClassJob( Common::ClassJob classJob ) void Sapphire::Entity::Player::setLevel( uint8_t level ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; m_classArray[ classJobIndex ] = level; } void Sapphire::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob classjob ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex; if( m_classArray[ classJobIndex ] == 0 ) insertDbClass( classJobIndex ); @@ -997,8 +994,8 @@ const uint8_t* Sapphire::Entity::Player::getStateFlags() const bool Sapphire::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add logic for special cases { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto actionInfoPtr = exdData.get< Sapphire::Data::Action >( actionId ); if( actionInfoPtr->preservesCombo ) return false; @@ -1149,8 +1146,8 @@ void Sapphire::Entity::Player::update( uint64_t tickCount ) void Sapphire::Entity::Player::onMobKill( uint16_t nameId ) { - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onBNpcKill( *getAsPlayer(), nameId ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onBNpcKill( *getAsPlayer(), nameId ); if( isActionLearned( static_cast< uint8_t >( Common::UnlockEntry::HuntingLog ) ) ) { @@ -1535,10 +1532,9 @@ void Sapphire::Entity::Player::dismount() void Sapphire::Entity::Player::spawnCompanion( uint16_t id ) { - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto companion = exdData->get< Data::Companion >( id ); + auto companion = exdData.get< Data::Companion >( id ); if( !id ) return; @@ -1575,8 +1571,8 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget ) //uint64_t tick = Util::getTimeMs(); //srand(static_cast< uint32_t >(tick)); - auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >(); - auto variation = static_cast< uint32_t >( pRNGMgr->getRandGenerator< float >( 0, 3 ).next() ); + auto& RNGMgr = Common::Service< World::Manager::RNGMgr >::ref(); + auto variation = static_cast< uint32_t >( RNGMgr.getRandGenerator< float >( 0, 3 ).next() ); auto damage = Math::CalcStats::calcAutoAttackDamage( *this ); @@ -1741,8 +1737,8 @@ void Sapphire::Entity::Player::sendZonePackets() sendItemLevel(); } - auto pHousingMgr = m_pFw->get< HousingMgr >(); - if( Sapphire::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) + auto& housingMgr = Common::Service< HousingMgr >::ref(); + if( Sapphire::LandPtr pLand = housingMgr.getLandByOwnerId( getId() ) ) { uint32_t state = 0; @@ -1869,14 +1865,14 @@ void Sapphire::Entity::Player::emoteInterrupt() void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); // TODO: only register this action if enough gil is in possession - auto targetAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId ); + auto targetAetheryte = exdData.get< Sapphire::Data::Aetheryte >( aetheryteId ); if( targetAetheryte ) { - auto fromAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( - pExdData->get< Sapphire::Data::TerritoryType >( getZoneId() )->aetheryte ); + auto fromAetheryte = exdData.get< Sapphire::Data::Aetheryte >( + exdData.get< Sapphire::Data::TerritoryType >( getZoneId() )->aetheryte ); // calculate cost - does not apply for favorite points or homepoints neither checks for aether tickets auto cost = static_cast< uint16_t > ( @@ -2020,7 +2016,7 @@ Sapphire::Common::HuntingLogEntry& Sapphire::Entity::Player::getHuntingLogEntry( void Sapphire::Entity::Player::sendHuntingLog() { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); uint8_t count = 0; for( const auto& entry : m_huntingLogEntries ) { @@ -2037,7 +2033,7 @@ void Sapphire::Entity::Player::sendHuntingLog() bool allComplete = true; auto monsterNoteId = ( count + 1 ) * 10000 + entry.rank * 10 + i; - auto monsterNote = pExdData->get< Data::MonsterNote >( monsterNoteId ); + auto monsterNote = exdData.get< Data::MonsterNote >( monsterNoteId ); if( !monsterNote ) continue; @@ -2066,7 +2062,7 @@ void Sapphire::Entity::Player::updateHuntingLog( uint16_t id ) { std::vector< uint32_t > rankRewards{ 2500, 10000, 20000, 30000, 40000 }; const auto maxRank = 4; - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& pExdData = Common::Service< Data::ExdDataGenerated >::ref(); auto& logEntry = m_huntingLogEntries[ static_cast< uint8_t >( getClass() ) - 1 ]; @@ -2074,7 +2070,7 @@ void Sapphire::Entity::Player::updateHuntingLog( uint16_t id ) // make sure we get the matching base-class if a job is being used auto currentClass = static_cast< uint8_t >( getClass() ); - auto classJobInfo = pExdData->get< Sapphire::Data::ClassJob >( currentClass ); + auto classJobInfo = pExdData.get< Sapphire::Data::ClassJob >( currentClass ); if( !classJobInfo ) return; @@ -2084,7 +2080,7 @@ void Sapphire::Entity::Player::updateHuntingLog( uint16_t id ) bool sectionComplete = true; bool sectionChanged = false; uint32_t monsterNoteId = static_cast< uint32_t >( classJobInfo->classJobParent * 10000 + logEntry.rank * 10 + i ); - auto note = pExdData->get< Sapphire::Data::MonsterNote >( monsterNoteId ); + auto note = pExdData.get< Sapphire::Data::MonsterNote >( monsterNoteId ); // for classes that don't have entries, if the first fails the rest will fail if( !note ) @@ -2092,7 +2088,7 @@ void Sapphire::Entity::Player::updateHuntingLog( uint16_t id ) for( auto x = 0; x < 4; ++x ) { - auto note1 = pExdData->get< Sapphire::Data::MonsterNoteTarget >( note->monsterNoteTarget[ x ] ); + auto note1 = pExdData.get< Sapphire::Data::MonsterNoteTarget >( note->monsterNoteTarget[ x ] ); if( note1->bNpcName == id && logEntry.entries[ i - 1 ][ x ] < note->count[ x ] ) { logEntry.entries[ i - 1 ][ x ]++; diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 7dd294db..003c85d0 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -41,7 +41,7 @@ namespace Sapphire::Entity { public: /*! Contructor */ - Player( FrameworkPtr pFw ); + Player(); /*! Destructor */ ~Player(); diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index e8d79f5a..a0189b8b 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -14,7 +14,6 @@ #include "Territory/Territory.h" #include "ServerMgr.h" -#include "Framework.h" #include "Action/EventAction.h" @@ -300,7 +299,7 @@ void Sapphire::Entity::Player::eventActionStart( uint32_t eventId, uint64_t additional ) { auto pEventAction = World::Action::make_EventAction( getAsChara(), eventId, action, - finishCallback, interruptCallback, additional, m_pFw ); + finishCallback, interruptCallback, additional ); auto pEvent = getEvent( eventId ); diff --git a/src/world/Actor/PlayerInventory.cpp b/src/world/Actor/PlayerInventory.cpp index 963830ae..e6406c5f 100644 --- a/src/world/Actor/PlayerInventory.cpp +++ b/src/world/Actor/PlayerInventory.cpp @@ -14,7 +14,6 @@ #include "Player.h" -#include "Framework.h" #include @@ -30,8 +29,7 @@ #include "Manager/InventoryMgr.h" #include "Manager/ItemMgr.h" -#include "Framework.h" -#include +#include using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -43,7 +41,7 @@ void Sapphire::Entity::Player::initInventory() { auto setupContainer = [ this ]( InventoryType type, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, bool isPersistentStorage = true ) - { m_storageMap[ type ] = make_ItemContainer( type, maxSize, tableName, isMultiStorage, m_pFw, isPersistentStorage ); }; + { m_storageMap[ type ] = make_ItemContainer( type, maxSize, tableName, isMultiStorage, isPersistentStorage ); }; // main bags setupContainer( Bag0, 34, "charaiteminventory", true ); @@ -114,13 +112,11 @@ void Sapphire::Entity::Player::sendItemLevel() void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) { - auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >(); - if( !exdData ) - return; + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); - auto itemInfo = exdData->get< Sapphire::Data::Item >( pItem->getId() ); + auto itemInfo = exdData.get< Sapphire::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; - auto classJobInfo = exdData->get< Sapphire::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); + auto classJobInfo = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); auto currentParentClass = static_cast< ClassJob >( classJobInfo->classJobParent ); auto newClassJob = static_cast< ClassJob >( itemClassJob ); @@ -135,11 +131,9 @@ void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) void Sapphire::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob ) { - auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >(); - if ( !exdData ) - return; + auto exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); - auto itemInfo = exdData->get< Sapphire::Data::Item >( pItem->getId() ); + auto itemInfo = exdData.get< Sapphire::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; auto newClassJob = static_cast< ClassJob >( itemClassJob ); @@ -296,11 +290,9 @@ void Sapphire::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, Ite void Sapphire::Entity::Player::unequipSoulCrystal( ItemPtr pItem ) { - auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >(); - if ( !exdData ) - return; + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); - auto currentClassJob = exdData->get< Sapphire::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); + auto currentClassJob = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); auto parentClass = static_cast< ClassJob >( currentClassJob->classJobParent ); setClassJob( parentClass ); } @@ -406,11 +398,11 @@ void Sapphire::Entity::Player::removeCrystal( Common::CrystalType type, uint32_t void Sapphire::Entity::Player::sendInventory() { - auto pInvMgr = m_pFw->get< World::Manager::InventoryMgr >(); + auto& invMgr = Common::Service< World::Manager::InventoryMgr >::ref(); for( auto it = m_storageMap.begin(); it != m_storageMap.end(); ++it ) { - pInvMgr->sendInventoryContainer( *this, it->second ); + invMgr.sendInventoryContainer( *this, it->second ); } } @@ -474,7 +466,7 @@ uint32_t Sapphire::Entity::Player::getCrystal( CrystalType type ) void Sapphire::Entity::Player::writeInventory( InventoryType type ) { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); auto storage = m_storageMap[ type ]; @@ -498,13 +490,13 @@ void Sapphire::Entity::Player::writeInventory( InventoryType type ) if( storage->isMultiStorage() ) query += " AND storageId = " + std::to_string( static_cast< uint16_t >( type ) ); - pDb->execute( query ); + db.execute( query ); } void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_UP ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::CHARA_ITEMGLOBAL_UP ); // todo: add more fields stmt->setInt( 1, pItem->getStackSize() ); @@ -513,17 +505,17 @@ void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const stmt->setInt64( 4, pItem->getUId() ); - pDb->directExecute( stmt ); + db.directExecute( stmt ); } void Sapphire::Entity::Player::deleteItemDb( Sapphire::ItemPtr item ) const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_DELETE ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::CHARA_ITEMGLOBAL_DELETE ); stmt->setInt64( 1, item->getUId() ); - pDb->directExecute( stmt ); + db.directExecute( stmt ); } @@ -536,9 +528,8 @@ bool Sapphire::Entity::Player::isObtainable( uint32_t catalogId, uint8_t quantit Sapphire::ItemPtr Sapphire::Entity::Player::addItem( uint32_t catalogId, uint32_t quantity, bool isHq, bool silent, bool canMerge ) { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto itemInfo = exdData.get< Sapphire::Data::Item >( catalogId ); // if item data doesn't exist or it's a blank field if( !itemInfo || itemInfo->levelItem == 0 ) diff --git a/src/world/Actor/PlayerQuest.cpp b/src/world/Actor/PlayerQuest.cpp index 444569b0..854cdc13 100644 --- a/src/world/Actor/PlayerQuest.cpp +++ b/src/world/Actor/PlayerQuest.cpp @@ -2,12 +2,12 @@ #include #include #include +#include #include "Network/GameConnection.h" #include "Network/PacketWrappers/QuestMessagePacket.h" #include "Session.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -1036,15 +1036,15 @@ void Sapphire::Entity::Player::removeQuestsCompleted( uint32_t questId ) bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optionalChoice ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); uint32_t playerLevel = getLevel(); - auto questInfo = pExdData->get< Sapphire::Data::Quest >( questId ); + auto questInfo = exdData.get< Sapphire::Data::Quest >( questId ); if( !questInfo ) return false; - auto paramGrowth = pExdData->get< Sapphire::Data::ParamGrow >( questInfo->classJobLevel0 ); + auto paramGrowth = exdData.get< Sapphire::Data::ParamGrow >( questInfo->classJobLevel0 ); // TODO: use the correct formula, this one is wrong uint32_t exp = diff --git a/src/world/Actor/PlayerSql.cpp b/src/world/Actor/PlayerSql.cpp index 5a8edafb..1547e744 100644 --- a/src/world/Actor/PlayerSql.cpp +++ b/src/world/Actor/PlayerSql.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "Network/GameConnection.h" #include "Network/PacketWrappers/PlayerSetupPacket.h" @@ -19,7 +20,6 @@ #include "Manager/ItemMgr.h" #include "ServerMgr.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -29,16 +29,16 @@ using namespace Sapphire::World::Manager; // load player from the db bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession ) { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); m_pSession = pSession; const std::string char_id_str = std::to_string( charId ); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL ); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL ); stmt->setUInt( 1, charId ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); if( !res->next() ) return false; @@ -67,10 +67,10 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession TerritoryPtr pCurrZone = nullptr; // if the zone is an instanceContent zone, we need to actually find the instance - if( pTeriMgr->isInstanceContentTerritory( zoneId ) ) + if( teriMgr.isInstanceContentTerritory( zoneId ) ) { // try to find an instance actually linked to this player - pCurrZone = pTeriMgr->getLinkedInstance( m_id ); + pCurrZone = teriMgr.getLinkedInstance( m_id ); // if none found, revert to previous zone and position if( !pCurrZone ) { @@ -79,13 +79,13 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession m_pos.y = m_prevPos.y; m_pos.z = m_prevPos.z; setRot( m_prevRot ); - pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); + pCurrZone = teriMgr.getZoneByTerritoryTypeId( zoneId ); } } - else if( pTeriMgr->isInternalEstateTerritory( zoneId ) ) + else if( teriMgr.isInternalEstateTerritory( zoneId ) ) { // todo: this needs to go to the area just outside of the plot door - pCurrZone = pTeriMgr->getZoneByLandSetId( m_prevTerritoryId ); + pCurrZone = teriMgr.getZoneByLandSetId( m_prevTerritoryId ); zoneId = m_prevTerritoryTypeId; m_pos.x = m_prevPos.x; @@ -93,13 +93,13 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession m_pos.z = m_prevPos.z; setRot( m_prevRot ); } - else if( pTeriMgr->isHousingTerritory( zoneId ) ) + else if( teriMgr.isHousingTerritory( zoneId ) ) { - pCurrZone = pTeriMgr->getZoneByLandSetId( m_territoryId ); + pCurrZone = teriMgr.getZoneByLandSetId( m_territoryId ); } else { - pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); + pCurrZone = teriMgr.getZoneByTerritoryTypeId( zoneId ); } m_territoryTypeId = zoneId; @@ -113,7 +113,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession // default to new gridania // TODO: should probably just abort and mark character as corrupt - pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( 132 ); + pCurrZone = teriMgr.getZoneByTerritoryTypeId( 132 ); m_pos.x = 0.0f; m_pos.y = 0.0f; @@ -250,7 +250,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession initSpawnIdQueue(); - if( !pTeriMgr->movePlayer( pCurrZone, getAsPlayer() ) ) + if( !teriMgr.movePlayer( pCurrZone, getAsPlayer() ) ) return false; return true; @@ -258,11 +258,11 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession bool Sapphire::Entity::Player::loadActiveQuests() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_QUEST ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_QUEST ); stmt->setUInt( 1, m_id ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); while( res->next() ) { @@ -294,11 +294,11 @@ bool Sapphire::Entity::Player::loadActiveQuests() bool Sapphire::Entity::Player::loadClassData() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); // ClassIdx, Exp, Lvl - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_SEL ); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_SEL ); stmt->setUInt( 1, m_id ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); while( res->next() ) { @@ -315,10 +315,10 @@ bool Sapphire::Entity::Player::loadClassData() bool Sapphire::Entity::Player::loadSearchInfo() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_SEARCHINFO ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_SEARCHINFO ); stmt->setUInt( 1, m_id ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); if( !res->next() ) { @@ -340,10 +340,10 @@ bool Sapphire::Entity::Player::loadSearchInfo() bool Sapphire::Entity::Player::loadHuntingLog() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_MONSTERNOTE_SEL ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::CHARA_MONSTERNOTE_SEL ); stmt->setUInt( 1, m_id ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); if( !res->next() ) { @@ -363,7 +363,7 @@ bool Sapphire::Entity::Player::loadHuntingLog() void Sapphire::Entity::Player::updateSql() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); /*"Hp 1, Mp 2, Tp 3, Gp 4, Mode 5, Mount 6, InvincibleGM 7, Voice 8, " "Customize 9, ModelMainWeapon 10, ModelSubWeapon 11, ModelSystemWeapon 12, " "ModelEquip 13, EmoteModeType 14, Language 15, IsNewGame 16, IsNewAdventurer 17, " @@ -377,7 +377,7 @@ void Sapphire::Entity::Player::updateSql() - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_UP ); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::CHARA_UP ); stmt->setInt( 1, getHp() ); stmt->setInt( 2, getMp() ); @@ -490,7 +490,7 @@ void Sapphire::Entity::Player::updateSql() stmt->setInt( 57, m_id ); - pDb->execute( stmt ); + db.execute( stmt ); ////// Searchinfo updateDbSearchInfo(); @@ -508,24 +508,24 @@ void Sapphire::Entity::Player::updateSql() void Sapphire::Entity::Player::updateDbClass() const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast( getClass() ) )->expArrayIndex; + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + uint8_t classJobIndex = exdData.get< Sapphire::Data::ClassJob >( static_cast( getClass() ) )->expArrayIndex; //Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ? - auto stmtS = pDb->getPreparedStatement( Db::CHARA_CLASS_UP ); + auto stmtS = db.getPreparedStatement( Db::CHARA_CLASS_UP ); stmtS->setInt( 1, getExp() ); stmtS->setInt( 2, getLevel() ); stmtS->setInt( 3, m_id ); stmtS->setInt( 4, classJobIndex ); - pDb->execute( stmtS ); + db.execute( stmtS ); } void Sapphire::Entity::Player::updateDbMonsterNote() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); // Category_0-11 - auto stmt = pDb->getPreparedStatement( Db::CHARA_MONSTERNOTE_UP ); + auto stmt = db.getPreparedStatement( Db::CHARA_MONSTERNOTE_UP ); //std::array< std::vector< uint8_t >, 12 > vectors; std::vector< uint8_t > vector( 41 ); for( std::size_t i = 0; i < m_huntingLogEntries.size(); ++i ) @@ -538,48 +538,48 @@ void Sapphire::Entity::Player::updateDbMonsterNote() stmt->setBinary( i + 1, vector ); } stmt->setInt( 13, m_id ); - pDb->execute( stmt ); + db.execute( stmt ); } void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmtClass = pDb->getPreparedStatement( Db::CHARA_CLASS_INS ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmtClass = db.getPreparedStatement( Db::CHARA_CLASS_INS ); stmtClass->setInt( 1, getId() ); stmtClass->setInt( 2, classJobIndex ); stmtClass->setInt( 3, 0 ); stmtClass->setInt( 4, 1 ); - pDb->directExecute( stmtClass ); + db.directExecute( stmtClass ); } void Sapphire::Entity::Player::updateDbSearchInfo() const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmtS = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTCLASS ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmtS = db.getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTCLASS ); stmtS->setInt( 1, m_searchSelectClass ); stmtS->setInt( 2, m_id ); - pDb->execute( stmtS ); + db.execute( stmtS ); - auto stmtS1 = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTREGION ); + auto stmtS1 = db.getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTREGION ); stmtS1->setInt( 1, m_searchSelectRegion ); stmtS1->setInt( 2, m_id ); - pDb->execute( stmtS1 ); + db.execute( stmtS1 ); - auto stmtS2 = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SEARCHCOMMENT ); + auto stmtS2 = db.getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SEARCHCOMMENT ); stmtS2->setString( 1, std::string( m_searchMessage ) ); stmtS2->setInt( 2, m_id ); - pDb->execute( stmtS2 ); + db.execute( stmtS2 ); } void Sapphire::Entity::Player::updateDbAllQuests() const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); for( int32_t i = 0; i < 30; i++ ) { if( !m_activeQuests[ i ] ) continue; - auto stmtS3 = pDb->getPreparedStatement( Db::CHARA_QUEST_UP ); + auto stmtS3 = db.getPreparedStatement( Db::CHARA_QUEST_UP ); stmtS3->setInt( 1, m_activeQuests[ i ]->c.sequence ); stmtS3->setInt( 2, m_activeQuests[ i ]->c.flags ); stmtS3->setInt( 3, m_activeQuests[ i ]->c.UI8A ); @@ -591,24 +591,24 @@ void Sapphire::Entity::Player::updateDbAllQuests() const stmtS3->setInt( 9, m_activeQuests[ i ]->c.padding1 ); stmtS3->setInt( 10, m_id ); stmtS3->setInt( 11, m_activeQuests[ i ]->c.questId ); - pDb->execute( stmtS3 ); + db.execute( stmtS3 ); } } void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_DEL ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::CHARA_QUEST_DEL ); stmt->setInt( 1, m_id ); stmt->setInt( 2, questId ); - pDb->execute( stmt ); + db.execute( stmt ); } void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t seq ) const { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_INS ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::CHARA_QUEST_INS ); stmt->setInt( 1, m_id ); stmt->setInt( 2, index ); stmt->setInt( 3, questId ); @@ -621,15 +621,16 @@ void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uin stmt->setInt( 10, 0 ); stmt->setInt( 11, 0 ); stmt->setInt( 12, 0 ); - pDb->execute( stmt ); + db.execute( stmt ); } Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint32_t quantity ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); - auto itemMgr = m_pFw->get< World::Manager::ItemMgr >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto& itemMgr = Common::Service< World::Manager::ItemMgr >::ref(); + + auto itemInfo = exdData.get< Sapphire::Data::Item >( catalogId ); if( !itemInfo ) return nullptr; @@ -639,27 +640,27 @@ Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint uint8_t flags = 0; - ItemPtr pItem = make_Item( itemMgr->getNextUId(), catalogId, m_pFw ); + ItemPtr pItem = make_Item( itemMgr.getNextUId(), catalogId ); pItem->setStackSize( quantity ); - pDb->execute( "INSERT INTO charaglobalitem ( CharacterId, itemId, catalogId, stack, flags ) VALUES ( " + - std::to_string( getId() ) + ", " + - std::to_string( pItem->getUId() ) + ", " + - std::to_string( pItem->getId() ) + ", " + - std::to_string( quantity ) + ", " + - std::to_string( flags ) + ");" ); + db.execute( "INSERT INTO charaglobalitem ( CharacterId, itemId, catalogId, stack, flags ) VALUES ( " + + std::to_string( getId() ) + ", " + + std::to_string( pItem->getUId() ) + ", " + + std::to_string( pItem->getId() ) + ", " + + std::to_string( quantity ) + ", " + + std::to_string( flags ) + ");" ); return pItem; } bool Sapphire::Entity::Player::loadInventory() { - auto itemMgr = m_pFw->get< World::Manager::ItemMgr >(); - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& itemMgr = Common::Service< World::Manager::ItemMgr >::ref(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); ////////////////////////////////////////////////////////////////////////////////////////////////////// // load active gearset - auto res = pDb->query( "SELECT storageId, container_0, container_1, container_2, container_3, " + auto res = db.query( "SELECT storageId, container_0, container_1, container_2, container_3, " "container_4, container_5, container_6, container_7, " "container_8, container_9, container_10, container_11, " "container_12, container_13 " @@ -677,7 +678,7 @@ bool Sapphire::Entity::Player::loadInventory() if( uItemId == 0 ) continue; - ItemPtr pItem = itemMgr->loadItem( uItemId ); + ItemPtr pItem = itemMgr.loadItem( uItemId ); if( pItem == nullptr ) continue; @@ -689,7 +690,7 @@ bool Sapphire::Entity::Player::loadInventory() /////////////////////////////////////////////////////////////////////////////////////////////////////// // Load everything - auto bagRes = pDb->query( "SELECT storageId, " + auto bagRes = db.query( "SELECT storageId, " "container_0, container_1, container_2, container_3, container_4, " "container_5, container_6, container_7, container_8, container_9, " "container_10, container_11, container_12, container_13, container_14, " @@ -710,7 +711,7 @@ bool Sapphire::Entity::Player::loadInventory() if( uItemId == 0 ) continue; - ItemPtr pItem = itemMgr->loadItem( uItemId ); + ItemPtr pItem = itemMgr.loadItem( uItemId ); if( pItem == nullptr ) continue; diff --git a/src/world/Inventory/HousingItem.cpp b/src/world/Inventory/HousingItem.cpp index f4fe35da..954c9053 100644 --- a/src/world/Inventory/HousingItem.cpp +++ b/src/world/Inventory/HousingItem.cpp @@ -1,7 +1,7 @@ #include "HousingItem.h" -Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw ) : - Sapphire::Item( uId, catalogId, pFw, false ) +Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId ) : + Sapphire::Item( uId, catalogId, false ) { m_stackSize = 1; m_spiritBond = 1; diff --git a/src/world/Inventory/HousingItem.h b/src/world/Inventory/HousingItem.h index ba208ddc..279a7910 100644 --- a/src/world/Inventory/HousingItem.h +++ b/src/world/Inventory/HousingItem.h @@ -8,7 +8,7 @@ namespace Sapphire::Inventory class HousingItem : public Item { public: - HousingItem( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw ); + HousingItem( uint64_t uId, uint32_t catalogId ); virtual ~HousingItem() = default; void setRot( float rot ); diff --git a/src/world/Inventory/Item.cpp b/src/world/Inventory/Item.cpp index 1b75fcaf..ac41926c 100644 --- a/src/world/Inventory/Item.cpp +++ b/src/world/Inventory/Item.cpp @@ -1,22 +1,21 @@ #include #include #include +#include -#include "Framework.h" #include "Item.h" -Sapphire::Item::Item( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw, bool isHq ) : +Sapphire::Item::Item( uint64_t uId, uint32_t catalogId, bool isHq ) : m_id( catalogId ), m_uId( uId ), m_isHq( isHq ), m_stain( 0 ), m_durability( 30000 ), m_spiritBond( 0 ), - m_reservedFlag( 0 ), - m_pFw( pFw ) + m_reservedFlag( 0 ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto itemInfo = exdData.get< Sapphire::Data::Item >( catalogId ); m_delayMs = itemInfo->delayms; m_physicalDmg = itemInfo->damagePhys; diff --git a/src/world/Inventory/Item.h b/src/world/Inventory/Item.h index 35c11286..dff845cc 100644 --- a/src/world/Inventory/Item.h +++ b/src/world/Inventory/Item.h @@ -18,7 +18,7 @@ namespace Sapphire int16_t value; }; - Item( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw, bool isHq = false ); + Item( uint64_t uId, uint32_t catalogId, bool isHq = false ); virtual ~Item() = default; @@ -116,7 +116,6 @@ namespace Sapphire uint32_t m_defense; uint32_t m_defenseMag; - FrameworkPtr m_pFw; uint32_t m_additionalData; BaseParamStruct m_baseParam[6]; diff --git a/src/world/Inventory/ItemContainer.cpp b/src/world/Inventory/ItemContainer.cpp index 6afb81a1..46bedfb5 100644 --- a/src/world/Inventory/ItemContainer.cpp +++ b/src/world/Inventory/ItemContainer.cpp @@ -1,21 +1,20 @@ #include #include #include +#include #include "Actor/Player.h" #include "Item.h" -#include "Framework.h" #include "Forwards.h" #include "ItemContainer.h" Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, - bool isMultiStorage, FrameworkPtr pFw, bool isPersistentStorage ) : + bool isMultiStorage, bool isPersistentStorage ) : m_id( storageId ), m_size( maxSize ), m_tableName( tableName ), m_bMultiStorage( isMultiStorage ), - m_pFw( pFw ), m_isPersistentStorage( isPersistentStorage ) { @@ -38,13 +37,13 @@ uint8_t Sapphire::ItemContainer::getEntryCount() const void Sapphire::ItemContainer::removeItem( uint8_t slotId, bool removeFromDb ) { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); auto it = m_itemMap.find( slotId ); if( it != m_itemMap.end() ) { if( m_isPersistentStorage && removeFromDb ) - pDb->execute( "DELETE FROM charaglobalitem WHERE itemId = " + std::to_string( it->second->getUId() ) ); + db.execute( "DELETE FROM charaglobalitem WHERE itemId = " + std::to_string( it->second->getUId() ) ); m_itemMap.erase( it ); diff --git a/src/world/Inventory/ItemContainer.h b/src/world/Inventory/ItemContainer.h index 140393ae..5e830335 100644 --- a/src/world/Inventory/ItemContainer.h +++ b/src/world/Inventory/ItemContainer.h @@ -15,7 +15,7 @@ namespace Sapphire public: ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, - FrameworkPtr pFw, bool isPersistentStorage = true ); + bool isPersistentStorage = true ); ~ItemContainer(); @@ -48,7 +48,6 @@ namespace Sapphire uint8_t m_size; std::string m_tableName; bool m_bMultiStorage; - FrameworkPtr m_pFw; bool m_isPersistentStorage; ItemMap m_itemMap; Entity::PlayerPtr m_pOwner; diff --git a/src/world/Manager/ActionMgr.cpp b/src/world/Manager/ActionMgr.cpp index aaa723c9..22280a1a 100644 --- a/src/world/Manager/ActionMgr.cpp +++ b/src/world/Manager/ActionMgr.cpp @@ -7,18 +7,11 @@ #include "Actor/Player.h" #include -#include "Framework.h" #include using namespace Sapphire; -World::Manager::ActionMgr::ActionMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( pFw ) -{ - -} - void World::Manager::ActionMgr::handlePlacedPlayerAction( Entity::Player& player, uint32_t actionId, Data::ActionPtr actionData, Common::FFXIVARR_POSITION3 pos, uint16_t sequence ) @@ -26,7 +19,7 @@ void World::Manager::ActionMgr::handlePlacedPlayerAction( Entity::Player& player player.sendDebug( "got aoe act: {0}", actionData->name ); - auto action = Action::make_Action( player.getAsPlayer(), actionId, sequence, actionData, framework() ); + auto action = Action::make_Action( player.getAsPlayer(), actionId, sequence, actionData ); action->setPos( pos ); @@ -47,7 +40,7 @@ void World::Manager::ActionMgr::handleTargetedPlayerAction( Entity::Player& play Data::ActionPtr actionData, uint64_t targetId, uint16_t sequence ) { - auto action = Action::make_Action( player.getAsPlayer(), actionId, sequence, actionData, framework() ); + auto action = Action::make_Action( player.getAsPlayer(), actionId, sequence, actionData ); action->setTargetId( targetId ); @@ -73,7 +66,7 @@ void World::Manager::ActionMgr::handleItemAction( Sapphire::Entity::Player& play player.sendDebug( "got item act: {0}, slot: {1}, container: {2}", itemId, itemSourceSlot, itemSourceContainer ); auto action = Action::make_ItemAction( player.getAsChara(), itemId, itemActionData, - itemSourceSlot, itemSourceContainer, framework() ); + itemSourceSlot, itemSourceContainer ); // todo: item actions don't have cast times? if so we can just start it and we're good action->start(); @@ -85,7 +78,7 @@ void World::Manager::ActionMgr::handleMountAction( Entity::Player& player, uint1 { player.sendDebug( "mount: {0}", mountId ); - auto action = Action::make_MountAction( player.getAsPlayer(), mountId, sequence, actionData, framework() ); + auto action = Action::make_MountAction( player.getAsPlayer(), mountId, sequence, actionData ); action->setTargetId( targetId ); diff --git a/src/world/Manager/ActionMgr.h b/src/world/Manager/ActionMgr.h index dd1d5f40..af58dc1d 100644 --- a/src/world/Manager/ActionMgr.h +++ b/src/world/Manager/ActionMgr.h @@ -1,7 +1,6 @@ #ifndef SAPPHIRE_ACTIONMGR_H #define SAPPHIRE_ACTIONMGR_H -#include "BaseManager.h" #include "ForwardsZone.h" namespace Sapphire::Data @@ -15,10 +14,10 @@ namespace Sapphire::Data namespace Sapphire::World::Manager { - class ActionMgr : public Manager::BaseManager + class ActionMgr { public: - explicit ActionMgr( FrameworkPtr pFw ); + ActionMgr() = default; ~ActionMgr() = default; void handleTargetedPlayerAction( Entity::Player& player, uint32_t actionId, diff --git a/src/world/Manager/BaseManager.h b/src/world/Manager/BaseManager.h deleted file mode 100644 index 4cd87a03..00000000 --- a/src/world/Manager/BaseManager.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef SAPPHIRE_MANAGER_H -#define SAPPHIRE_MANAGER_H - -#include "ForwardsZone.h" - -namespace Sapphire::World::Manager -{ - - class BaseManager - { - public: - explicit BaseManager( FrameworkPtr pFw ) : m_pFw( std::move( pFw ) ) {}; - virtual ~BaseManager() = default; - - FrameworkPtr framework() const - { return m_pFw; } - void setFw( FrameworkPtr pFw ) - { m_pFw = pFw; } - - private: - FrameworkPtr m_pFw; - }; - -} - - -#endif //SAPPHIRE_MANAGER_H diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 98a7480e..515bf228 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -38,7 +38,6 @@ #include "ServerMgr.h" #include "Session.h" -#include "Framework.h" using namespace Sapphire::Network; using namespace Sapphire::Network::Packets; @@ -46,8 +45,7 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::World::Manager; // instanciate and initialize commands -Sapphire::World::Manager::DebugCommandMgr::DebugCommandMgr( FrameworkPtr pFw ) : - BaseManager( pFw ) +Sapphire::World::Manager::DebugCommandMgr::DebugCommandMgr() { // Push all commands onto the register map ( command name - function - description - required GM level ) registerCommand( "set", &DebugCommandMgr::set, "Executes SET commands.", 1 ); @@ -144,8 +142,8 @@ void Sapphire::World::Manager::DebugCommandMgr::help( char* data, Entity::Player void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pTerriMgr = framework()->get< TerritoryMgr >(); - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); std::string subCommand = ""; std::string params = ""; @@ -293,11 +291,11 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& sscanf( params.c_str(), "%hu %hu", &festivalId, &additionalId ); - pTerriMgr->setCurrentFestival( festivalId, additionalId ); + terriMgr.setCurrentFestival( festivalId, additionalId ); } else if( subCommand == "festivaldisable" ) { - pTerriMgr->disableCurrentFestival(); + terriMgr.disableCurrentFestival(); } else if( subCommand == "BitFlag" ) { @@ -406,7 +404,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& sscanf( params.c_str(), "%d %d %hu", &id, &duration, ¶m ); auto effect = StatusEffect::make_StatusEffect( id, player.getAsPlayer(), player.getAsPlayer(), - duration, 3000, framework() ); + duration, 3000 ); effect->setParam( param ); player.addStatusEffect( effect ); @@ -435,7 +433,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& player.getPos().y, player.getPos().z, player.getRot(), - 1, 1000, playerZone, framework() ); + 1, 1000, playerZone ); @@ -537,7 +535,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& void Sapphire::World::Manager::DebugCommandMgr::get( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); + auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); std::string subCommand; std::string params = ""; @@ -561,7 +559,7 @@ void Sapphire::World::Manager::DebugCommandMgr::get( char* data, Entity::Player& if( ( subCommand == "pos" ) ) { - int16_t map_id = pExdData->get< Sapphire::Data::TerritoryType >( player.getCurrentTerritory()->getTerritoryTypeId() )->map; + int16_t map_id = exdData.get< Sapphire::Data::TerritoryType >( player.getCurrentTerritory()->getTerritoryTypeId() )->map; player.sendNotice( "Pos:\n {0}\n {1}\n {2}\n {3}\n MapId: {4}\n ZoneId:{5}", player.getPos().x, player.getPos().y, player.getPos().z, @@ -709,7 +707,7 @@ Sapphire::World::Manager::DebugCommandMgr::serverInfo( char* data, Entity::Playe void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pScriptMgr = framework()->get< Scripting::ScriptMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); std::string subCommand; std::string params = ""; @@ -735,7 +733,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play { if( subCommand == params ) player.sendDebug( "Command failed: requires name of script" ); - else if( pScriptMgr->getNativeScriptHandler().unloadScript( params ) ) + else if( scriptMgr.getNativeScriptHandler().unloadScript( params ) ) player.sendDebug( "Unloaded script successfully." ); else player.sendDebug( "Failed to unload script: {0}", params ); @@ -747,7 +745,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play else { std::set< Sapphire::Scripting::ScriptInfo* > scripts; - pScriptMgr->getNativeScriptHandler().findScripts( scripts, params ); + scriptMgr.getNativeScriptHandler().findScripts( scripts, params ); if( !scripts.empty() ) { @@ -769,7 +767,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play player.sendDebug( "Command failed: requires relative path to script" ); else { - if( pScriptMgr->getNativeScriptHandler().loadScript( params ) ) + if( scriptMgr.getNativeScriptHandler().loadScript( params ) ) player.sendDebug( "Loaded '{0}' successfully", params ); else player.sendDebug( "Failed to load '{0}'", params ); @@ -782,7 +780,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play player.sendDebug( "Command failed: requires name of script to reload" ); else { - pScriptMgr->getNativeScriptHandler().queueScriptReload( params ); + scriptMgr.getNativeScriptHandler().queueScriptReload( params ); player.sendDebug( "Queued script reload for script: {0}", params ); } } @@ -795,7 +793,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pTeriMgr = framework()->get< TerritoryMgr >(); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); std::string cmd( data ), params, subCommand; auto cmdPos = cmd.find_first_of( ' ' ); @@ -819,7 +817,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl uint32_t contentFinderConditionId; sscanf( params.c_str(), "%d", &contentFinderConditionId ); - auto instance = pTeriMgr->createInstanceContent( contentFinderConditionId ); + auto instance = terriMgr.createInstanceContent( contentFinderConditionId ); if( instance ) player.sendDebug( "Created instance with id#{0} -> {1}", instance->getGuId(), instance->getName() ); else @@ -830,7 +828,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl uint32_t instanceId; sscanf( params.c_str(), "%d", &instanceId ); - auto terri = pTeriMgr->getTerritoryByGuId( instanceId ); + auto terri = terriMgr.getTerritoryByGuId( instanceId ); if( terri ) { auto pInstanceContent = terri->getAsInstanceContent(); @@ -853,7 +851,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl uint32_t instanceId; sscanf( params.c_str(), "%d", &instanceId ); - auto instance = pTeriMgr->getTerritoryByGuId( instanceId ); + auto instance = terriMgr.getTerritoryByGuId( instanceId ); if( !instance ) { player.sendDebug( "Unknown instance with id#{0} ", instanceId ); @@ -875,7 +873,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl uint32_t zoneId; sscanf( params.c_str(), "%d", &zoneId ); - auto instance = pTeriMgr->createTerritoryInstance( zoneId ); + auto instance = terriMgr.createTerritoryInstance( zoneId ); if( instance ) player.sendDebug( "Created instance with id: " + std::to_string( instance->getGuId() ) + " -> " + instance->getName() ); @@ -887,7 +885,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl uint32_t terriId; sscanf( params.c_str(), "%d", &terriId ); - if( pTeriMgr->removeTerritoryInstance( terriId ) ) + if( terriMgr.removeTerritoryInstance( terriId ) ) player.sendDebug( "Removed instance with id#{0}", terriId ); else player.sendDebug( "Failed to remove instance with id#{0}", terriId ); @@ -1015,7 +1013,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pTeriMgr = framework()->get< TerritoryMgr >(); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); std::string cmd( data ), params, subCommand; auto cmdPos = cmd.find_first_of( ' ' ); @@ -1039,7 +1037,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity: uint32_t contentFinderConditionId; sscanf( params.c_str(), "%d", &contentFinderConditionId ); - auto instance = pTeriMgr->createQuestBattle( contentFinderConditionId ); + auto instance = terriMgr.createQuestBattle( contentFinderConditionId ); if( instance ) player.sendDebug( "Created instance with id#{0} -> {1}", instance->getGuId(), instance->getName() ); else @@ -1070,7 +1068,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity: uint32_t zoneId; sscanf( params.c_str(), "%d", &zoneId ); - auto instance = pTeriMgr->createTerritoryInstance( zoneId ); + auto instance = terriMgr.createTerritoryInstance( zoneId ); if( instance ) player.sendDebug( "Created instance with id: " + std::to_string( instance->getGuId() ) + " -> " + instance->getName() ); @@ -1082,7 +1080,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity: uint32_t terriId; sscanf( params.c_str(), "%d", &terriId ); - if( pTeriMgr->removeTerritoryInstance( terriId ) ) + if( terriMgr.removeTerritoryInstance( terriId ) ) player.sendDebug( "Removed instance with id#{0}", terriId ); else player.sendDebug( "Failed to remove instance with id#{0}", terriId ); @@ -1210,7 +1208,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity: void Sapphire::World::Manager::DebugCommandMgr::housing( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pTeriMgr = framework()->get< TerritoryMgr >(); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); std::string cmd( data ), params, subCommand; auto cmdPos = cmd.find_first_of( ' ' ); @@ -1237,7 +1235,7 @@ void Sapphire::World::Manager::DebugCommandMgr::housing( char* data, Entity::Pla // if ( permissionSet < 5 ) // { // auto pZone = player.getCurrentTerritory(); -// if( pTeriMgr->isHousingTerritory( pZone->getTerritoryTypeId() ) ) +// if( terriMgr.isHousingTerritory( pZone->getTerritoryTypeId() ) ) // { // auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); // if( pHousing ) diff --git a/src/world/Manager/DebugCommandMgr.h b/src/world/Manager/DebugCommandMgr.h index 160d7380..25921312 100644 --- a/src/world/Manager/DebugCommandMgr.h +++ b/src/world/Manager/DebugCommandMgr.h @@ -6,20 +6,19 @@ #include "DebugCommand/DebugCommand.h" #include "ForwardsZone.h" -#include "BaseManager.h" namespace Sapphire::World::Manager { // handler for in game commands - class DebugCommandMgr : public Manager::BaseManager + class DebugCommandMgr { private: // container mapping command string to command object std::map< std::string, std::shared_ptr< DebugCommand > > m_commandMap; public: - DebugCommandMgr( FrameworkPtr pFw ); + DebugCommandMgr(); ~DebugCommandMgr(); diff --git a/src/world/Manager/EventMgr.cpp b/src/world/Manager/EventMgr.cpp index 6794325b..007a2003 100644 --- a/src/world/Manager/EventMgr.cpp +++ b/src/world/Manager/EventMgr.cpp @@ -1,22 +1,16 @@ #include #include #include +#include -#include "Framework.h" #include "EventMgr.h" #include "Event/EventHandler.h" using namespace Sapphire::Common; -Sapphire::World::Manager::EventMgr::EventMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( pFw ) -{ - -} - std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); uint16_t eventType = eventId >> 16; auto unknown = std::string{ "unknown" }; @@ -25,7 +19,7 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) { case Event::EventHandler::EventHandlerType::Quest: { - auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); + auto questInfo = exdData.get< Sapphire::Data::Quest >( eventId ); if( !questInfo ) return unknown + "Quest"; @@ -36,7 +30,7 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) } case Event::EventHandler::EventHandlerType::CustomTalk: { - auto customTalkInfo = pExdData->get< Sapphire::Data::CustomTalk >( eventId ); + auto customTalkInfo = exdData.get< Sapphire::Data::CustomTalk >( eventId ); if( !customTalkInfo ) return unknown + "CustomTalk"; @@ -47,14 +41,14 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) } case Event::EventHandler::EventHandlerType::Opening: { - auto openingInfo = pExdData->get< Sapphire::Data::Opening >( eventId ); + auto openingInfo = exdData.get< Sapphire::Data::Opening >( eventId ); if( openingInfo ) return openingInfo->name; return unknown + "Opening"; } case Event::EventHandler::EventHandlerType::Aetheryte: { - auto aetherInfo = pExdData->get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); + auto aetherInfo = exdData.get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); if( aetherInfo->isAetheryte ) return "Aetheryte"; return "Aethernet"; @@ -67,10 +61,10 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) case Event::EventHandler::EventHandlerType::QuestBattleDirector: { - auto qbInfo = pExdData->get< Sapphire::Data::QuestBattle >( eventId & 0xFFFF ); + auto qbInfo = exdData.get< Sapphire::Data::QuestBattle >( eventId & 0xFFFF ); if( !qbInfo ) return "unknown"; - auto questInfo = pExdData->get< Sapphire::Data::Quest >( qbInfo->quest ); + auto questInfo = exdData.get< Sapphire::Data::Quest >( qbInfo->quest ); if( !questInfo ) return "unknown"; @@ -84,7 +78,7 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) case Event::EventHandler::EventHandlerType::Warp: { - auto warpInfo = pExdData->get< Sapphire::Data::Warp >( eventId ); + auto warpInfo = exdData.get< Sapphire::Data::Warp >( eventId ); if( warpInfo ) return "WarpTaxi"; return unknown + "ChocoboWarp"; //who know @@ -92,7 +86,7 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) case Event::EventHandler::EventHandlerType::Shop: { - auto shopInfo = pExdData->get< Sapphire::Data::GilShop >( eventId ); + auto shopInfo = exdData.get< Sapphire::Data::GilShop >( eventId ); return "GilShop" + std::to_string( eventId ); /*if( shopInfo ) @@ -112,8 +106,8 @@ std::string Sapphire::World::Manager::EventMgr::getEventName( uint32_t eventId ) uint32_t Sapphire::World::Manager::EventMgr::mapEventActorToRealActor( uint32_t eventActorId ) { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto levelInfo = pExdData->get< Sapphire::Data::Level >( eventActorId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto levelInfo = exdData.get< Sapphire::Data::Level >( eventActorId ); if( levelInfo ) return levelInfo->object; diff --git a/src/world/Manager/EventMgr.h b/src/world/Manager/EventMgr.h index 1a69ac02..a8bb036d 100644 --- a/src/world/Manager/EventMgr.h +++ b/src/world/Manager/EventMgr.h @@ -3,15 +3,14 @@ #include #include -#include "Manager/BaseManager.h" namespace Sapphire::World::Manager { - class EventMgr : public BaseManager + class EventMgr { public: - EventMgr( FrameworkPtr pFw ); + EventMgr() = default; std::string getEventName( uint32_t eventId ); diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index ff3e0b39..f2a559b5 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -22,7 +22,6 @@ #include "Territory/Housing/HousingInteriorTerritory.h" #include "HousingMgr.h" #include "Territory/Land.h" -#include "Framework.h" #include "ServerMgr.h" #include "Territory/House.h" #include "InventoryMgr.h" @@ -35,8 +34,7 @@ using namespace Sapphire::Network; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; -Sapphire::World::Manager::HousingMgr::HousingMgr( FrameworkPtr pFw ) : - BaseManager( pFw ) +Sapphire::World::Manager::HousingMgr::HousingMgr() { m_containerMap[ 0 ] = std::make_pair( InventoryType::HousingInteriorPlacedItems1, InventoryType::HousingInteriorStoreroom1 ); m_containerMap[ 1 ] = std::make_pair( InventoryType::HousingInteriorPlacedItems2, InventoryType::HousingInteriorStoreroom2 ); @@ -114,10 +112,10 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() { Logger::info( "HousingMgr: Loading inventories for estates" ); - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::LAND_INV_SEL_ALL ); - auto res = pDb->query( stmt ); + auto stmt = db.getPreparedStatement( Db::LAND_INV_SEL_ALL ); + auto res = db.query( stmt ); uint32_t itemCount = 0; while( res->next() ) @@ -131,7 +129,7 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() auto stain = res->getUInt8( "stain" ); auto characterId = res->getUInt64( "CharacterId" ); - auto item = Inventory::make_HousingItem( itemId, catalogId, framework() ); + auto item = Inventory::make_HousingItem( itemId, catalogId ); item->setStain( stain ); item->setStackSize( 1 ); // todo: need to set the owner character id on the item @@ -172,10 +170,10 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() void Sapphire::World::Manager::HousingMgr::initLandCache() { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::LAND_SEL_ALL ); - auto res = pDb->query( stmt ); + auto stmt = db.getPreparedStatement( Db::LAND_SEL_ALL ); + auto res = db.query( stmt ); while( res->next() ) { @@ -243,7 +241,7 @@ void Sapphire::World::Manager::HousingMgr::initLandCache() auto makeContainer = [ &containers, this ]( Common::InventoryType type, uint16_t size ) { - containers[ type ] = make_ItemContainer( type, size, "houseiteminventory", false, framework(), false ); + containers[ type ] = make_ItemContainer( type, size, "houseiteminventory", false, false ); }; uint16_t count = 0; @@ -273,8 +271,8 @@ void Sapphire::World::Manager::HousingMgr::initLandCache() uint64_t Sapphire::World::Manager::HousingMgr::getNextHouseId() { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pQR = pDb->query( "SELECT MAX( HouseId ) FROM house" ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto pQR = db.query( "SELECT MAX( HouseId ) FROM house" ); if( !pQR->next() ) return 0; @@ -289,14 +287,14 @@ uint32_t Sapphire::World::Manager::HousingMgr::toLandSetId( uint16_t territoryTy Sapphire::Data::HousingZonePtr Sapphire::World::Manager::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) { - auto pTeriMgr = framework()->get< TerritoryMgr >(); - return std::dynamic_pointer_cast< HousingZone >( pTeriMgr->getZoneByLandSetId( id ) ); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); + return std::dynamic_pointer_cast< HousingZone >( terriMgr.getZoneByLandSetId( id ) ); } Sapphire::LandPtr Sapphire::World::Manager::HousingMgr::getLandByOwnerId( uint32_t id ) { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT LandSetId, LandId FROM land WHERE OwnerId = " + std::to_string( id ) ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto res = db.query( "SELECT LandSetId, LandId FROM land WHERE OwnerId = " + std::to_string( id ) ); if( !res->next() ) return nullptr; @@ -562,16 +560,16 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play auto itemMax = land->getInventoryItemMax(); // type, maxSize, tableName, isMultiStorage - auto intContainer = make_ItemContainer( InventoryType::HousingInteriorAppearance, itemMax.second, "houseiteminventory", true, framework() ); - auto extContainer = make_ItemContainer( InventoryType::HousingExteriorAppearance, itemMax.first, "houseiteminventory", true, framework() ); + auto intContainer = make_ItemContainer( InventoryType::HousingInteriorAppearance, itemMax.second, "houseiteminventory", true ); + auto extContainer = make_ItemContainer( InventoryType::HousingExteriorAppearance, itemMax.first, "houseiteminventory", true ); // add containers to inv collection auto& houseInventory = getEstateInventory( house->getLandIdent() ); houseInventory[ InventoryType::HousingInteriorAppearance ] = intContainer; houseInventory[ InventoryType::HousingExteriorAppearance ] = extContainer; - auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); - auto preset = exdData->get< Sapphire::Data::HousingPreset >( getItemAdditionalData( presetCatalogId ) ); + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); + auto preset = exdData.get< Sapphire::Data::HousingPreset >( getItemAdditionalData( presetCatalogId ) ); if( !preset ) return false; @@ -623,7 +621,7 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play } }; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); // create and link items for( auto& destContainer : invMap ) @@ -636,12 +634,12 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play if( item.second == 0 ) continue; - auto pItem = invMgr->createItem( player, static_cast< uint32_t >( item.second ) ); + auto pItem = invMgr.createItem( player, static_cast< uint32_t >( item.second ) ); container->setItem( static_cast< uint8_t >( item.first ), pItem ); } - invMgr->saveHousingContainer( land->getLandIdent(), container ); + invMgr.saveHousingContainer( land->getLandIdent(), container ); } // lift off @@ -652,16 +650,16 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play void Sapphire::World::Manager::HousingMgr::createHouse( Sapphire::HousePtr house ) const { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::HOUSING_HOUSE_INS ); + auto stmt = db.getPreparedStatement( Db::HOUSING_HOUSE_INS ); // LandSetId, HouseId, HouseName stmt->setUInt( 1, house->getLandSetId() ); stmt->setUInt( 2, house->getId() ); stmt->setString( 3, house->getHouseName() ); - pDb->execute( stmt ); + db.execute( stmt ); } void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetCatalogId ) @@ -681,7 +679,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl // create house auto ident = pLand->getLandIdent(); auto house = make_House( getNextHouseId(), pLand->getLandSetId(), ident, - "Estate #" + std::to_string( ident.landId + 1 ), "", framework() ); + "Estate #" + std::to_string( ident.landId + 1 ), "" ); pLand->setHouse( house ); @@ -871,8 +869,8 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player& if( it == containers.end() ) return; - auto invMgr = framework()->get< Manager::InventoryMgr >(); - invMgr->sendInventoryContainer( player, it->second ); + auto invMgr = Common::Service< Manager::InventoryMgr >::ref(); + invMgr.sendInventoryContainer( player, it->second ); } const Sapphire::World::Manager::HousingMgr::LandSetLandCacheMap& @@ -946,8 +944,8 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr uint32_t Sapphire::World::Manager::HousingMgr::getItemAdditionalData( uint32_t catalogId ) { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Sapphire::Data::Item >( catalogId ); + auto& pExdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto info = pExdData.get< Sapphire::Data::Item >( catalogId ); return info->additionalData; } @@ -1070,7 +1068,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity if( !hasPermission( player, *land, 0 ) ) return; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Common::Service< InventoryMgr >::ref(); auto ident = land->getLandIdent(); auto& containers = getEstateInventory( ident ); @@ -1087,8 +1085,8 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity return; container->setItem( static_cast< uint8_t >( freeSlot ), item ); - invMgr->sendInventoryContainer( player, container ); - invMgr->saveHousingContainer( ident, container ); + invMgr.sendInventoryContainer( player, container ); + invMgr.saveHousingContainer( ident, container ); } else { @@ -1110,8 +1108,8 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity return; container->setItem( static_cast< uint8_t >( freeSlot ), item ); - invMgr->sendInventoryContainer( player, container ); - invMgr->saveHousingContainer( ident, container ); + invMgr.sendInventoryContainer( player, container ); + invMgr.saveHousingContainer( ident, container ); } } } @@ -1120,7 +1118,7 @@ bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& pl Inventory::HousingItemPtr item, Common::LandIdent ident ) { - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); auto& container = getEstateInventory( ident )[ InventoryType::HousingExteriorPlacedItems ]; @@ -1135,11 +1133,11 @@ bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& pl // we need to save the item again as removing it from the container on the player will remove it from charaglobalitem // todo: this needs to be handled a bit better as it might be possible to overwrite another item that is created in the meantime - invMgr->saveItem( player, item ); + invMgr.saveItem( player, item ); - invMgr->sendInventoryContainer( player, container ); - invMgr->saveHousingContainer( ident, container ); - invMgr->updateHousingItemPosition( item ); + invMgr.sendInventoryContainer( player, container ); + invMgr.saveHousingContainer( ident, container ); + invMgr.updateHousingItemPosition( item ); // add to zone and spawn auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ); @@ -1153,7 +1151,7 @@ bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& pl bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& player, Inventory::HousingItemPtr item ) { - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentTerritory() ); assert( zone ); @@ -1182,9 +1180,9 @@ bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& pl container->setItem( static_cast< uint8_t >( freeSlot ), item ); // resend container - invMgr->sendInventoryContainer( player, container ); - invMgr->saveHousingContainer( ident, container ); - invMgr->updateHousingItemPosition( item ); + invMgr.sendInventoryContainer( player, container ); + invMgr.saveHousingContainer( ident, container ); + invMgr.updateHousingItemPosition( item ); auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentTerritory() ); assert( zone ); @@ -1224,7 +1222,7 @@ void Sapphire::World::Manager::HousingMgr::sendInternalEstateInventoryBatch( Sap else containerIds = m_internalPlacedItemContainers; - auto invMgr = framework()->get< Manager::InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); auto& containers = getEstateInventory( zone->getLandIdent() ); for( auto containerId : containerIds ) @@ -1233,7 +1231,7 @@ void Sapphire::World::Manager::HousingMgr::sendInternalEstateInventoryBatch( Sap if( container == containers.end() ) break; - invMgr->sendInventoryContainer( player, container->second ); + invMgr.sendInventoryContainer( player, container->second ); } } @@ -1296,8 +1294,8 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla item->setRot( rot ); // save - auto invMgr = framework()->get< InventoryMgr >(); - invMgr->updateHousingItemPosition( item ); + auto& invMgr = Service< InventoryMgr >::ref(); + invMgr.updateHousingItemPosition( item ); terri.updateHousingObjectPosition( player, slot, item->getPos(), static_cast< uint16_t >( item->getRot() ) ); @@ -1334,8 +1332,8 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla item->setPos( pos ); item->setRot( rot ); - auto invMgr = framework()->get< InventoryMgr >(); - invMgr->updateHousingItemPosition( item ); + auto& invMgr = Service< InventoryMgr >::ref(); + invMgr.updateHousingItemPosition( item ); terri.updateYardObjectPos( player, slot, static_cast< uint16_t >( ident.landId ), *item ); @@ -1423,13 +1421,13 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p if( !player.getFreeInventoryContainerSlot( containerPair ) ) return false; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); // remove it from housing inventory container->removeItem( static_cast< uint8_t >( slotId ) ); - invMgr->sendInventoryContainer( player, container ); - invMgr->removeHousingItemPosition( *item ); - invMgr->removeItemFromHousingContainer( terri.getLandIdent(), containerId, slotId ); + invMgr.sendInventoryContainer( player, container ); + invMgr.removeHousingItemPosition( *item ); + invMgr.removeItemFromHousingContainer( terri.getLandIdent(), containerId, slotId ); // add to player inv player.insertInventoryItem( containerPair.first, containerPair.second, item ); @@ -1445,16 +1443,16 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p if( !freeContainer ) return false; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); container->removeItem( static_cast< uint8_t >( slotId ) ); - invMgr->sendInventoryContainer( player, container ); - invMgr->removeHousingItemPosition( *item ); - invMgr->removeItemFromHousingContainer( terri.getLandIdent(), containerId, slotId ); + invMgr.sendInventoryContainer( player, container ); + invMgr.removeHousingItemPosition( *item ); + invMgr.removeItemFromHousingContainer( terri.getLandIdent(), containerId, slotId ); freeContainer->setItem( static_cast< uint8_t >( slotId ), item ); - invMgr->sendInventoryContainer( player, freeContainer ); - invMgr->saveHousingContainer( terri.getLandIdent(), freeContainer ); + invMgr.sendInventoryContainer( player, freeContainer ); + invMgr.saveHousingContainer( terri.getLandIdent(), freeContainer ); } // despawn @@ -1485,7 +1483,7 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p bool shouldDespawnItem = containerType != InventoryType::HousingExteriorStoreroom; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); if( sendToStoreroom ) { @@ -1496,13 +1494,13 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p return false; sourceContainer->removeItem( slotId ); - invMgr->sendInventoryContainer( player, sourceContainer ); - invMgr->removeItemFromHousingContainer( land.getLandIdent(), sourceContainer->getId(), slotId ); - invMgr->removeHousingItemPosition( *item ); + invMgr.sendInventoryContainer( player, sourceContainer ); + invMgr.removeItemFromHousingContainer( land.getLandIdent(), sourceContainer->getId(), slotId ); + invMgr.removeHousingItemPosition( *item ); storeroomContainer->setItem( static_cast< uint8_t >( freeSlot ), item ); - invMgr->sendInventoryContainer( player, storeroomContainer ); - invMgr->saveHousingContainer( land.getLandIdent(), storeroomContainer ); + invMgr.sendInventoryContainer( player, storeroomContainer ); + invMgr.saveHousingContainer( land.getLandIdent(), storeroomContainer ); } else { @@ -1512,9 +1510,9 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p // remove from housing inv sourceContainer->removeItem( slotId ); - invMgr->sendInventoryContainer( player, sourceContainer ); - invMgr->removeHousingItemPosition( *item ); - invMgr->removeItemFromHousingContainer( land.getLandIdent(), sourceContainer->getId(), slotId ); + invMgr.sendInventoryContainer( player, sourceContainer ); + invMgr.removeHousingItemPosition( *item ); + invMgr.removeItemFromHousingContainer( land.getLandIdent(), sourceContainer->getId(), slotId ); // add to player inv player.insertInventoryItem( containerPair.first, containerPair.second, item ); @@ -1570,9 +1568,9 @@ void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::E if( it == inv.end() ) return; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); - invMgr->sendInventoryContainer( player, it->second ); + invMgr.sendInventoryContainer( player, it->second ); auto pkt = Server::makeActorControlSelf( player.getId(), Network::ActorControl::ShowEstateExternalAppearanceUI, plot ); player.queuePacket( pkt ); @@ -1600,9 +1598,9 @@ void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::E if( it == inv.end() ) return; - auto invMgr = framework()->get< InventoryMgr >(); + auto& invMgr = Service< InventoryMgr >::ref(); - invMgr->sendInventoryContainer( player, it->second ); + invMgr.sendInventoryContainer( player, it->second ); auto pkt = Server::makeActorControlSelf( player.getId(), Network::ActorControl::ShowEstateInternalAppearanceUI ); player.queuePacket( pkt ); @@ -1627,5 +1625,5 @@ Sapphire::Inventory::HousingItemPtr Sapphire::World::Manager::HousingMgr::getHou if( !tmpItem ) return nullptr; - return Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId(), framework() ); + return Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId() ); } diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index cd81255e..b810354f 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -2,7 +2,6 @@ #define SAPPHIRE_HOUSINGMGR_H #include "Forwards.h" -#include "BaseManager.h" #include "Territory/HousingZone.h" #include #include @@ -15,7 +14,7 @@ namespace Sapphire::Data namespace Sapphire::World::Manager { - class HousingMgr : public BaseManager + class HousingMgr { public: @@ -69,7 +68,7 @@ namespace Sapphire::World::Manager */ using LandIdentToInventoryContainerMap = std::unordered_map< uint64_t, ContainerIdToContainerMap >; - HousingMgr( FrameworkPtr pFw ); + HousingMgr(); virtual ~HousingMgr(); bool init(); diff --git a/src/world/Manager/InventoryMgr.cpp b/src/world/Manager/InventoryMgr.cpp index 6d8217c6..b4c3759e 100644 --- a/src/world/Manager/InventoryMgr.cpp +++ b/src/world/Manager/InventoryMgr.cpp @@ -10,15 +10,10 @@ #include #include - -#include "Framework.h" +#include using namespace Sapphire::Network::Packets; -Sapphire::World::Manager::InventoryMgr::InventoryMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( pFw ) -{ } - void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::Entity::Player& player, Sapphire::ItemContainerPtr container ) { @@ -71,15 +66,14 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E Sapphire::ItemPtr Sapphire::World::Manager::InventoryMgr::createItem( Entity::Player& player, uint32_t catalogId, uint32_t quantity ) { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto itemMgr = framework()->get< Manager::ItemMgr >(); - auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); + auto& pExdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& itemMgr = Common::Service< Manager::ItemMgr >::ref(); + auto itemInfo = pExdData.get< Sapphire::Data::Item >( catalogId ); if( !itemInfo ) return nullptr; - auto item = make_Item( itemMgr->getNextUId(), catalogId, framework() ); + auto item = make_Item( itemMgr.getNextUId(), catalogId ); item->setStackSize( std::max< uint32_t >( 1, quantity ) ); @@ -103,9 +97,9 @@ void Sapphire::World::Manager::InventoryMgr::removeItemFromHousingContainer( Sap uint16_t containerId, uint16_t slotId ) { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::LAND_INV_DEL ); + auto stmt = db.getPreparedStatement( Db::LAND_INV_DEL ); auto u64ident = *reinterpret_cast< uint64_t* >( &ident ); @@ -113,16 +107,16 @@ void Sapphire::World::Manager::InventoryMgr::removeItemFromHousingContainer( Sap stmt->setUInt( 2, containerId ); stmt->setUInt( 3, slotId ); - pDb->directExecute( stmt ); + db.directExecute( stmt ); } void Sapphire::World::Manager::InventoryMgr::saveHousingContainerItem( uint64_t ident, uint16_t containerId, uint16_t slotId, uint64_t itemId ) { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::LAND_INV_UP ); + auto stmt = db.getPreparedStatement( Db::LAND_INV_UP ); // LandIdent, ContainerId, SlotId, ItemId, ItemId stmt->setUInt64( 1, ident ); @@ -134,14 +128,14 @@ void Sapphire::World::Manager::InventoryMgr::saveHousingContainerItem( uint64_t // the second time is for the ON DUPLICATE KEY UPDATE condition stmt->setUInt64( 5, itemId ); - pDb->directExecute( stmt ); + db.directExecute( stmt ); } void Sapphire::World::Manager::InventoryMgr::updateHousingItemPosition( Sapphire::Inventory::HousingItemPtr item ) { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::LAND_INV_UP_ITEMPOS ); + auto stmt = db.getPreparedStatement( Db::LAND_INV_UP_ITEMPOS ); // ItemId, PosX, PosY, PosZ, Rotation, PosX, PosY, PosZ, Rotation auto pos = item->getPos(); @@ -159,29 +153,29 @@ void Sapphire::World::Manager::InventoryMgr::updateHousingItemPosition( Sapphire stmt->setUInt( 8, pos.z ); stmt->setInt( 9, rot ); - pDb->execute( stmt ); + db.execute( stmt ); } void Sapphire::World::Manager::InventoryMgr::removeHousingItemPosition( Sapphire::Inventory::HousingItem& item ) { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::LAND_INV_DEL_ITEMPOS ); + auto stmt = db.getPreparedStatement( Db::LAND_INV_DEL_ITEMPOS ); stmt->setUInt64( 1, item.getUId() ); - pDb->directExecute( stmt ); + db.directExecute( stmt ); } void Sapphire::World::Manager::InventoryMgr::saveItem( Sapphire::Entity::Player& player, Sapphire::ItemPtr item ) { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_INS ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::CHARA_ITEMGLOBAL_INS ); stmt->setUInt( 1, player.getId() ); stmt->setUInt64( 2, item->getUId() ); stmt->setUInt( 3, item->getId() ); stmt->setUInt( 4, item->getStackSize() ); - pDb->directExecute( stmt ); + db.directExecute( stmt ); } diff --git a/src/world/Manager/InventoryMgr.h b/src/world/Manager/InventoryMgr.h index 4bb154ea..5803450a 100644 --- a/src/world/Manager/InventoryMgr.h +++ b/src/world/Manager/InventoryMgr.h @@ -2,15 +2,14 @@ #define SAPPHIRE_INVENTORYMGR_H #include "ForwardsZone.h" -#include "BaseManager.h" namespace Sapphire::World::Manager { - class InventoryMgr : public Sapphire::World::Manager::BaseManager + class InventoryMgr { public: - explicit InventoryMgr( Sapphire::FrameworkPtr pFw ); + InventoryMgr() = default; /*! * @brief Sends an item container to a player diff --git a/src/world/Manager/ItemMgr.cpp b/src/world/Manager/ItemMgr.cpp index ed119610..a28cec61 100644 --- a/src/world/Manager/ItemMgr.cpp +++ b/src/world/Manager/ItemMgr.cpp @@ -2,18 +2,12 @@ #include "Inventory/ItemContainer.h" #include "Inventory/Item.h" -#include "Framework.h" #include #include #include #include - -Sapphire::World::Manager::ItemMgr::ItemMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( pFw ) -{ - -} +#include bool Sapphire::World::Manager::ItemMgr::isArmory( uint16_t containerId ) { @@ -122,27 +116,26 @@ bool Sapphire::World::Manager::ItemMgr::isOneHandedWeapon( Common::ItemUICategor Sapphire::ItemPtr Sapphire::World::Manager::ItemMgr::loadItem( uint64_t uId ) { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); // 1 catalogId, 2 stack, 3 reservedFlag, 4 signatureId, 5 flags, 6 durability, 7 refine, 8 materia_0, 9 materia_1, // 10 materia_2, 11 materia_3, 12 materia_4, 13 stain, 14 pattern, 15 buffer_0, 16 buffer_1, 17 buffer_2, // 18 buffer_3, 19 buffer_4 - auto query = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_SELECT ); + auto query = db.getPreparedStatement( Db::CHARA_ITEMGLOBAL_SELECT ); query->setUInt64( 1, uId ); - auto itemRes = pDb->query( query ); + auto itemRes = db.query( query ); if( !itemRes->next() ) return nullptr; try { - auto itemInfo = pExdData->get< Sapphire::Data::Item >( itemRes->getUInt( 1 ) ); + auto itemInfo = exdData.get< Sapphire::Data::Item >( itemRes->getUInt( 1 ) ); bool isHq = itemRes->getUInt( 3 ) == 1; ItemPtr pItem = make_Item( uId, itemRes->getUInt( 1 ), - framework(), isHq ); pItem->setStackSize( itemRes->getUInt( 2 ) ); @@ -185,8 +178,9 @@ Sapphire::Common::ContainerType Sapphire::World::Manager::ItemMgr::getContainerT uint32_t Sapphire::World::Manager::ItemMgr::getNextUId() { uint32_t charId = 0; - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pQR = pDb->query( "SELECT MAX(ItemId) FROM charaglobalitem" ); + + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto pQR = db.query( "SELECT MAX(ItemId) FROM charaglobalitem" ); if( !pQR->next() ) return 0x00500001; diff --git a/src/world/Manager/ItemMgr.h b/src/world/Manager/ItemMgr.h index 795f7c2b..b24c56e9 100644 --- a/src/world/Manager/ItemMgr.h +++ b/src/world/Manager/ItemMgr.h @@ -3,15 +3,14 @@ #include #include "ForwardsZone.h" -#include "BaseManager.h" namespace Sapphire::World::Manager { - class ItemMgr : public BaseManager + class ItemMgr { public: - ItemMgr( FrameworkPtr pFw ); + ItemMgr() = default; ItemPtr loadItem( uint64_t uId ); diff --git a/src/world/Manager/LinkshellMgr.cpp b/src/world/Manager/LinkshellMgr.cpp index 11d56859..fdbb8cb9 100644 --- a/src/world/Manager/LinkshellMgr.cpp +++ b/src/world/Manager/LinkshellMgr.cpp @@ -1,19 +1,15 @@ #include #include +#include #include "Linkshell/Linkshell.h" -#include "Framework.h" #include "LinkshellMgr.h" -Sapphire::World::Manager::LinkshellMgr::LinkshellMgr( FrameworkPtr pFw ) : - BaseManager( pFw ) -{ -} - bool Sapphire::World::Manager::LinkshellMgr::loadLinkshells() { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT LinkshellId, MasterCharacterId, CharacterIdList, " + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + + auto res = db.query( "SELECT LinkshellId, MasterCharacterId, CharacterIdList, " "LinkshellName, LeaderIdList, InviteIdList " "FROM infolinkshell " "ORDER BY LinkshellId ASC;" ); diff --git a/src/world/Manager/LinkshellMgr.h b/src/world/Manager/LinkshellMgr.h index 034f7884..5e97c351 100644 --- a/src/world/Manager/LinkshellMgr.h +++ b/src/world/Manager/LinkshellMgr.h @@ -4,12 +4,11 @@ #include #include #include "ForwardsZone.h" -#include "BaseManager.h" namespace Sapphire::World::Manager { - class LinkshellMgr : public Manager::BaseManager + class LinkshellMgr { private: std::map< uint64_t, LinkshellPtr > m_linkshellIdMap; @@ -20,7 +19,7 @@ namespace Sapphire::World::Manager LinkshellPtr getLinkshellById( uint64_t lsId ); public: - LinkshellMgr( FrameworkPtr pFw ); + LinkshellMgr() = default; bool loadLinkshells(); }; diff --git a/src/world/Manager/MarketMgr.cpp b/src/world/Manager/MarketMgr.cpp index 1ad81cf9..54f9fe65 100644 --- a/src/world/Manager/MarketMgr.cpp +++ b/src/world/Manager/MarketMgr.cpp @@ -1,7 +1,6 @@ #include "MarketMgr.h" #include -#include #include #include @@ -14,26 +13,20 @@ using namespace Sapphire::Network::Packets; -Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( pFw ) -{ - -} - bool Sapphire::World::Manager::MarketMgr::init() { // Logger::info( "MarketMgr: warming up marketable item cache..." ); // // // build item cache -// auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); -// auto idList = exdData->getItemIdList(); +// auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); +// auto idList = exdData.getItemIdList(); // // for( auto id : idList ) // { // if( id > 10000 ) // break; // -// auto item = exdData->get< Sapphire::Data::Item >( id ); +// auto item = exdData.get< Sapphire::Data::Item >( id ); // if( !item ) // continue; // diff --git a/src/world/Manager/MarketMgr.h b/src/world/Manager/MarketMgr.h index 328c9c12..a9a69529 100644 --- a/src/world/Manager/MarketMgr.h +++ b/src/world/Manager/MarketMgr.h @@ -2,16 +2,15 @@ #define SAPPHIRE_MARKETMGR_H #include "ForwardsZone.h" -#include "BaseManager.h" #include namespace Sapphire::World::Manager { - class MarketMgr : public Manager::BaseManager + class MarketMgr { public: - explicit MarketMgr( FrameworkPtr pFw ); + MarketMgr() = default; bool init(); diff --git a/src/world/Manager/NaviMgr.cpp b/src/world/Manager/NaviMgr.cpp index 62877ace..4bebd7d4 100644 --- a/src/world/Manager/NaviMgr.cpp +++ b/src/world/Manager/NaviMgr.cpp @@ -2,12 +2,6 @@ #include "Navi/NaviProvider.h" #include -Sapphire::World::Manager::NaviMgr::NaviMgr( FrameworkPtr pFw ) : - BaseManager( pFw ), - m_pFw( pFw ) -{ -} - bool Sapphire::World::Manager::NaviMgr::setupTerritory( const std::string& bgPath ) { std::string bg = getBgName( bgPath ); @@ -16,7 +10,7 @@ bool Sapphire::World::Manager::NaviMgr::setupTerritory( const std::string& bgPat if( m_naviProviderTerritoryMap.find( bg ) != m_naviProviderTerritoryMap.end() ) return true; - auto provider = Navi::make_NaviProvider( bg, m_pFw ); + auto provider = Navi::make_NaviProvider( bg ); if( provider->init() ) { diff --git a/src/world/Manager/NaviMgr.h b/src/world/Manager/NaviMgr.h index 6aeac713..3c08d886 100644 --- a/src/world/Manager/NaviMgr.h +++ b/src/world/Manager/NaviMgr.h @@ -2,26 +2,21 @@ #define SAPPHIRE_NAVIMGR_H #include "ForwardsZone.h" -#include "BaseManager.h" #include namespace Sapphire::World::Manager { - class NaviMgr : public BaseManager + class NaviMgr { - public: - - NaviMgr( FrameworkPtr pFw ); + NaviMgr() = default; virtual ~NaviMgr() = default; bool setupTerritory( const std::string& bgPath ); Navi::NaviProviderPtr getNaviProvider( const std::string& bgPath ); private: - FrameworkPtr m_pFw; - std::string getBgName( const std::string& bgPath ); std::unordered_map< std::string, Navi::NaviProviderPtr > m_naviProviderTerritoryMap; diff --git a/src/world/Manager/PlayerMgr.cpp b/src/world/Manager/PlayerMgr.cpp index 1f0f60a1..79062f2e 100644 --- a/src/world/Manager/PlayerMgr.cpp +++ b/src/world/Manager/PlayerMgr.cpp @@ -1,6 +1,5 @@ #include "PlayerMgr.h" -#include #include #include @@ -10,41 +9,34 @@ #include #include +#include using namespace Sapphire::World::Manager; -Sapphire::World::Manager::PlayerMgr::PlayerMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( std::move( pFw ) ) -{ - -} - void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param ) { // check if we have one in the db first - auto terriMgr = framework()->get< TerritoryMgr >(); - if( !terriMgr ) - return; + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); Sapphire::TerritoryPtr destinationZone; - auto terriPos = terriMgr->getTerritoryPosition( landId ); + auto terriPos = terriMgr.getTerritoryPosition( landId ); if( terriPos ) { // check if its a housing zone, zoning is different here - if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) ) + if( terriMgr.isHousingTerritory( terriPos->getTargetZoneId() ) ) { - auto housingMgr = framework()->get< HousingMgr >(); - auto landSetId = housingMgr->toLandSetId( terriPos->getTargetZoneId(), param ); + auto& housingMgr = Common::Service< HousingMgr >::ref(); + auto landSetId = housingMgr.toLandSetId( terriPos->getTargetZoneId(), param ); - auto housingZone = housingMgr->getHousingZoneByLandSetId( landSetId ); + auto housingZone = housingMgr.getHousingZoneByLandSetId( landSetId ); if( !housingZone ) return; destinationZone = housingZone; } - else if( terriMgr->isInstanceContentTerritory( terriPos->getTargetZoneId() ) ) + else if( terriMgr.isInstanceContentTerritory( terriPos->getTargetZoneId() ) ) { // todo: instance dungeon handling // will need to use setInstance so old pos gets set @@ -53,7 +45,7 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire: else { // normal zones - destinationZone = terriMgr->getZoneByTerritoryTypeId( terriPos->getTargetZoneId() ); + destinationZone = terriMgr.getZoneByTerritoryTypeId( terriPos->getTargetZoneId() ); } } else @@ -73,5 +65,5 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire: player.setPos( terriPos->getTargetPosition() ); player.setRot( terriPos->getTargetRotation() ); - terriMgr->movePlayer( destinationZone, player.getAsPlayer() ); + terriMgr.movePlayer( destinationZone, player.getAsPlayer() ); } diff --git a/src/world/Manager/PlayerMgr.h b/src/world/Manager/PlayerMgr.h index f7d08488..a0046fe3 100644 --- a/src/world/Manager/PlayerMgr.h +++ b/src/world/Manager/PlayerMgr.h @@ -2,14 +2,13 @@ #define SAPPHIRE_PLAYERMGR_H #include "ForwardsZone.h" -#include "BaseManager.h" namespace Sapphire::World::Manager { -class PlayerMgr : public Manager::BaseManager +class PlayerMgr { public: - PlayerMgr( FrameworkPtr pFw ); + PlayerMgr() = default; void movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param = 0 ); }; diff --git a/src/world/Manager/RNGMgr.cpp b/src/world/Manager/RNGMgr.cpp index 69c21185..b6fac08d 100644 --- a/src/world/Manager/RNGMgr.cpp +++ b/src/world/Manager/RNGMgr.cpp @@ -1,8 +1,7 @@ #include "RNGMgr.h" #include -Sapphire::World::Manager::RNGMgr::RNGMgr( FrameworkPtr pFw ) : - BaseManager( pFw ), +Sapphire::World::Manager::RNGMgr::RNGMgr() : m_engine( *engineSeed< std::mt19937::state_size >() ) { diff --git a/src/world/Manager/RNGMgr.h b/src/world/Manager/RNGMgr.h index a91325f2..1d6e08e2 100644 --- a/src/world/Manager/RNGMgr.h +++ b/src/world/Manager/RNGMgr.h @@ -2,7 +2,6 @@ #define SAPPHIRE_RNGMGR_H #include "Forwards.h" -#include "BaseManager.h" #include #include @@ -47,13 +46,10 @@ namespace Sapphire::World::Manager std::mt19937 m_engine; }; - class RNGMgr : public BaseManager + class RNGMgr { - public: - - - RNGMgr( FrameworkPtr pFw ); + RNGMgr(); virtual ~RNGMgr() = default; RNGMgr( const RNGMgr& pRNGMgr ) = delete; diff --git a/src/world/Manager/ShopMgr.cpp b/src/world/Manager/ShopMgr.cpp index 30470fa2..80df3a04 100644 --- a/src/world/Manager/ShopMgr.cpp +++ b/src/world/Manager/ShopMgr.cpp @@ -1,29 +1,21 @@ #include "ShopMgr.h" -#include #include #include #include +#include using namespace Sapphire; -Sapphire::World::Manager::ShopMgr::ShopMgr( FrameworkPtr pFw ) : - BaseManager( pFw ) -{ - -} - bool Sapphire::World::Manager::ShopMgr::purchaseGilShopItem( Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ) { - auto exdData = framework()->get< Data::ExdDataGenerated >(); - if( !exdData ) - return false; + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto gilShopItem = exdData->get< Data::GilShopItem >( shopId, itemId ); + auto gilShopItem = exdData.get< Data::GilShopItem >( shopId, itemId ); if( !gilShopItem ) return false; - auto item = exdData->get< Data::Item >( gilShopItem->item ); + auto item = exdData.get< Data::Item >( gilShopItem->item ); if( !item ) return false; diff --git a/src/world/Manager/ShopMgr.h b/src/world/Manager/ShopMgr.h index 6464d026..5e40ae1d 100644 --- a/src/world/Manager/ShopMgr.h +++ b/src/world/Manager/ShopMgr.h @@ -1,12 +1,11 @@ #include "ForwardsZone.h" -#include "BaseManager.h" namespace Sapphire::World::Manager { - class ShopMgr : public Manager::BaseManager + class ShopMgr { public: - ShopMgr( FrameworkPtr pFw ); + ShopMgr() = default; bool purchaseGilShopItem( Sapphire::Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ); }; } \ No newline at end of file diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 25d7458b..7997cdc4 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -15,15 +15,13 @@ #include "Territory/QuestBattle.h" #include "TerritoryMgr.h" #include "HousingMgr.h" -#include "Framework.h" #include "Territory/Land.h" #include "Territory/House.h" #include "Territory/Housing/HousingInteriorTerritory.h" #include "NaviMgr.h" -Sapphire::World::Manager::TerritoryMgr::TerritoryMgr( Sapphire::FrameworkPtr pFw ) : - BaseManager( pFw ), +Sapphire::World::Manager::TerritoryMgr::TerritoryMgr() : m_lastInstanceId( 10000 ) { @@ -31,20 +29,20 @@ Sapphire::World::Manager::TerritoryMgr::TerritoryMgr( Sapphire::FrameworkPtr pFw void Sapphire::World::Manager::TerritoryMgr::loadTerritoryTypeDetailCache() { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto idList = pExdData->getTerritoryTypeIdList(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto idList = exdData.getTerritoryTypeIdList(); for( auto id : idList ) { - auto teri1 = pExdData->get< Sapphire::Data::TerritoryType >( id ); + auto teri1 = exdData.get< Sapphire::Data::TerritoryType >( id ); if( !teri1->name.empty() ) m_territoryTypeDetailCacheMap[ id ] = teri1; } - for( auto id : pExdData->getContentFinderConditionIdList() ) + for( auto id : exdData.getContentFinderConditionIdList() ) { - auto cfc = pExdData->get< Sapphire::Data::ContentFinderCondition >( id ); + auto cfc = exdData.get< Sapphire::Data::ContentFinderCondition >( id ); if( !cfc || cfc->contentLinkType != 5 ) continue; @@ -165,7 +163,7 @@ bool Sapphire::World::Manager::TerritoryMgr::isHousingTerritory( uint32_t territ bool Sapphire::World::Manager::TerritoryMgr::createDefaultTerritories() { - auto pExdData = framework()->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); // for each entry in territoryTypeExd, check if it is a normal and if so, add the zone object for( const auto& territory : m_territoryTypeDetailCacheMap ) { @@ -176,14 +174,14 @@ bool Sapphire::World::Manager::TerritoryMgr::createDefaultTerritories() if( territoryInfo->name.empty() ) continue; - auto pPlaceName = pExdData->get< Sapphire::Data::PlaceName >( territoryInfo->placeName ); + auto pPlaceName = exdData.get< Sapphire::Data::PlaceName >( territoryInfo->placeName ); if( !pPlaceName || pPlaceName->name.empty() || !isDefaultTerritory( territoryTypeId ) ) continue; uint32_t guid = getNextInstanceId(); - auto pZone = make_Territory( territoryTypeId, guid, territoryInfo->name, pPlaceName->name, framework() ); + auto pZone = make_Territory( territoryTypeId, guid, territoryInfo->name, pPlaceName->name ); pZone->init(); std::string bgPath = territoryInfo->bg; @@ -213,7 +211,7 @@ bool Sapphire::World::Manager::TerritoryMgr::createDefaultTerritories() bool Sapphire::World::Manager::TerritoryMgr::createHousingTerritories() { //separate housing zones from default - auto pExdData = framework()->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); for( const auto& territory : m_territoryTypeDetailCacheMap ) { auto territoryTypeId = territory.first; @@ -224,7 +222,7 @@ bool Sapphire::World::Manager::TerritoryMgr::createHousingTerritories() if( territoryInfo->name.empty() ) continue; - auto pPlaceName = pExdData->get< Sapphire::Data::PlaceName >( territoryInfo->placeName ); + auto pPlaceName = exdData.get< Sapphire::Data::PlaceName >( territoryInfo->placeName ); if( !pPlaceName || pPlaceName->name.empty() || !isHousingTerritory( territoryTypeId ) ) continue; @@ -241,8 +239,7 @@ bool Sapphire::World::Manager::TerritoryMgr::createHousingTerritories() pPlaceName->name, wardNum ); - auto pHousingZone = make_HousingZone( wardNum, territoryTypeId, guid, territoryInfo->name, - pPlaceName->name, framework() ); + auto pHousingZone = make_HousingZone( wardNum, territoryTypeId, guid, territoryInfo->name, pPlaceName->name ); pHousingZone->init(); InstanceIdToTerritoryPtrMap instanceMap; @@ -267,16 +264,16 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::createTerritoryIn // if( isInstanceContentTerritory( territoryTypeId ) ) // return nullptr; - auto pExdData = framework()->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); auto pTeri = getTerritoryDetail( territoryTypeId ); - auto pPlaceName = pExdData->get< Sapphire::Data::PlaceName >( pTeri->placeName ); + auto pPlaceName = exdData.get< Sapphire::Data::PlaceName >( pTeri->placeName ); if( !pTeri || !pPlaceName ) return nullptr; Logger::debug( "Starting instance for territory: {0} ({1})", territoryTypeId, pPlaceName->name ); - auto pZone = make_Territory( territoryTypeId, getNextInstanceId(), pTeri->name, pPlaceName->name, framework() ); + auto pZone = make_Territory( territoryTypeId, getNextInstanceId(), pTeri->name, pPlaceName->name ); pZone->init(); m_guIdToTerritoryPtrMap[ pZone->getGuId() ] = pZone; @@ -295,16 +292,16 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::createQuestBattle auto contentFinderConditionId = it->second; - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto pContentFinderCondition = pExdData->get< Sapphire::Data::ContentFinderCondition >( contentFinderConditionId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto pContentFinderCondition = exdData.get< Sapphire::Data::ContentFinderCondition >( contentFinderConditionId ); if( !pContentFinderCondition ) return nullptr; - auto pQuestBattleInfo = pExdData->get< Sapphire::Data::QuestBattle >( questBattleId ); + auto pQuestBattleInfo = exdData.get< Sapphire::Data::QuestBattle >( questBattleId ); if( !pQuestBattleInfo ) return nullptr; - auto pQuestInfo = pExdData->get< Sapphire::Data::Quest >( pQuestBattleInfo->quest ); + auto pQuestInfo = exdData.get< Sapphire::Data::Quest >( pQuestBattleInfo->quest ); if( !pQuestInfo ) return nullptr; @@ -319,7 +316,7 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::createQuestBattle Logger::debug( "Starting instance for QuestBattle id: {0} ({1})", questBattleId, pQuestInfo->name ); auto pZone = make_QuestBattle( pQuestBattleInfo, pContentFinderCondition->territoryType, getNextInstanceId(), - pTeri->name, pQuestInfo->name, questBattleId, framework() ); + pTeri->name, pQuestInfo->name, questBattleId ); pZone->init(); m_questBattleIdToInstanceMap[ questBattleId ][ pZone->getGuId() ] = pZone; @@ -331,14 +328,14 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::createQuestBattle Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::createInstanceContent( uint32_t contentFinderConditionId ) { + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto pExdData = framework()->get< Data::ExdDataGenerated >(); - auto pContentFinderCondition = pExdData->get< Sapphire::Data::ContentFinderCondition >( contentFinderConditionId ); + auto pContentFinderCondition = exdData.get< Sapphire::Data::ContentFinderCondition >( contentFinderConditionId ); if( !pContentFinderCondition ) return nullptr; auto instanceContentId = pContentFinderCondition->content; - auto pInstanceContent = pExdData->get< Sapphire::Data::InstanceContent >( instanceContentId ); + auto pInstanceContent = exdData.get< Sapphire::Data::InstanceContent >( instanceContentId ); if( !pInstanceContent ) return nullptr; @@ -353,7 +350,7 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::createInstanceCon Logger::debug( "Starting instance for InstanceContent id: {0} ({1})", instanceContentId, pContentFinderCondition->name ); auto pZone = make_InstanceContent( pInstanceContent, pContentFinderCondition->territoryType, getNextInstanceId(), - pTeri->name, pContentFinderCondition->name, instanceContentId, framework() ); + pTeri->name, pContentFinderCondition->name, instanceContentId ); pZone->init(); m_instanceContentIdToInstanceMap[ instanceContentId ][ pZone->getGuId() ] = pZone; @@ -375,10 +372,10 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::findOrCreateHousi } // otherwise, create it - auto housingMgr = framework()->get< Manager::HousingMgr >(); + auto& housingMgr = Common::Service< Manager::HousingMgr >::ref(); auto parentZone = std::dynamic_pointer_cast< HousingZone >( - getZoneByLandSetId( housingMgr->toLandSetId( static_cast< uint16_t >( landIdent.territoryTypeId ), + getZoneByLandSetId( housingMgr.toLandSetId( static_cast< uint16_t >( landIdent.territoryTypeId ), static_cast< uint8_t >( landIdent.wardNum ) ) ) ); if( !parentZone ) @@ -425,7 +422,7 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::findOrCreateHousi auto zone = World::Territory::Housing::make_HousingInteriorTerritory( landIdent, territoryTypeId, getNextInstanceId(), terriInfo->name, - house->getHouseName(), framework() ); + house->getHouseName() ); zone->init(); @@ -469,8 +466,8 @@ Sapphire::TerritoryPtr Sapphire::World::Manager::TerritoryMgr::getTerritoryByGuI void Sapphire::World::Manager::TerritoryMgr::loadTerritoryPositionMap() { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pQR = pDb->query( "SELECT id, target_zone_id, pos_x, pos_y, pos_z, pos_o, radius FROM zonepositions;" ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto pQR = db.query( "SELECT id, target_zone_id, pos_x, pos_y, pos_z, pos_o, radius FROM zonepositions;" ); while( pQR->next() ) { diff --git a/src/world/Manager/TerritoryMgr.h b/src/world/Manager/TerritoryMgr.h index 62967378..88935a5f 100644 --- a/src/world/Manager/TerritoryMgr.h +++ b/src/world/Manager/TerritoryMgr.h @@ -2,7 +2,6 @@ #define SAPPHIRE_TERRITORYMGR_H #include "ForwardsZone.h" -#include "BaseManager.h" #include #include @@ -27,7 +26,7 @@ namespace Sapphire::World::Manager This class manages persistent and temporary instances alike. */ - class TerritoryMgr : public Manager::BaseManager + class TerritoryMgr { public: @@ -60,7 +59,7 @@ namespace Sapphire::World::Manager //Eureka = 41, // wat }; - TerritoryMgr( FrameworkPtr pFw ); + TerritoryMgr(); /*! initializes the territoryMgr */ bool init(); diff --git a/src/world/Math/CalcBattle.cpp b/src/world/Math/CalcBattle.cpp index 50be9dee..167bc762 100644 --- a/src/world/Math/CalcBattle.cpp +++ b/src/world/Math/CalcBattle.cpp @@ -2,13 +2,13 @@ #include #include +#include #include "Actor/Chara.h" #include "Actor/Player.h" #include "CalcBattle.h" -#include "Framework.h" using namespace Sapphire::Math; using namespace Sapphire::Entity; @@ -31,9 +31,9 @@ using namespace Sapphire::Entity; uint32_t CalcBattle::calculateHealValue( PlayerPtr pPlayer, uint32_t potency, Sapphire::FrameworkPtr pFw ) { - auto pExdData = pFw->get< Data::ExdDataGenerated >(); - auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); - auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto classInfo = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); + auto paramGrowthInfo = exdData.get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); if( !classInfo || !paramGrowthInfo ) return 0; diff --git a/src/world/Math/CalcStats.cpp b/src/world/Math/CalcStats.cpp index 7544fb9a..4601816f 100644 --- a/src/world/Math/CalcStats.cpp +++ b/src/world/Math/CalcStats.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "Actor/Chara.h" #include "Actor/Player.h" @@ -10,7 +11,6 @@ #include "Inventory/Item.h" #include "CalcStats.h" -#include "Framework.h" using namespace Sapphire::Math; using namespace Sapphire::Entity; @@ -141,15 +141,15 @@ float CalcStats::calculateBaseStat( const Chara& chara ) // Leggerless' HP Formula // ROUNDDOWN(JobModHP * (BaseHP / 100)) + ROUNDDOWN(VitHPMod / 100 * (VIT - BaseDET)) -uint32_t CalcStats::calculateMaxHp( PlayerPtr pPlayer, Sapphire::FrameworkPtr pFw ) +uint32_t CalcStats::calculateMaxHp( PlayerPtr pPlayer ) { - auto pExdData = pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); // TODO: Replace ApproxBaseHP with something that can get us an accurate BaseHP. // Is there any way to pull reliable BaseHP without having to manually use a pet for every level, and using the values from a table? // More info here: https://docs.google.com/spreadsheets/d/1de06KGT0cNRUvyiXNmjNgcNvzBCCQku7jte5QxEQRbs/edit?usp=sharing - auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); - auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); + auto classInfo = exdData.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); + auto paramGrowthInfo = exdData.get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); if( !classInfo || !paramGrowthInfo ) return 0; diff --git a/src/world/Math/CalcStats.h b/src/world/Math/CalcStats.h index ce095b53..e277299e 100644 --- a/src/world/Math/CalcStats.h +++ b/src/world/Math/CalcStats.h @@ -16,7 +16,7 @@ namespace Sapphire::Math static float calculateBaseStat( const Entity::Chara& chara ); - static uint32_t calculateMaxHp( Sapphire::Entity::PlayerPtr pPlayer, FrameworkPtr pFw ); + static uint32_t calculateMaxHp( Sapphire::Entity::PlayerPtr pPlayer ); /*! * @brief Calculates the probability of a block happening diff --git a/src/world/Navi/NaviProvider.cpp b/src/world/Navi/NaviProvider.cpp index 15569ba0..e118734b 100644 --- a/src/world/Navi/NaviProvider.cpp +++ b/src/world/Navi/NaviProvider.cpp @@ -1,5 +1,4 @@ #include -#include #include #include #include @@ -19,11 +18,10 @@ #include #include -Sapphire::World::Navi::NaviProvider::NaviProvider( const std::string& internalName, FrameworkPtr pFw ) : +Sapphire::World::Navi::NaviProvider::NaviProvider( const std::string& internalName ) : m_naviMesh( nullptr ), m_naviMeshQuery( nullptr ), - m_internalName( internalName ), - m_pFw( pFw ) + m_internalName( internalName ) { // Set defaults m_polyFindRange[ 0 ] = 10; @@ -299,8 +297,8 @@ Sapphire::Common::FFXIVARR_POSITION3 return {}; } - auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >(); - auto rng = pRNGMgr->getRandGenerator< float >( 0.f, 1.f ); + auto& RNGMgr = Common::Service< World::Manager::RNGMgr >::ref(); + auto rng = RNGMgr.getRandGenerator< float >( 0.f, 1.f ); status = m_naviMeshQuery->findRandomPointAroundCircle( startRef, spos, maxRadius, &filter, frand, &randomRef, randomPt ); diff --git a/src/world/Navi/NaviProvider.h b/src/world/Navi/NaviProvider.h index 047abf17..33cd7cd6 100644 --- a/src/world/Navi/NaviProvider.h +++ b/src/world/Navi/NaviProvider.h @@ -32,7 +32,7 @@ namespace Sapphire::World::Navi }; public: - explicit NaviProvider( const std::string& internalName, FrameworkPtr pFw ); + explicit NaviProvider( const std::string& internalName ); bool init(); bool loadMesh( const std::string& path ); @@ -94,7 +94,6 @@ namespace Sapphire::World::Navi - FrameworkPtr m_pFw; }; } diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 68ca997a..b3ccb223 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -18,7 +18,6 @@ #include "GameConnection.h" #include "ServerMgr.h" #include "Session.h" -#include "Framework.h" #include "Forwards.h" using namespace Sapphire::Common; @@ -26,9 +25,8 @@ using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pHive, - Sapphire::Network::AcceptorPtr pAcceptor, - FrameworkPtr pFw ) : - Connection( pHive, pFw ), + Sapphire::Network::AcceptorPtr pAcceptor ) : + Connection( pHive ), m_pAcceptor( pAcceptor ), m_conType( ConnectionType::None ) { @@ -141,7 +139,7 @@ Sapphire::Network::GameConnection::~GameConnection() = default; // overwrite the parents onConnect for our game socket needs void Sapphire::Network::GameConnection::onAccept( const std::string& host, uint16_t port ) { - GameConnectionPtr connection( new GameConnection( m_hive, m_pAcceptor, m_pFw ) ); + GameConnectionPtr connection( new GameConnection( m_hive, m_pAcceptor ) ); m_pAcceptor->accept( connection ); Logger::info( "Connect from {0}", m_socket.remote_endpoint().address().to_string() ); } @@ -218,7 +216,7 @@ void Sapphire::Network::GameConnection::handleZonePacket( Sapphire::Network::Pac if( opcode != PingHandler && opcode != UpdatePositionHandler ) Logger::debug( "[{0}] Handling World IPC : {1} ( {2:04X} )", m_pSession->getId(), name, opcode ); - ( this->*( it->second ) )( m_pFw, pPacket, *m_pSession->getPlayer() ); + ( this->*( it->second ) )( pPacket, *m_pSession->getPlayer() ); } else { @@ -242,7 +240,7 @@ void Sapphire::Network::GameConnection::handleChatPacket( Sapphire::Network::Pac Logger::debug( "[{0}] Handling Chat IPC : {1} ( {2:04X} )", m_pSession->getId(), name, opcode ); - ( this->*( it->second ) )( m_pFw, pPacket, *m_pSession->getPlayer() ); + ( this->*( it->second ) )( pPacket, *m_pSession->getPlayer() ); } else { diff --git a/src/world/Network/GameConnection.h b/src/world/Network/GameConnection.h index 07962fd9..37a680e0 100644 --- a/src/world/Network/GameConnection.h +++ b/src/world/Network/GameConnection.h @@ -9,7 +9,7 @@ #include "ForwardsZone.h" -#define DECLARE_HANDLER( x ) void x( FrameworkPtr pFw, const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) +#define DECLARE_HANDLER( x ) void x( const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) namespace Sapphire::Network::Packets { @@ -32,8 +32,7 @@ namespace Sapphire::Network { private: - typedef void ( GameConnection::* Handler )( FrameworkPtr pFw, - const Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + typedef void ( GameConnection::* Handler )( const Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ); using HandlerMap = std::map< uint16_t, Handler >; @@ -58,7 +57,7 @@ namespace Sapphire::Network public: ConnectionType m_conType; - GameConnection( HivePtr pHive, AcceptorPtr pAcceptor, FrameworkPtr pFw ); + GameConnection( HivePtr pHive, AcceptorPtr pAcceptor ); ~GameConnection(); diff --git a/src/world/Network/Handlers/ActionHandler.cpp b/src/world/Network/Handlers/ActionHandler.cpp index 2b9f81dd..cbb412b0 100644 --- a/src/world/Network/Handlers/ActionHandler.cpp +++ b/src/world/Network/Handlers/ActionHandler.cpp @@ -5,17 +5,16 @@ #include #include +#include #include "Network/GameConnection.h" -#include "Framework.h" #include "Manager/ActionMgr.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; -void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::actionHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcSkillHandler >( inPacket ); @@ -29,10 +28,8 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, player.sendDebug( "Skill type: {0}, sequence: {1}, actionId: {2}, targetId: {3}", type, sequence, actionId, targetId ); - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); - - auto actionMgr = pFw->get< World::Manager::ActionMgr >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& actionMgr = Common::Service< World::Manager::ActionMgr >::ref(); switch( type ) { @@ -42,39 +39,39 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, } case Common::SkillType::Normal: { - auto action = exdData->get< Data::Action >( actionId ); + auto action = exdData.get< Data::Action >( actionId ); // ignore invalid actions if( !action ) return; - actionMgr->handleTargetedPlayerAction( player, actionId, action, targetId, sequence ); + actionMgr.handleTargetedPlayerAction( player, actionId, action, targetId, sequence ); break; } case Common::SkillType::ItemAction: { - auto item = exdData->get< Data::Item >( actionId ); + auto item = exdData.get< Data::Item >( actionId ); if( !item ) return; if( item->itemAction == 0 ) return; - auto itemAction = exdData->get< Data::ItemAction >( item->itemAction ); + auto itemAction = exdData.get< Data::ItemAction >( item->itemAction ); if( !itemAction ) return; - actionMgr->handleItemAction( player, actionId, itemAction, itemSourceSlot, itemSourceContainer ); + actionMgr.handleItemAction( player, actionId, itemAction, itemSourceSlot, itemSourceContainer ); break; } case Common::SkillType::MountSkill: { - auto action = exdData->get< Data::Action >( 4 ); + auto action = exdData.get< Data::Action >( 4 ); assert( action ); - actionMgr->handleMountAction( player, static_cast< uint16_t >( actionId ), action, targetId, sequence ); + actionMgr.handleMountAction( player, static_cast< uint16_t >( actionId ), action, targetId, sequence ); break; } } @@ -83,8 +80,7 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::placedActionHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::placedActionHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcAoESkillHandler >( inPacket ); @@ -104,15 +100,14 @@ void Sapphire::Network::GameConnection::placedActionHandler( FrameworkPtr pFw, player.sendDebug( "Skill type: {0}, sequence: {1}, actionId: {2}, x:{3}, y:{4}, z:{5}", type, sequence, actionId, pos.x, pos.y, pos.z ); - auto exdData = m_pFw->get< Data::ExdDataGenerated >(); - assert( exdData ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - auto action = exdData->get< Data::Action >( actionId ); + auto action = exdData.get< Data::Action >( actionId ); // ignore invalid actions if( !action ) return; - auto actionMgr = pFw->get< World::Manager::ActionMgr >(); - actionMgr->handlePlacedPlayerAction( player, actionId, action, pos, sequence ); + auto& actionMgr = Common::Service< World::Manager::ActionMgr >::ref(); + actionMgr.handlePlacedPlayerAction( player, actionId, action, pos, sequence ); } diff --git a/src/world/Network/Handlers/CFHandlers.cpp b/src/world/Network/Handlers/CFHandlers.cpp index 9f3660fb..6361d901 100644 --- a/src/world/Network/Handlers/CFHandlers.cpp +++ b/src/world/Network/Handlers/CFHandlers.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "Manager/TerritoryMgr.h" #include "Territory/InstanceContent.h" @@ -12,7 +13,6 @@ #include "Network/PacketWrappers/ServerNoticePacket.h" #include "Network/PacketWrappers/PlayerStateFlagsPacket.h" -#include "Framework.h" #include "Session.h" using namespace Sapphire::Common; @@ -21,8 +21,7 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::World::Manager; -void Sapphire::Network::GameConnection::cfDutyInfoRequest( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfDutyInfoRequest( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto dutyInfoPacket = makeZonePacket< FFXIVIpcCFDutyInfo >( player.getId() ); @@ -40,13 +39,12 @@ void Sapphire::Network::GameConnection::cfDutyInfoRequest( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { Packets::FFXIVARR_PACKET_RAW copy = inPacket; - auto pTeriMgr = pFw->get< TerritoryMgr >(); - auto pExdData = pFw->get< Data::ExdDataGenerated >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); std::vector< uint16_t > selectedContent; @@ -73,11 +71,11 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw, cfCancelPacket->data().state2 = 1; // Your registration is withdrawn. queueOutPacket( cfCancelPacket ); - auto cfCondition = pExdData->get< Sapphire::Data::ContentFinderCondition >( contentId ); + auto cfCondition = exdData.get< Sapphire::Data::ContentFinderCondition >( contentId ); if( !cfCondition ) return; - auto instance = pTeriMgr->createInstanceContent( cfCondition->content ); + auto instance = teriMgr.createInstanceContent( cfCondition->content ); if( !instance ) return; @@ -89,8 +87,7 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw, player.setInstance( instance ); } -void Sapphire::Network::GameConnection::cfRegisterRoulette( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfRegisterRoulette( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); @@ -101,8 +98,7 @@ void Sapphire::Network::GameConnection::cfRegisterRoulette( FrameworkPtr pFw, player.sendDebug( "Roulette register" ); } -void Sapphire::Network::GameConnection::cfDutyAccepted( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfDutyAccepted( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { player.sendDebug( "TODO: Duty accept" ); diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index 374a5bf3..7af8215e 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -32,8 +32,6 @@ #include "Session.h" #include "ServerMgr.h" #include "Forwards.h" -#include "Framework.h" -#include #include using namespace Sapphire::Common; @@ -42,7 +40,7 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; using namespace Sapphire::World::Manager; -void examineHandler( Sapphire::FrameworkPtr pFw, Sapphire::Entity::Player& player, uint32_t targetId ) +void examineHandler( Sapphire::Entity::Player& player, uint32_t targetId ) { using namespace Sapphire; @@ -65,8 +63,7 @@ void examineHandler( Sapphire::FrameworkPtr pFw, Sapphire::Entity::Player& playe } } -void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { @@ -148,7 +145,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, case ClientTriggerType::Examine: { uint32_t targetId = param11; - examineHandler( pFw, player, targetId ); + examineHandler( player, targetId ); break; } case ClientTriggerType::MarkPlayer: // Mark player @@ -193,8 +190,8 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, uint32_t emoteId = param11; bool isSilent = param2 == 1; - auto pExdData = pFw->get< Data::ExdDataGenerated >(); - auto emoteData = pExdData->get< Data::Emote >( emoteId ); + auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto emoteData = exdData.get< Data::Emote >( emoteId ); if( !emoteData ) return; @@ -329,70 +326,63 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, } case ClientTriggerType::RequestLandSignFree: { - auto pHousingMgr = pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); - pHousingMgr->sendLandSignFree( player, ident ); + auto ident = housingMgr.clientTriggerParamsToLandIdent( param11, param12 ); + housingMgr.sendLandSignFree( player, ident ); break; } case ClientTriggerType::RequestLandSignOwned: { - auto pHousingMgr = pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12, false ); - pHousingMgr->sendLandSignOwned( player, ident ); + auto ident = housingMgr.clientTriggerParamsToLandIdent( param11, param12, false ); + housingMgr.sendLandSignOwned( player, ident ); break; } case ClientTriggerType::RequestWardLandInfo: { - auto pHousingMgr = pFw->get< HousingMgr >(); - if( !pHousingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); - pHousingMgr->sendWardLandInfo( player, static_cast< uint8_t >( param12 ), static_cast< uint8_t >( param11 ) ); + housingMgr.sendWardLandInfo( player, static_cast< uint8_t >( param12 ), static_cast< uint8_t >( param11 ) ); break; } case ClientTriggerType::RequestLandRelinquish: { + auto& housingMgr = Common::Service< HousingMgr >::ref(); + auto plot = static_cast< uint8_t >( param12 & 0xFF ); - auto pHousingMgr = pFw->get< HousingMgr >(); - pHousingMgr->relinquishLand( player, plot ); + housingMgr.relinquishLand( player, plot ); break; } case ClientTriggerType::RequestEstateRename: { - auto pHousingMgr = pFw->get< HousingMgr >(); - if( !pHousingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); - pHousingMgr->requestEstateRename( player, ident ); + auto ident = housingMgr.clientTriggerParamsToLandIdent( param11, param12 ); + housingMgr.requestEstateRename( player, ident ); break; } case ClientTriggerType::RequestEstateEditGreeting: { - auto pHousingMgr = pFw->get< HousingMgr >(); - if( !pHousingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); - pHousingMgr->requestEstateEditGreeting( player, ident ); + auto ident = housingMgr.clientTriggerParamsToLandIdent( param11, param12 ); + housingMgr.requestEstateEditGreeting( player, ident ); break; } case ClientTriggerType::RequestEstateEditGuestAccessSettings: { - auto pHousingMgr = pFw->get< HousingMgr >(); - if( !pHousingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); - pHousingMgr->requestEstateEditGuestAccess( player, ident ); + auto ident = housingMgr.clientTriggerParamsToLandIdent( param11, param12 ); + housingMgr.requestEstateEditGuestAccess( player, ident ); break; } @@ -416,12 +406,10 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, } case ClientTriggerType::RequestEstateGreeting: { - auto housingMgr = pFw->get< HousingMgr >(); - if( !housingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto ident = housingMgr->clientTriggerParamsToLandIdent( param11, param12 ); - housingMgr->sendEstateGreeting( player, ident ); + auto ident = housingMgr.clientTriggerParamsToLandIdent( param11, param12 ); + housingMgr.sendEstateGreeting( player, ident ); break; } @@ -429,59 +417,55 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, { uint8_t plot = ( param12 & 0xFF ); - auto housingMgr = pFw->get< HousingMgr >(); - if( !housingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); uint16_t inventoryType = Common::InventoryType::HousingExteriorPlacedItems; if( param2 == 1 ) inventoryType = Common::InventoryType::HousingExteriorStoreroom; - housingMgr->sendEstateInventory( player, inventoryType, plot ); + housingMgr.sendEstateInventory( player, inventoryType, plot ); break; } case ClientTriggerType::RequestEstateInventory: { - auto housingMgr = pFw->get< HousingMgr >(); - if( !housingMgr ) - break; + auto& housingMgr = Common::Service< HousingMgr >::ref(); // param1 = 1 - storeroom // param1 = 0 - placed items if( param1 == 1 ) - housingMgr->sendInternalEstateInventoryBatch( player, true ); + housingMgr.sendInternalEstateInventoryBatch( player, true ); else - housingMgr->sendInternalEstateInventoryBatch( player ); + housingMgr.sendInternalEstateInventoryBatch( player ); break; } case ClientTriggerType::RequestHousingItemRemove: { - auto housingMgr = m_pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); auto slot = param4 & 0xFF; auto sendToStoreroom = ( param4 >> 16 ) != 0; //player, plot, containerId, slot, sendToStoreroom - housingMgr->reqRemoveHousingItem( player, static_cast< uint16_t >( param12 ), static_cast< uint16_t >( param2 ), static_cast< uint8_t >( slot ), sendToStoreroom ); + housingMgr.reqRemoveHousingItem( player, static_cast< uint16_t >( param12 ), static_cast< uint16_t >( param2 ), static_cast< uint8_t >( slot ), sendToStoreroom ); break; } case ClientTriggerType::RequestEstateExteriorRemodel: { - auto housingMgr = m_pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); - housingMgr->reqEstateExteriorRemodel( player, static_cast< uint16_t >( param11 ) ); + housingMgr.reqEstateExteriorRemodel( player, static_cast< uint16_t >( param11 ) ); break; } case ClientTriggerType::RequestEstateInteriorRemodel: { - auto housingMgr = m_pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); - housingMgr->reqEstateInteriorRemodel( player ); + housingMgr.reqEstateInteriorRemodel( player ); break; } diff --git a/src/world/Network/Handlers/EventHandlers.cpp b/src/world/Network/Handlers/EventHandlers.cpp index 5c60ed7f..33fe1641 100644 --- a/src/world/Network/Handlers/EventHandlers.cpp +++ b/src/world/Network/Handlers/EventHandlers.cpp @@ -16,6 +16,7 @@ #include "Script/ScriptMgr.h" #include +#include #include "Event/EventHandler.h" #include "Manager/EventMgr.h" @@ -25,19 +26,16 @@ #include "Session.h" -#include "Framework.h" - using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; -void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerTalk( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); - auto pExdData = pFw->get< Data::ExdDataGenerated >(); - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerTalk >( inPacket ); @@ -47,10 +45,10 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, auto eventType = static_cast< uint16_t >( eventId >> 16 ); std::string eventName = "onTalk"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X})", - actorId, pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), + actorId, eventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), eventId, eventId ); @@ -61,10 +59,10 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, { instance->onTalk( player, eventId, actorId ); } - else if( !pScriptMgr->onTalk( player, actorId, eventId ) && + else if( !scriptMgr.onTalk( player, actorId, eventId ) && eventType == Event::EventHandler::EventHandlerType::Quest ) { - auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); + auto questInfo = exdData.get< Sapphire::Data::Quest >( eventId ); if( questInfo ) player.sendUrgent( "Quest not implemented: {0} ({1})", questInfo->name, questInfo->id ); } @@ -73,13 +71,12 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerEmote( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); - auto pExdData = pFw->get< Data::ExdDataGenerated >(); - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerEmote >( inPacket ); @@ -89,20 +86,20 @@ void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw, const auto eventType = static_cast< uint16_t >( eventId >> 16 ); std::string eventName = "onEmote"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X})", - actorId, pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), + actorId, eventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), eventId, eventId ); player.sendDebug( "Calling: {0}.{1}", objName, eventName ); player.eventStart( actorId, eventId, Event::EventHandler::Emote, 0, emoteId ); - if( !pScriptMgr->onEmote( player, actorId, eventId, static_cast< uint8_t >( emoteId ) ) && + if( !scriptMgr.onEmote( player, actorId, eventId, static_cast< uint8_t >( emoteId ) ) && eventType == Event::EventHandler::EventHandlerType::Quest ) { - auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); + auto questInfo = exdData.get< Sapphire::Data::Quest >( eventId ); if( questInfo ) player.sendUrgent( "Quest not implemented: {0}", questInfo->name ); } @@ -110,12 +107,11 @@ void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw, player.checkEvent( eventId ); } -void Sapphire::Network::GameConnection::eventHandlerWithinRange( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerWithinRange( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerWithinRange >( inPacket ); @@ -124,22 +120,21 @@ void Sapphire::Network::GameConnection::eventHandlerWithinRange( FrameworkPtr pF const auto& pos = packet.data().position; std::string eventName = "onWithinRange"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "Calling: {0}.{1} - {2} p1: {3}", objName, eventName, eventId, param1 ); player.eventStart( player.getId(), eventId, Event::EventHandler::WithinRange, 1, param1 ); - pScriptMgr->onWithinRange( player, eventId, param1, pos.x, pos.y, pos.z ); + scriptMgr.onWithinRange( player, eventId, param1, pos.x, pos.y, pos.z ); player.checkEvent( eventId ); } -void Sapphire::Network::GameConnection::eventHandlerOutsideRange( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerOutsideRange( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerOutsideRange >( inPacket ); const auto eventId = packet.data().eventId; @@ -147,22 +142,21 @@ void Sapphire::Network::GameConnection::eventHandlerOutsideRange( FrameworkPtr p const auto& pos = packet.data().position; std::string eventName = "onOutsideRange"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "Calling: {0}.{1} - {2} p1: {3}", objName, eventName, eventId, param1 ); player.eventStart( player.getId(), eventId, Event::EventHandler::WithinRange, 1, param1 ); - pScriptMgr->onOutsideRange( player, eventId, param1, pos.x, pos.y, pos.z ); + scriptMgr.onOutsideRange( player, eventId, param1, pos.x, pos.y, pos.z ); player.checkEvent( eventId ); } -void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcEnterTerritoryHandler >( inPacket ); @@ -172,7 +166,7 @@ void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( FrameworkPtr std::string eventName = "onEnterTerritory"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "Calling: {0}.{1} - {2}", objName, eventName, eventId & 0xFFFF ); @@ -189,17 +183,16 @@ void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( FrameworkPtr else { player.eventStart( player.getId(), eventId, Event::EventHandler::EnterTerritory, 0, player.getZoneId() ); - pScriptMgr->onEnterTerritory( player, eventId, param1, param2 ); + scriptMgr.onEnterTerritory( player, eventId, param1, param2 ); } player.checkEvent( eventId ); } -void Sapphire::Network::GameConnection::eventHandlerReturn( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerReturn( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerReturn >( inPacket ); const auto eventId = packet.data().eventId; @@ -209,7 +202,7 @@ void Sapphire::Network::GameConnection::eventHandlerReturn( FrameworkPtr pFw, const auto param3 = packet.data().param3; const auto param4 = packet.data().param4; - std::string eventName = pEventMgr->getEventName( eventId ); + std::string eventName = eventMgr.getEventName( eventId ); player.sendDebug( "eventId: {0} ({0:08X}) scene: {1}, p1: {2}, p2: {3}, p3: {4}", eventId, scene, param1, param2, param3 ); @@ -242,8 +235,7 @@ void Sapphire::Network::GameConnection::eventHandlerReturn( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::eventHandlerLinkshell( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerLinkshell( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcLinkshellEventHandler >( inPacket ); @@ -257,30 +249,28 @@ void Sapphire::Network::GameConnection::eventHandlerLinkshell( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::eventHandlerShop( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerShop( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pEventMgr = pFw->get< World::Manager::EventMgr >(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcShopEventHandler >( inPacket ); - auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); - auto pExdData = pFw->get< Data::ExdDataGenerated >(); const auto eventId = packet.data().eventId; auto eventType = static_cast< uint16_t >( eventId >> 16 ); std::string eventName = "onOpen"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "EventId: {0} ({0:08X})", eventId ); player.sendDebug( "Calling: {0}.{1}", objName, eventName ); player.eventStart( player.getId(), eventId, Event::EventHandler::UI, 0, packet.data().param ); - pScriptMgr->onTalk( player, player.getId(), eventId ); + scriptMgr.onTalk( player, player.getId(), eventId ); } diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index d01e3a0e..175c2ab9 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -31,7 +31,6 @@ #include "Network/PacketWrappers/PlayerStateFlagsPacket.h" #include "ServerMgr.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -87,8 +86,7 @@ enum GmCommand JumpNpc = 0x025F, }; -void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { if( player.getGmRank() <= 0 ) @@ -465,8 +463,8 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, } case GmCommand::Teri: { - auto pTeriMgr = pFw->get< TerritoryMgr >(); - if( auto instance = pTeriMgr->getTerritoryByGuId( param1 ) ) + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); + if( auto instance = teriMgr.getTerritoryByGuId( param1 ) ) { player.sendDebug( "Found instance: {0}, id#{1}", instance->getName(), param1 ); @@ -483,20 +481,20 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, player.setInstance( instance ); } - else if( !pTeriMgr->isValidTerritory( param1 ) ) + else if( !teriMgr.isValidTerritory( param1 ) ) { player.sendUrgent( "Invalid zone {0}", param1 ); } else { - auto pZone = pTeriMgr->getZoneByTerritoryTypeId( param1 ); + auto pZone = teriMgr.getZoneByTerritoryTypeId( param1 ); if( !pZone ) { player.sendUrgent( "No zone instance found for {0}", param1 ); break; } - if( !pTeriMgr->isDefaultTerritory( param1 ) ) + if( !teriMgr.isDefaultTerritory( param1 ) ) { player.sendUrgent( "{0} is an instanced area - instance ID required to zone in.", pZone->getName() ); break; @@ -505,12 +503,12 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, bool doTeleport = false; uint16_t teleport; - auto pExdData = pFw->get< Data::ExdDataGenerated >(); - auto idList = pExdData->getAetheryteIdList(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto idList = exdData.getAetheryteIdList(); for( auto i : idList ) { - auto data = pExdData->get< Sapphire::Data::Aetheryte >( i ); + auto data = exdData.get< Sapphire::Data::Aetheryte >( i ); if( !data ) { @@ -588,8 +586,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::gm2Handler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { if( player.getGmRank() <= 0 ) diff --git a/src/world/Network/Handlers/InventoryHandler.cpp b/src/world/Network/Handlers/InventoryHandler.cpp index 8fc94bdd..cbc7be02 100644 --- a/src/world/Network/Handlers/InventoryHandler.cpp +++ b/src/world/Network/Handlers/InventoryHandler.cpp @@ -17,14 +17,11 @@ #include "Session.h" #include "ServerMgr.h" -#include "Framework.h" - using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; -void Sapphire::Network::GameConnection::inventoryModifyHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::inventoryModifyHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcInventoryModifyHandler >( inPacket ); diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index c2373960..9346eb21 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -50,7 +50,6 @@ #include "Session.h" #include "ServerMgr.h" #include "Forwards.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -58,8 +57,7 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; using namespace Sapphire::World::Manager; -void Sapphire::Network::GameConnection::fcInfoReqHandler( FrameworkPtr pFw, - const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::fcInfoReqHandler( const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { // TODO: use new packet struct for this @@ -68,8 +66,7 @@ void Sapphire::Network::GameConnection::fcInfoReqHandler( FrameworkPtr pFw, //queueOutPacket( pPe ); } -void Sapphire::Network::GameConnection::setSearchInfoHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcSetSearchInfo >( inPacket ); @@ -104,8 +101,7 @@ void Sapphire::Network::GameConnection::setSearchInfoHandler( FrameworkPtr pFw, static_cast< uint8_t >( player.getOnlineStatus() ) ), true ); } -void Sapphire::Network::GameConnection::reqSearchInfoHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::reqSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto searchInfoPacket = makeZonePacket< FFXIVIpcInitSearchInfo >( player.getId() ); @@ -115,8 +111,7 @@ void Sapphire::Network::GameConnection::reqSearchInfoHandler( FrameworkPtr pFw, queueOutPacket( searchInfoPacket ); } -void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { @@ -144,8 +139,7 @@ void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( Framewor } } -void Sapphire::Network::GameConnection::reqExamineFcInfo( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::reqExamineFcInfo( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { @@ -175,16 +169,14 @@ void Sapphire::Network::GameConnection::reqExamineFcInfo( FrameworkPtr pFw, } } -void Sapphire::Network::GameConnection::linkshellListHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::linkshellListHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto linkshellListPacket = makeZonePacket< FFXIVIpcLinkshellList >( player.getId() ); queueOutPacket( linkshellListPacket ); } -void Sapphire::Network::GameConnection::updatePositionHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::updatePositionHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { // if the player is marked for zoning we no longer want to update his pos @@ -269,8 +261,7 @@ void Sapphire::Network::GameConnection::updatePositionHandler( FrameworkPtr pFw, } void -Sapphire::Network::GameConnection::reqEquipDisplayFlagsHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +Sapphire::Network::GameConnection::reqEquipDisplayFlagsHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { player.setEquipDisplayFlags( inPacket.data[ 0x10 ] ); @@ -278,19 +269,18 @@ Sapphire::Network::GameConnection::reqEquipDisplayFlagsHandler( FrameworkPtr pFw player.sendDebug( "EquipDisplayFlag CHANGE: {0}", player.getEquipDisplayFlags() ); } -void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::zoneLineHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcZoneLineHandler >( inPacket ); const auto zoneLineId = packet.data().zoneLineId; - auto pTeriMgr = pFw->get< TerritoryMgr >(); - auto pInstanceObjectCache = pFw->get< InstanceObjectCache >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); + auto& instanceObjectCache = Common::Service< InstanceObjectCache >::ref(); auto tInfo = player.getCurrentTerritory()->getTerritoryTypeInfo(); - auto pExitRange = pInstanceObjectCache->getExitRange( player.getTerritoryTypeId(), zoneLineId ); + auto pExitRange = instanceObjectCache.getExitRange( player.getTerritoryTypeId(), zoneLineId ); Common::FFXIVARR_POSITION3 targetPos{}; uint32_t targetZone; @@ -298,8 +288,8 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, if( pExitRange ) { - auto pPopRange = pInstanceObjectCache->getPopRange( pExitRange->data.destTerritoryType, - pExitRange->data.destInstanceObjectId ); + auto pPopRange = instanceObjectCache.getPopRange( pExitRange->data.destTerritoryType, + pExitRange->data.destInstanceObjectId ); if( pPopRange ) { targetZone = pExitRange->data.destTerritoryType; @@ -324,16 +314,15 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::discoveryHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::discoveryHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pInstanceObjectCache = pFw->get< InstanceObjectCache >(); + auto& instanceObjectCache = Common::Service< InstanceObjectCache >::ref(); auto tInfo = player.getCurrentTerritory()->getTerritoryTypeInfo(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcDiscoveryHandler >( inPacket ); const auto positionRef = packet.data().positionRef; - auto pRefInfo = pInstanceObjectCache->getMapRange( player.getTerritoryTypeId(), positionRef ); + auto pRefInfo = instanceObjectCache.getMapRange( player.getTerritoryTypeId(), positionRef ); player.sendDebug( "Discovery ref pos id#{0}", positionRef ); @@ -349,8 +338,7 @@ void Sapphire::Network::GameConnection::discoveryHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::playTimeHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::playTimeHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto playTimePacket = makeZonePacket< FFXIVIpcPlayTime >( player.getId() ); @@ -359,8 +347,7 @@ void Sapphire::Network::GameConnection::playTimeHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::initHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::initHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { // init handler means this is a login procedure @@ -370,8 +357,7 @@ void Sapphire::Network::GameConnection::initHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::blackListHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::blackListHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { uint8_t count = inPacket.data[ 0x11 ]; @@ -386,8 +372,7 @@ void Sapphire::Network::GameConnection::blackListHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::pingHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::pingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcPingHandler >( inPacket ); @@ -398,8 +383,7 @@ void Sapphire::Network::GameConnection::pingHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::finishLoadingHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::finishLoadingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { player.sendQuestInfo(); @@ -432,8 +416,7 @@ void Sapphire::Network::GameConnection::finishLoadingHandler( FrameworkPtr pFw, player.getCurrentTerritory()->updateActorPosition( player ); } -void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::socialListHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { @@ -492,18 +475,17 @@ void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::chatHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::chatHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto pDebugCom = pFw->get< DebugCommandMgr >(); + auto& debugCommandMgr = Common::Service< DebugCommandMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcChatHandler >( inPacket ); if( packet.data().message[ 0 ] == '!' ) { // execute game console command - pDebugCom->execCommand( const_cast< char* >( packet.data().message ) + 1, player ); + debugCommandMgr.execCommand( const_cast< char* >( packet.data().message ) + 1, player ); return; } @@ -551,8 +533,7 @@ void Sapphire::Network::GameConnection::chatHandler( FrameworkPtr pFw, // currently we wait for the session to just time out after logout, this can be a problem is the user tries to // log right back in. // Also the packet needs to be converted to an ipc structure -void Sapphire::Network::GameConnection::logoutHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::logoutHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto logoutPacket = makeZonePacket< FFXIVIpcLogout >( player.getId() ); @@ -564,8 +545,7 @@ void Sapphire::Network::GameConnection::logoutHandler( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::tellHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcTellHandler >( inPacket ); @@ -620,8 +600,7 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw, pTargetPlayer->queueChatPacket( tellPacket ); } -void Sapphire::Network::GameConnection::performNoteHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::performNoteHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto performPacket = makeZonePacket< FFXIVIpcPerformNote >( player.getId() ); @@ -629,17 +608,16 @@ void Sapphire::Network::GameConnection::performNoteHandler( FrameworkPtr pFw, player.sendToInRangeSet( performPacket ); } -void Sapphire::Network::GameConnection::landRenameHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::landRenameHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); - auto pHousingMgr = pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); - auto landSetId = pHousingMgr->toLandSetId( packet.data().ident.territoryTypeId, packet.data().ident.wardNum ); + auto landSetId = housingMgr.toLandSetId( packet.data().ident.territoryTypeId, packet.data().ident.wardNum ); - auto pZone = pHousingMgr->getHousingZoneByLandSetId( landSetId ); + auto pZone = housingMgr.getHousingZoneByLandSetId( landSetId ); if( !pZone ) return; @@ -663,91 +641,83 @@ void Sapphire::Network::GameConnection::landRenameHandler( FrameworkPtr pFw, player.queuePacket( nameUpdatePacket ); } -void Sapphire::Network::GameConnection::buildPresetHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::buildPresetHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket ); - auto pHousingMgr = pFw->get< HousingMgr >(); - pHousingMgr->buildPresetEstate( player, packet.data().plotNum, packet.data().itemId ); + auto& housingMgr = Common::Service< HousingMgr >::ref(); + housingMgr.buildPresetEstate( player, packet.data().plotNum, packet.data().itemId ); } -void Sapphire::Network::GameConnection::housingUpdateGreetingHandler( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::housingUpdateGreetingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateHouseGreeting >( inPacket ); - auto pHousingMgr = pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); - pHousingMgr->updateEstateGreeting( player, packet.data().ident, std::string( packet.data().greeting ) ); + housingMgr.updateEstateGreeting( player, packet.data().ident, std::string( packet.data().greeting ) ); } -void Sapphire::Network::GameConnection::reqPlaceHousingItem( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::reqPlaceHousingItem( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto housingMgr = pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcReqPlaceHousingItem >( inPacket ); const auto& data = packet.data(); if( data.shouldPlaceItem == 1 ) { - housingMgr->reqPlaceHousingItem( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId, + housingMgr.reqPlaceHousingItem( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId, data.position, data.rotation ); } else - housingMgr->reqPlaceItemInStore( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId ); + housingMgr.reqPlaceItemInStore( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId ); } -void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::reqMoveHousingItem( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto housingMgr = pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateObjectPosition >( inPacket ); const auto& data = packet.data(); - housingMgr->reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation ); - + housingMgr.reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation ); } -void Sapphire::Network::GameConnection::marketBoardSearch( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::marketBoardSearch( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto marketMgr = pFw->get< MarketMgr >(); + auto& marketMgr = Common::Service< MarketMgr >::ref(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardSearch >( inPacket ); const auto& data = packet.data(); std::string_view searchStr( data.searchStr ); - marketMgr->searchMarketboard( player, data.itemSearchCategory, data.maxEquipLevel, data.classJobId, data.searchStr, + marketMgr.searchMarketboard( player, data.itemSearchCategory, data.maxEquipLevel, data.classJobId, data.searchStr, data.requestId, data.startIdx ); } -void Sapphire::Network::GameConnection::marketBoardRequestItemInfo( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::marketBoardRequestItemInfo( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListingInfo >( inPacket ); - auto marketMgr = pFw->get< MarketMgr >(); + auto& marketMgr = Common::Service< MarketMgr >::ref(); - marketMgr->requestItemListingInfo( player, packet.data().catalogId, packet.data().requestId ); + marketMgr.requestItemListingInfo( player, packet.data().catalogId, packet.data().requestId ); } -void Sapphire::Network::GameConnection::marketBoardRequestItemListings( FrameworkPtr pFw, - const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::marketBoardRequestItemListings( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListings >( inPacket ); - auto marketMgr = pFw->get< MarketMgr >(); + auto& marketMgr = Common::Service< MarketMgr >::ref(); - marketMgr->requestItemListings( player, packet.data().itemCatalogId ); + marketMgr.requestItemListings( player, packet.data().itemCatalogId ); } diff --git a/src/world/Script/NativeScriptApi.cpp b/src/world/Script/NativeScriptApi.cpp index d6dce0f6..b8945223 100644 --- a/src/world/Script/NativeScriptApi.cpp +++ b/src/world/Script/NativeScriptApi.cpp @@ -31,17 +31,6 @@ namespace Sapphire::ScriptAPI return m_type; } - void ScriptObject::setFramework( Sapphire::Framework* fw ) - { - assert( fw ); - m_framework = fw; - } - - Sapphire::Framework* ScriptObject::framework() const - { - return m_framework; - } - /////////////////////////////////////////////////////////////////// StatusEffectScript::StatusEffectScript( uint32_t effectId ) : diff --git a/src/world/Script/NativeScriptApi.h b/src/world/Script/NativeScriptApi.h index d7b33d00..aad02c5a 100644 --- a/src/world/Script/NativeScriptApi.h +++ b/src/world/Script/NativeScriptApi.h @@ -26,8 +26,6 @@ namespace Sapphire::ScriptAPI uint32_t m_id; std::size_t m_type; - Sapphire::Framework* m_framework; - public: /*! * @param id an ID which uniquely identifies this script in relation to it's type @@ -48,20 +46,6 @@ namespace Sapphire::ScriptAPI * @return The hash_code of the script */ virtual std::size_t getType() const; - - /*! - * @brief Sets the ptr to the framework for use inside scripts - * - * @param fw The ptr to a Framework - */ - virtual void setFramework( Sapphire::Framework* fw ); - - /*! - * @brief Returns the current ptr to framework set for the current script - * - * @return A pointer to Core::Framework - */ - virtual Sapphire::Framework* framework() const; }; diff --git a/src/world/Script/NativeScriptMgr.cpp b/src/world/Script/NativeScriptMgr.cpp index b8392351..6db51a39 100644 --- a/src/world/Script/NativeScriptMgr.cpp +++ b/src/world/Script/NativeScriptMgr.cpp @@ -4,8 +4,6 @@ #include #include "ServerMgr.h" -#include "Framework.h" - namespace Sapphire::Scripting { @@ -33,8 +31,6 @@ namespace Sapphire::Scripting auto script = scripts[ i ]; module->scripts.push_back( script ); - script->setFramework( framework().get() ); - m_scripts[ script->getType() ][ script->getId() ] = script; success = true; @@ -122,8 +118,7 @@ namespace Sapphire::Scripting return m_loader.isModuleLoaded( name ); } - NativeScriptMgr::NativeScriptMgr( FrameworkPtr pFw ) : - World::Manager::BaseManager( pFw ) + NativeScriptMgr::NativeScriptMgr() { auto& serverMgr = Common::Service< Sapphire::World::ServerMgr >::ref(); @@ -131,9 +126,9 @@ namespace Sapphire::Scripting } - std::shared_ptr< NativeScriptMgr > createNativeScriptMgr( FrameworkPtr pFw ) + std::shared_ptr< NativeScriptMgr > createNativeScriptMgr() { - return std::make_shared< NativeScriptMgr >( pFw ); + return std::make_shared< NativeScriptMgr >(); } } diff --git a/src/world/Script/NativeScriptMgr.h b/src/world/Script/NativeScriptMgr.h index 8547c975..668408a0 100644 --- a/src/world/Script/NativeScriptMgr.h +++ b/src/world/Script/NativeScriptMgr.h @@ -4,7 +4,6 @@ #include #include #include -#include "Manager/BaseManager.h" #include "ScriptLoader.h" @@ -14,7 +13,7 @@ namespace Sapphire::Scripting /*! * @brief Contains all the functionality for easily loading, unloading, reloading and generally accessing scripts. */ - class NativeScriptMgr : public World::Manager::BaseManager + class NativeScriptMgr { protected: /*! @@ -41,7 +40,7 @@ namespace Sapphire::Scripting bool unloadScript( ScriptInfo* info ); public: - NativeScriptMgr( FrameworkPtr pFw ); + NativeScriptMgr(); /*! * @brief Loads a script from a path @@ -125,7 +124,7 @@ namespace Sapphire::Scripting * * @return a std::shared_ptr to NativeScriptMgr */ - std::shared_ptr< NativeScriptMgr > createNativeScriptMgr( FrameworkPtr pFw ); + std::shared_ptr< NativeScriptMgr > createNativeScriptMgr(); } #endif diff --git a/src/world/Script/ScriptLoader.cpp b/src/world/Script/ScriptLoader.cpp index ace591a8..93759aa3 100644 --- a/src/world/Script/ScriptLoader.cpp +++ b/src/world/Script/ScriptLoader.cpp @@ -7,8 +7,6 @@ #include -#include "Framework.h" - namespace fs = std::filesystem; const std::string Sapphire::Scripting::ScriptLoader::getModuleExtension() diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index 0593cda1..b7e082bd 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -23,18 +23,16 @@ #include "NativeScriptMgr.h" #include "ServerMgr.h" -#include "Framework.h" // enable the ambiguity fix for every platform to avoid #define nonsense #define WIN_AMBIGUITY_FIX namespace fs = std::filesystem; -Sapphire::Scripting::ScriptMgr::ScriptMgr( FrameworkPtr pFw ) : - World::Manager::BaseManager( pFw ), +Sapphire::Scripting::ScriptMgr::ScriptMgr() : m_firstScriptChangeNotificiation( false ) { - m_nativeScriptMgr = createNativeScriptMgr( pFw ); + m_nativeScriptMgr = createNativeScriptMgr(); } Sapphire::Scripting::ScriptMgr::~ScriptMgr() @@ -257,10 +255,10 @@ bool Sapphire::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& bool Sapphire::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ) { - auto pEventMgr = framework()->get< World::Manager::EventMgr >(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); std::string eventName = "onEventItem"; - std::string objName = pEventMgr->getEventName( eventId ); + std::string objName = eventMgr.getEventName( eventId ); player.sendDebug( "Calling: {0}.{1} - {2}", objName, eventName, eventId ); auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); @@ -277,7 +275,7 @@ bool Sapphire::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32 bool Sapphire::Scripting::ScriptMgr::onBNpcKill( Entity::Player& player, uint16_t nameId ) { - auto pEventMgr = framework()->get< World::Manager::EventMgr >(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); // loop through all active quests and try to call available onBNpcKill callbacks for( size_t i = 0; i < 30; i++ ) @@ -291,7 +289,7 @@ bool Sapphire::Scripting::ScriptMgr::onBNpcKill( Entity::Player& player, uint16_ auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( questId ); if( script ) { - std::string objName = pEventMgr->getEventName( questId ); + std::string objName = eventMgr.getEventName( questId ); player.sendDebug( "Calling: {0}.onBnpcKill nameId#{1}", objName, nameId ); @@ -304,7 +302,7 @@ bool Sapphire::Scripting::ScriptMgr::onBNpcKill( Entity::Player& player, uint16_ bool Sapphire::Scripting::ScriptMgr::onEObjHit( Sapphire::Entity::Player& player, uint64_t actorId, uint32_t actionId ) { - auto pEventMgr = framework()->get< World::Manager::EventMgr >(); + auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref(); bool didCallScript = false; for( size_t i = 0; i < 30; i++ ) @@ -319,7 +317,7 @@ bool Sapphire::Scripting::ScriptMgr::onEObjHit( Sapphire::Entity::Player& player if( script ) { didCallScript = true; - std::string objName = pEventMgr->getEventName( questId ); + std::string objName = eventMgr.getEventName( questId ); player.sendDebug( "Calling: {0}.onEObjHit actorId#{1}", objName, actorId ); diff --git a/src/world/Script/ScriptMgr.h b/src/world/Script/ScriptMgr.h index c68a0482..ea9b5d80 100644 --- a/src/world/Script/ScriptMgr.h +++ b/src/world/Script/ScriptMgr.h @@ -7,12 +7,11 @@ #include #include "Forwards.h" -#include "Manager/BaseManager.h" namespace Sapphire::Scripting { - class ScriptMgr : public World::Manager::BaseManager + class ScriptMgr { private: /*! @@ -29,7 +28,7 @@ namespace Sapphire::Scripting bool m_firstScriptChangeNotificiation; public: - ScriptMgr( FrameworkPtr pFw ); + ScriptMgr(); ~ScriptMgr(); diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 5b7159ee..4d539b59 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -6,7 +6,6 @@ #include "Network/GameConnection.h" #include "ServerMgr.h" -#include "Framework.h" #include #include @@ -47,8 +46,7 @@ using namespace Sapphire::World::Manager; -Sapphire::World::ServerMgr::ServerMgr( const std::string& configName, FrameworkPtr pFw ) : - Manager::BaseManager( pFw ), +Sapphire::World::ServerMgr::ServerMgr( const std::string& configName ) : m_configName( configName ), m_bRunning( true ), m_lastDBPingTime( 0 ), @@ -124,8 +122,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) printBanner(); - auto pConfig = std::make_shared< Common::ConfigMgr >(); - Common::Service< Common::ConfigMgr >::set( pConfig ); + Common::Service< Common::ConfigMgr >::set(); if( !loadSettings( argc, argv ) ) { Logger::fatal( "Unable to load settings!" ); @@ -143,7 +140,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) Logger::fatal( "DataPath: {0}", dataPath ); return; } - framework()->set< Data::ExdDataGenerated >( pExdData ); + Common::Service< Data::ExdDataGenerated >::set( pExdData ); auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); Sapphire::Db::DbLoader loader; @@ -153,56 +150,56 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) Logger::fatal( "Database not initialized properly!" ); return; } - framework()->set< Db::DbWorkerPool< Db::ZoneDbConnection > >( pDb ); + Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::set( pDb ); Logger::info( "LinkshellMgr: Caching linkshells" ); - auto pLsMgr = std::make_shared< Manager::LinkshellMgr >( framework() ); + auto pLsMgr = std::make_shared< Manager::LinkshellMgr >(); if( !pLsMgr->loadLinkshells() ) { Logger::fatal( "Unable to load linkshells!" ); return; } - framework()->set< Manager::LinkshellMgr >( pLsMgr ); + Common::Service< Manager::LinkshellMgr >::set( pLsMgr ); - auto pScript = std::make_shared< Scripting::ScriptMgr >( framework() ); + auto pScript = std::make_shared< Scripting::ScriptMgr >(); if( !pScript->init() ) { Logger::fatal( "Failed to setup scripts!" ); return; } - framework()->set< Scripting::ScriptMgr >( pScript ); + Common::Service< Scripting::ScriptMgr >::set( pScript ); Logger::info( "Setting up InstanceObjectCache" ); - auto pInstanceObjCache = std::make_shared< Sapphire::InstanceObjectCache >( framework() ); - framework()->set< Sapphire::InstanceObjectCache >( pInstanceObjCache ); + auto pInstanceObjCache = std::make_shared< Sapphire::InstanceObjectCache >(); + Common::Service< Sapphire::InstanceObjectCache >::set( pInstanceObjCache ); - auto pActionMgr = std::make_shared< Manager::ActionMgr >( framework() ); - framework()->set< Manager::ActionMgr >( pActionMgr ); + auto pActionMgr = std::make_shared< Manager::ActionMgr >(); + Common::Service< Manager::ActionMgr >::set( pActionMgr ); loadBNpcTemplates(); - auto pNaviMgr = std::make_shared< Manager::NaviMgr >( framework() ); - framework()->set< Manager::NaviMgr >( pNaviMgr ); + auto pNaviMgr = std::make_shared< Manager::NaviMgr >(); + Common::Service< Manager::NaviMgr >::set( pNaviMgr ); Logger::info( "TerritoryMgr: Setting up zones" ); - auto pTeriMgr = std::make_shared< Manager::TerritoryMgr >( framework() ); - auto pHousingMgr = std::make_shared< Manager::HousingMgr >( framework() ); - framework()->set< Manager::HousingMgr >( pHousingMgr ); - framework()->set< Manager::TerritoryMgr >( pTeriMgr ); + auto pTeriMgr = std::make_shared< Manager::TerritoryMgr >(); + auto pHousingMgr = std::make_shared< Manager::HousingMgr >(); + Common::Service< Manager::HousingMgr >::set( pHousingMgr ); + Common::Service< Manager::TerritoryMgr >::set( pTeriMgr ); + if( !pHousingMgr->init() ) { Logger::fatal( "Failed to setup housing!" ); return; } - if( !pTeriMgr->init() ) { Logger::fatal( "Failed to setup zones!" ); return; } - auto pMarketMgr = std::make_shared< Manager::MarketMgr >( framework() ); - framework()->set< Manager::MarketMgr >( pMarketMgr ); + auto pMarketMgr = std::make_shared< Manager::MarketMgr >(); + Common::Service< Manager::MarketMgr >::set( pMarketMgr ); if( !pMarketMgr->init() ) { @@ -213,26 +210,26 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) Network::HivePtr hive( new Network::Hive() ); - Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive, framework() ); + Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive ); std::vector< std::thread > thread_list; thread_list.emplace_back( std::thread( std::bind( &Network::Hive::run, hive.get() ) ) ); - auto pDebugCom = std::make_shared< DebugCommandMgr >( framework() ); - auto pPlayerMgr = std::make_shared< Manager::PlayerMgr >( framework() ); - auto pShopMgr = std::make_shared< Manager::ShopMgr >( framework() ); - auto pInventoryMgr = std::make_shared< Manager::InventoryMgr >( framework() ); - auto pEventMgr = std::make_shared< Manager::EventMgr >( framework() ); - auto pItemMgr = std::make_shared< Manager::ItemMgr >( framework() ); - auto pRNGMgr = std::make_shared< Manager::RNGMgr >( framework() ); + auto pDebugCom = std::make_shared< DebugCommandMgr >(); + auto pPlayerMgr = std::make_shared< Manager::PlayerMgr >(); + auto pShopMgr = std::make_shared< Manager::ShopMgr >(); + auto pInventoryMgr = std::make_shared< Manager::InventoryMgr >(); + auto pEventMgr = std::make_shared< Manager::EventMgr >(); + auto pItemMgr = std::make_shared< Manager::ItemMgr >(); + auto pRNGMgr = std::make_shared< Manager::RNGMgr >(); - framework()->set< DebugCommandMgr >( pDebugCom ); - framework()->set< Manager::PlayerMgr >( pPlayerMgr ); - framework()->set< Manager::ShopMgr >( pShopMgr ); - framework()->set< Manager::InventoryMgr >( pInventoryMgr ); - framework()->set< Manager::EventMgr >( pEventMgr ); - framework()->set< Manager::ItemMgr >( pItemMgr ); - framework()->set< Manager::RNGMgr >( pRNGMgr ); + Common::Service< DebugCommandMgr >::set( pDebugCom ); + Common::Service< Manager::PlayerMgr >::set( pPlayerMgr ); + Common::Service< Manager::ShopMgr >::set( pShopMgr ); + Common::Service< Manager::InventoryMgr >::set( pInventoryMgr ); + Common::Service< Manager::EventMgr >::set( pEventMgr ); + Common::Service< Manager::ItemMgr >::set( pItemMgr ); + Common::Service< Manager::RNGMgr >::set( pRNGMgr ); Logger::info( "World server running on {0}:{1}", m_ip, m_port ); @@ -267,9 +264,9 @@ void Sapphire::World::ServerMgr::printBanner() const void Sapphire::World::ServerMgr::mainLoop() { - auto pTeriMgr = framework()->get< TerritoryMgr >(); - auto pScriptMgr = framework()->get< Scripting::ScriptMgr >(); - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& terriMgr = Common::Service< TerritoryMgr >::ref(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); while( isRunning() ) { @@ -278,9 +275,9 @@ void Sapphire::World::ServerMgr::mainLoop() auto currTime = Common::Util::getTimeSeconds(); auto tickCount = Common::Util::getTimeMs(); - pTeriMgr->updateTerritoryInstances( tickCount ); + terriMgr.updateTerritoryInstances( tickCount ); - pScriptMgr->update(); + scriptMgr.update(); std::lock_guard< std::mutex > lock( m_sessionMutex ); for( auto sessionIt : m_sessionMapById ) @@ -299,7 +296,7 @@ void Sapphire::World::ServerMgr::mainLoop() if( currTime - m_lastDBPingTime > 3 ) { - pDb->keepAlive(); + db.keepAlive(); m_lastDBPingTime = currTime; } @@ -361,7 +358,7 @@ bool Sapphire::World::ServerMgr::createSession( uint32_t sessionId ) Logger::info( "[{0}] Creating new session", session_id_str ); - std::shared_ptr< Session > newSession( new Session( sessionId, framework() ) ); + std::shared_ptr< Session > newSession( new Session( sessionId ) ); m_sessionMapById[ sessionId ] = newSession; if( !newSession->loadPlayer() ) @@ -425,8 +422,8 @@ std::string Sapphire::World::ServerMgr::getPlayerNameFromDb( uint32_t playerId, return ( it->second ); } - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto res = db.query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); if( !res->next() ) return "Unknown"; @@ -444,11 +441,10 @@ void Sapphire::World::ServerMgr::updatePlayerName( uint32_t playerId, const std: void Sapphire::World::ServerMgr::loadBNpcTemplates() { - auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_BNPCTEMPLATES ); - - auto res = pDb->query( stmt ); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_BNPCTEMPLATES ); + auto res = db.query( stmt ); while( res->next() ) { diff --git a/src/world/ServerMgr.h b/src/world/ServerMgr.h index fa3cf5ea..1add030a 100644 --- a/src/world/ServerMgr.h +++ b/src/world/ServerMgr.h @@ -6,18 +6,17 @@ #include #include #include "ForwardsZone.h" -#include "Manager/BaseManager.h" #include namespace Sapphire::World { - class ServerMgr : public Manager::BaseManager + class ServerMgr { public: - ServerMgr( const std::string& configName, FrameworkPtr pFw ); + ServerMgr( const std::string& configName ); - ~ServerMgr() override; + ~ServerMgr(); using WorldConfigPtr = std::shared_ptr< Sapphire::Common::Config::WorldConfig >; diff --git a/src/world/Session.cpp b/src/world/Session.cpp index 273d20d0..56bcc888 100644 --- a/src/world/Session.cpp +++ b/src/world/Session.cpp @@ -12,12 +12,11 @@ namespace fs = std::filesystem; -Sapphire::World::Session::Session( uint32_t sessionId, FrameworkPtr pFw ) : +Sapphire::World::Session::Session( uint32_t sessionId ) : m_sessionId( sessionId ), m_lastDataTime( Common::Util::getTimeSeconds() ), m_lastSqlTime( Common::Util::getTimeSeconds() ), m_isValid( false ), - m_pFw( std::move( pFw ) ), m_isReplaying( false ) { } @@ -48,7 +47,7 @@ Sapphire::Network::GameConnectionPtr Sapphire::World::Session::getChatConnection bool Sapphire::World::Session::loadPlayer() { - m_pPlayer = Entity::make_Player( m_pFw ); + m_pPlayer = Entity::make_Player(); if( !m_pPlayer->load( m_sessionId, shared_from_this() ) ) { diff --git a/src/world/Session.h b/src/world/Session.h index dcbd78cb..2f20ecbe 100644 --- a/src/world/Session.h +++ b/src/world/Session.h @@ -11,7 +11,7 @@ namespace Sapphire::World class Session : public std::enable_shared_from_this< Session > { public: - Session( uint32_t sessionId, FrameworkPtr pFw ); + Session( uint32_t sessionId ); ~Session() = default; @@ -67,8 +67,6 @@ namespace Sapphire::World Network::GameConnectionPtr m_pZoneConnection; Network::GameConnectionPtr m_pChatConnection; - FrameworkPtr m_pFw; - }; } diff --git a/src/world/StatusEffect/StatusEffect.cpp b/src/world/StatusEffect/StatusEffect.cpp index 4dcfd556..f63b79cc 100644 --- a/src/world/StatusEffect/StatusEffect.cpp +++ b/src/world/StatusEffect/StatusEffect.cpp @@ -4,6 +4,7 @@ #include #include +#include #include "Actor/Chara.h" #include "Actor/Actor.h" @@ -11,25 +12,23 @@ #include "Script/ScriptMgr.h" #include "StatusEffect.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; Sapphire::StatusEffect::StatusEffect::StatusEffect( uint32_t id, Entity::CharaPtr sourceActor, Entity::CharaPtr targetActor, - uint32_t duration, uint32_t tickRate, FrameworkPtr pFw ) : + uint32_t duration, uint32_t tickRate ) : m_id( id ), m_sourceActor( sourceActor ), m_targetActor( targetActor ), m_duration( duration ), m_startTime( 0 ), m_tickRate( tickRate ), - m_lastTick( 0 ), - m_pFw( pFw ) + m_lastTick( 0 ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto entry = pExdData->get< Sapphire::Data::Status >( id ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto entry = exdData.get< Sapphire::Data::Status >( id ); m_name = entry->name; std::replace( m_name.begin(), m_name.end(), ' ', '_' ); @@ -62,9 +61,10 @@ std::pair< uint8_t, uint32_t > Sapphire::StatusEffect::StatusEffect::getTickEffe void Sapphire::StatusEffect::StatusEffect::onTick() { - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); m_lastTick = Util::getTimeMs(); - pScriptMgr->onStatusTick( m_targetActor, *this ); + + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onStatusTick( m_targetActor, *this ); } uint32_t Sapphire::StatusEffect::StatusEffect::getSrcActorId() const @@ -85,7 +85,7 @@ uint16_t Sapphire::StatusEffect::StatusEffect::getParam() const void Sapphire::StatusEffect::StatusEffect::applyStatus() { m_startTime = Util::getTimeMs(); - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); // this is only right when an action is being used by the player // else you probably need to use an actorcontrol @@ -105,13 +105,13 @@ void Sapphire::StatusEffect::StatusEffect::applyStatus() //effectPacket.data().effects[4].unknown_5 = 0x80; //m_sourceActor->sendToInRangeSet( effectPacket, true ); - pScriptMgr->onStatusReceive( m_targetActor, m_id ); + scriptMgr.onStatusReceive( m_targetActor, m_id ); } void Sapphire::StatusEffect::StatusEffect::removeStatus() { - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onStatusTimeOut( m_targetActor, m_id ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onStatusTimeOut( m_targetActor, m_id ); } uint32_t Sapphire::StatusEffect::StatusEffect::getId() const diff --git a/src/world/StatusEffect/StatusEffect.h b/src/world/StatusEffect/StatusEffect.h index d9f933e1..e6bb1c8e 100644 --- a/src/world/StatusEffect/StatusEffect.h +++ b/src/world/StatusEffect/StatusEffect.h @@ -11,7 +11,7 @@ class StatusEffect { public: StatusEffect( uint32_t id, Entity::CharaPtr sourceActor, Entity::CharaPtr targetActor, - uint32_t duration, uint32_t tickRate, FrameworkPtr pFw ); + uint32_t duration, uint32_t tickRate ); ~StatusEffect(); @@ -58,7 +58,6 @@ private: uint16_t m_param; std::string m_name; std::pair< uint8_t, uint32_t > m_currTickEffect; - FrameworkPtr m_pFw; }; diff --git a/src/world/Territory/House.cpp b/src/world/Territory/House.cpp index 4d4544ff..c5f44bc6 100644 --- a/src/world/Territory/House.cpp +++ b/src/world/Territory/House.cpp @@ -9,16 +9,15 @@ #include "House.h" #include -#include "Framework.h" +#include Sapphire::House::House( uint32_t houseId, uint32_t landSetId, Common::LandIdent ident, const std::string& estateName, - const std::string& estateComment, FrameworkPtr pFw ) : + const std::string& estateComment ) : m_houseId( houseId ), m_landSetId( landSetId ), m_landIdent( ident ), m_estateName( estateName ), - m_estateComment( estateComment ), - m_pFw( pFw ) + m_estateComment( estateComment ) { m_interiorModelCache.fill( 0 ); m_exteriorModelCache.fill( std::make_pair( 0, 0 ) ); @@ -28,10 +27,10 @@ Sapphire::House::~House() = default; void Sapphire::House::updateHouseDb() { - auto pDB = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); // BuildTime = 1, Aetheryte = 2, Comment = 3, HouseName = 4, Endorsements = 5, HouseId = 6 - auto stmt = pDB->getPreparedStatement( Db::HOUSING_HOUSE_UP ); + auto stmt = db.getPreparedStatement( Db::HOUSING_HOUSE_UP ); stmt->setUInt( 6, m_houseId ); stmt->setInt64( 1, static_cast< int64_t >( m_buildTime ) ); @@ -42,7 +41,7 @@ void Sapphire::House::updateHouseDb() stmt->setUInt64( 5, 0 ); - pDB->execute( stmt ); + db.execute( stmt ); } uint32_t Sapphire::House::getLandSetId() const diff --git a/src/world/Territory/House.h b/src/world/Territory/House.h index 1fa0ca43..9a3a3da0 100644 --- a/src/world/Territory/House.h +++ b/src/world/Territory/House.h @@ -14,7 +14,7 @@ namespace Sapphire { public: House( uint32_t houseId, uint32_t landSetId, Common::LandIdent ident, const std::string& estateName, - const std::string& estateComment, FrameworkPtr pFw ); + const std::string& estateComment ); virtual ~House(); using HousePart = std::pair< uint32_t, uint16_t >; @@ -59,7 +59,6 @@ namespace Sapphire std::string m_estateComment; std::string m_estateName; - FrameworkPtr m_pFw; }; } diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index ade7acfc..bef2e7d6 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "Actor/Player.h" #include "Actor/Actor.h" @@ -20,7 +21,6 @@ #include "Forwards.h" #include "HousingInteriorTerritory.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -34,9 +34,8 @@ Sapphire::World::Territory::Housing::HousingInteriorTerritory::HousingInteriorTe uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, - const std::string& contentName, - FrameworkPtr pFw ) : - Territory( territoryTypeId, guId, internalName, contentName, pFw ), + const std::string& contentName ) : + Territory( territoryTypeId, guId, internalName, contentName ), m_landIdent( ident ) { } @@ -52,7 +51,7 @@ bool Sapphire::World::Territory::Housing::HousingInteriorTerritory::init() void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) { - auto pHousingMgr = m_pFw->get< HousingMgr >(); + auto& housingMgr = Common::Service< HousingMgr >::ref(); Logger::debug( "HousingInteriorTerritory::onPlayerZoneIn: Territory#{0}|{1}, Entity#{2}", getGuId(), getTerritoryTypeId(), player.getId() ); @@ -63,8 +62,8 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone indoorInitPacket->data().u3 = 0; indoorInitPacket->data().u4 = 0; - auto landSetId = pHousingMgr->toLandSetId( static_cast< uint16_t >( m_landIdent.territoryTypeId ), static_cast< uint8_t >( m_landIdent.wardNum ) ); - auto pLand = pHousingMgr->getHousingZoneByLandSetId( landSetId )->getLand( static_cast< uint8_t >( m_landIdent.landId ) ); + auto landSetId = housingMgr.toLandSetId( static_cast< uint16_t >( m_landIdent.territoryTypeId ), static_cast< uint8_t >( m_landIdent.wardNum ) ); + auto pLand = housingMgr.getHousingZoneByLandSetId( landSetId )->getLand( static_cast< uint8_t >( m_landIdent.landId ) ); auto pHouse = pLand->getHouse(); for( auto i = 0; i < 10; i++ ) @@ -115,7 +114,7 @@ const Common::LandIdent Sapphire::World::Territory::Housing::HousingInteriorTerr void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousingObjects() { - auto housingMgr = m_pFw->get< Manager::HousingMgr >(); + auto& housingMgr = Common::Service< Manager::HousingMgr >::ref(); auto containerIds = { InventoryType::HousingInteriorPlacedItems1, @@ -135,7 +134,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousin memset( &obj, 0x0, sizeof( Common::HousingObject ) ); m_housingObjects.fill( obj ); - auto containers = housingMgr->getEstateInventory( getLandIdent() ); + auto containers = housingMgr.getEstateInventory( getLandIdent() ); uint8_t containerIdx = 0; for( auto containerId : containerIds ) @@ -152,7 +151,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousin auto offset = item.first + ( containerIdx * 50 ); - auto obj = housingMgr->getYardObjectForItem( housingItem ); + auto obj = housingMgr.getYardObjectForItem( housingItem ); m_housingObjects[static_cast< size_t >( offset ) ] = obj; } @@ -166,10 +165,10 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::spawnHousing uint16_t containerType, Inventory::HousingItemPtr item ) { - auto housingMgr = m_pFw->get< Manager::HousingMgr >(); + auto& housingMgr = Common::Service< Manager::HousingMgr >::ref(); auto offset = ( containerIdx * 50 ) + slot; - auto obj = housingMgr->getYardObjectForItem( item ); + auto obj = housingMgr.getYardObjectForItem( item ); m_housingObjects[ static_cast< size_t >( offset ) ] = obj; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.h b/src/world/Territory/Housing/HousingInteriorTerritory.h index 3ea97ae4..49bc0f9e 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.h +++ b/src/world/Territory/Housing/HousingInteriorTerritory.h @@ -11,8 +11,7 @@ namespace Sapphire::World::Territory::Housing HousingInteriorTerritory( Common::LandIdent ident, uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, - const std::string& contentName, - FrameworkPtr pFw ); + const std::string& contentName ); virtual ~HousingInteriorTerritory(); diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 99ab1a1d..e2ee9cf6 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "Actor/Player.h" #include "Actor/Actor.h" @@ -20,7 +21,6 @@ #include "Forwards.h" #include "HousingZone.h" #include "Manager/HousingMgr.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -31,13 +31,11 @@ Sapphire::HousingZone::HousingZone( uint8_t wardNum, uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, - const std::string& contentName, - FrameworkPtr pFw ) : - Territory( territoryTypeId, guId, internalName, contentName, pFw ), + const std::string& contentName ) : + Territory( territoryTypeId, guId, internalName, contentName ), m_wardNum( wardNum ), m_territoryTypeId( territoryTypeId ), - m_landSetId( ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardNum ), - m_pFw( pFw ) + m_landSetId( ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardNum ) { } @@ -45,12 +43,12 @@ Sapphire::HousingZone::HousingZone( uint8_t wardNum, bool Sapphire::HousingZone::init() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); { - auto res = pDb->query( "SELECT * FROM landset WHERE landsetid = " + std::to_string( m_landSetId ) ); + auto res = db.query( "SELECT * FROM landset WHERE landsetid = " + std::to_string( m_landSetId ) ); if( !res->next() ) { - pDb->directExecute( "INSERT INTO landset ( landsetid ) VALUES ( " + std::to_string( m_landSetId ) + " );" ); + db.directExecute( "INSERT INTO landset ( landsetid ) VALUES ( " + std::to_string( m_landSetId ) + " );" ); } } @@ -65,8 +63,8 @@ bool Sapphire::HousingZone::init() else if( m_territoryTypeId == 641 ) housingIndex = 3; - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Sapphire::Data::HousingLandSet >( housingIndex ); + auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto info = exdData.get< Sapphire::Data::HousingLandSet >( housingIndex ); // build yard objects array indices int16_t cursor = -1; @@ -114,8 +112,8 @@ bool Sapphire::HousingZone::init() arr.fill( obj ); } - auto housingMgr = m_pFw->get< World::Manager::HousingMgr >(); - auto landCache = housingMgr->getLandCacheMap(); + auto& housingMgr = Common::Service< World::Manager::HousingMgr >::ref(); + auto landCache = housingMgr.getLandCacheMap(); // make sure the landset exists auto landSetCache = landCache.find( m_landSetId ); @@ -128,15 +126,15 @@ bool Sapphire::HousingZone::init() // init the lands for( HousingMgr::LandCacheEntry& entry : landSetCache->second ) { - auto land = make_Land( m_territoryTypeId, getWardNum(), entry.m_landId, m_landSetId, info, m_pFw ); + auto land = make_Land( m_territoryTypeId, getWardNum(), entry.m_landId, m_landSetId, info ); // setup house if( entry.m_houseId ) { auto house = make_House( entry.m_houseId, m_landSetId, land->getLandIdent(), entry.m_estateName, - entry.m_estateComment, m_pFw ); + entry.m_estateComment ); - housingMgr->updateHouseModels( house ); + housingMgr.updateHouseModels( house ); land->setHouse( house ); } @@ -325,8 +323,8 @@ Sapphire::Entity::EventObjectPtr Sapphire::HousingZone::registerEstateEntranceEO void Sapphire::HousingZone::updateYardObjects( Sapphire::Common::LandIdent ident ) { - auto housingMgr = m_pFw->get< World::Manager::HousingMgr >(); - auto& landStorage = housingMgr->getEstateInventory( ident ); + auto& housingMgr = Common::Service< World::Manager::HousingMgr >::ref(); + auto& landStorage = housingMgr.getEstateInventory( ident ); auto yardContainer = landStorage[ InventoryType::HousingExteriorPlacedItems ]; @@ -339,7 +337,7 @@ void Sapphire::HousingZone::updateYardObjects( Sapphire::Common::LandIdent ident assert( housingItem ); auto idx = item.first + arrayBounds.first; - m_yardObjects[ yardMapIndex ][ idx ] = housingMgr->getYardObjectForItem( housingItem ); + m_yardObjects[ yardMapIndex ][ idx ] = housingMgr.getYardObjectForItem( housingItem ); } } diff --git a/src/world/Territory/HousingZone.h b/src/world/Territory/HousingZone.h index 804624ed..112a452a 100644 --- a/src/world/Territory/HousingZone.h +++ b/src/world/Territory/HousingZone.h @@ -31,8 +31,7 @@ namespace Sapphire uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, - const std::string& contentName, - FrameworkPtr pFw ); + const std::string& contentName ); virtual ~HousingZone() = default; @@ -87,7 +86,6 @@ namespace Sapphire YardObjectSubdivisionArray m_yardObjects; YardObjectArrayBoundsArray m_yardObjectArrayBounds; - FrameworkPtr m_pFw; }; } diff --git a/src/world/Territory/InstanceContent.cpp b/src/world/Territory/InstanceContent.cpp index 1f902685..2bdd3bf8 100644 --- a/src/world/Territory/InstanceContent.cpp +++ b/src/world/Territory/InstanceContent.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "Event/Director.h" #include "Event/EventDefs.h" @@ -20,7 +21,6 @@ #include "Event/EventHandler.h" #include "InstanceContent.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -32,9 +32,8 @@ Sapphire::InstanceContent::InstanceContent( std::shared_ptr< Sapphire::Data::Ins uint32_t guId, const std::string& internalName, const std::string& contentName, - uint32_t instanceContentId, - FrameworkPtr pFw ) : - Territory( static_cast< uint16_t >( territoryType ), guId, internalName, contentName, pFw ), + uint32_t instanceContentId ) : + Territory( static_cast< uint16_t >( territoryType ), guId, internalName, contentName ), Director( Event::Director::InstanceContent, instanceContentId ), m_instanceConfiguration( pInstanceConfiguration ), m_instanceContentId( instanceContentId ), @@ -51,8 +50,8 @@ bool Sapphire::InstanceContent::init() if( !Territory::init() ) return false; - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInstanceInit( getAsInstanceContent() ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInstanceInit( getAsInstanceContent() ); return true; } @@ -157,8 +156,8 @@ void Sapphire::InstanceContent::onUpdate( uint64_t tickCount ) break; } - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInstanceUpdate( getAsInstanceContent(), tickCount ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInstanceUpdate( getAsInstanceContent(), tickCount ); m_lastUpdate = tickCount; } @@ -312,8 +311,8 @@ void Sapphire::InstanceContent::onRegisterEObj( Entity::EventObjectPtr object ) if( object->getObjectId() == 2000182 ) // start m_pEntranceEObj = object; - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto objData = pExdData->get< Sapphire::Data::EObj >( object->getObjectId() ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto objData = exdData.get< Sapphire::Data::EObj >( object->getObjectId() ); if( objData ) // todo: data should be renamed to eventId m_eventIdToObjectMap[ objData->data ] = object; @@ -385,8 +384,8 @@ void Sapphire::InstanceContent::onTalk( Sapphire::Entity::Player& player, uint32 void Sapphire::InstanceContent::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInstanceEnterTerritory( getAsInstanceContent(), player, eventId, param1, param2 ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInstanceEnterTerritory( getAsInstanceContent(), player, eventId, param1, param2 ); if( !hasPlayerPreviouslySpawned( player ) ) { diff --git a/src/world/Territory/InstanceContent.h b/src/world/Territory/InstanceContent.h index a34ac2fb..37af2446 100644 --- a/src/world/Territory/InstanceContent.h +++ b/src/world/Territory/InstanceContent.h @@ -28,8 +28,7 @@ namespace Sapphire uint32_t guId, const std::string& internalName, const std::string& contentName, - uint32_t instanceContentId, - FrameworkPtr pFw ); + uint32_t instanceContentId ); virtual ~InstanceContent(); diff --git a/src/world/Territory/InstanceObjectCache.cpp b/src/world/Territory/InstanceObjectCache.cpp index e4e18815..202d6010 100644 --- a/src/world/Territory/InstanceObjectCache.cpp +++ b/src/world/Territory/InstanceObjectCache.cpp @@ -1,6 +1,5 @@ #include "InstanceObjectCache.h" #include "Exd/ExdDataGenerated.h" -#include #include #include @@ -13,13 +12,13 @@ #include #include +#include -Sapphire::InstanceObjectCache::InstanceObjectCache( std::shared_ptr< Framework > pFramework ) : - m_pFramework( pFramework ) +Sapphire::InstanceObjectCache::InstanceObjectCache() { - auto pExd = pFramework->get< Sapphire::Data::ExdDataGenerated >(); - auto idList = pExd->getTerritoryTypeIdList(); + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); + auto idList = exdData.getTerritoryTypeIdList(); size_t count = 0; for( const auto& id : idList ) @@ -28,7 +27,7 @@ Sapphire::InstanceObjectCache::InstanceObjectCache( std::shared_ptr< Framework > if( count++ % 10 == 0 ) std::cout << "."; - auto territoryType = pExd->get< Sapphire::Data::TerritoryType >( id ); + auto territoryType = exdData.get< Sapphire::Data::TerritoryType >( id ); if( !territoryType ) continue; @@ -50,8 +49,8 @@ Sapphire::InstanceObjectCache::InstanceObjectCache( std::shared_ptr< Framework > try { - bgFile = pExd->getGameData()->getFile( bgLgbPath ); - planmap_file = pExd->getGameData()->getFile( planmapLgbPath ); + bgFile = exdData.getGameData()->getFile( bgLgbPath ); + planmap_file = exdData.getGameData()->getFile( planmapLgbPath ); } catch( std::runtime_error& ) { diff --git a/src/world/Territory/InstanceObjectCache.h b/src/world/Territory/InstanceObjectCache.h index 0476adb6..efb448c4 100644 --- a/src/world/Territory/InstanceObjectCache.h +++ b/src/world/Territory/InstanceObjectCache.h @@ -66,7 +66,7 @@ namespace Sapphire using ExitRangePtr = std::shared_ptr< LGB_EXIT_RANGE_ENTRY >; using PopRangePtr = std::shared_ptr< LGB_POP_RANGE_ENTRY >; - explicit InstanceObjectCache( std::shared_ptr< Framework > pFramework ); + InstanceObjectCache(); ~InstanceObjectCache() = default; MapRangePtr getMapRange( uint16_t zoneId, uint32_t mapRangeId ); diff --git a/src/world/Territory/Land.cpp b/src/world/Territory/Land.cpp index bb11a578..fe7f8771 100644 --- a/src/world/Territory/Land.cpp +++ b/src/world/Territory/Land.cpp @@ -12,6 +12,7 @@ #include #include +#include #include "Actor/Player.h" #include "Inventory/ItemContainer.h" @@ -21,13 +22,12 @@ #include "Forwards.h" #include "Land.h" -#include "Framework.h" #include "House.h" using namespace Sapphire::Common; Sapphire::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, - Sapphire::Data::HousingLandSetPtr info, FrameworkPtr pFw ) : + Sapphire::Data::HousingLandSetPtr info ) : m_currentPrice( 0 ), m_minPrice( 0 ), m_nextDrop( Util::getTimeSeconds() + 21600 ), @@ -38,8 +38,7 @@ Sapphire::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, m_fcIcon( 0 ), m_fcIconColor( 0 ), m_fcId( 0 ), - m_iconAddIcon( 0 ), - m_pFw( pFw ) + m_iconAddIcon( 0 ) { memset( &m_tag, 0x00, 3 ); @@ -63,8 +62,8 @@ void Sapphire::Land::init( Common::LandType type, Common::HouseSize size, Common m_currentPrice = currentPrice; m_ownerId = ownerId; - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Sapphire::Data::HousingMapMarkerInfo >( m_landIdent.territoryTypeId, m_landIdent.landId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto info = exdData.get< Sapphire::Data::HousingMapMarkerInfo >( m_landIdent.territoryTypeId, m_landIdent.landId ); if( info ) { m_mapMarkerPosition.x = info->x; @@ -211,15 +210,15 @@ void Sapphire::Land::updateLandDb() houseId = getHouse()->getId(); // todo: change to prepared statement - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_state ) - + ", LandPrice = " + std::to_string( getCurrentPrice() ) - + ", UpdateTime = " + std::to_string( getDevaluationTime() ) - + ", OwnerId = " + std::to_string( getOwnerId() ) - + ", HouseId = " + std::to_string( houseId ) - + ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + db.directExecute( "UPDATE land SET status = " + std::to_string( m_state ) + + ", LandPrice = " + std::to_string( getCurrentPrice() ) + + ", UpdateTime = " + std::to_string( getDevaluationTime() ) + + ", OwnerId = " + std::to_string( getOwnerId() ) + + ", HouseId = " + std::to_string( houseId ) + + ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id + " WHERE LandSetId = " + std::to_string( m_landSetId ) - + " AND LandId = " + std::to_string( m_landIdent.landId ) + ";" ); + + " AND LandId = " + std::to_string( m_landIdent.landId ) + ";" ); if( auto house = getHouse() ) house->updateHouseDb(); diff --git a/src/world/Territory/Land.h b/src/world/Territory/Land.h index 213cfe3c..48f696e2 100644 --- a/src/world/Territory/Land.h +++ b/src/world/Territory/Land.h @@ -16,7 +16,7 @@ namespace Sapphire public: Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, - Sapphire::Data::HousingLandSetPtr info, FrameworkPtr pFw ); + Sapphire::Data::HousingLandSetPtr info ); virtual ~Land(); void init( Common::LandType type, Common::HouseSize size, Common::HouseStatus state, uint32_t currentPrice, uint64_t ownerId, uint64_t houseId ); @@ -100,8 +100,6 @@ namespace Sapphire //information char fcTag[7]; uint8_t m_tag[3]; - - FrameworkPtr m_pFw; }; } diff --git a/src/world/Territory/QuestBattle.cpp b/src/world/Territory/QuestBattle.cpp index a5dd3a0a..7db97014 100644 --- a/src/world/Territory/QuestBattle.cpp +++ b/src/world/Territory/QuestBattle.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "Event/Director.h" #include "Event/EventDefs.h" @@ -22,7 +23,6 @@ #include "Event/EventHandler.h" #include "QuestBattle.h" -#include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; @@ -34,9 +34,8 @@ Sapphire::QuestBattle::QuestBattle( std::shared_ptr< Sapphire::Data::QuestBattle uint32_t guId, const std::string& internalName, const std::string& contentName, - uint32_t questBattleId, - FrameworkPtr pFw ) : - Territory( static_cast< uint16_t >( territoryType ), guId, internalName, contentName, pFw ), + uint32_t questBattleId ) : + Territory( static_cast< uint16_t >( territoryType ), guId, internalName, contentName ), Director( Event::Director::QuestBattle, questBattleId ), m_pBattleDetails( pBattleDetails ), m_questBattleId( questBattleId ), @@ -51,8 +50,8 @@ bool Sapphire::QuestBattle::init() if( !Territory::init() ) return false; - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInstanceInit( getAsQuestBattle() ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInstanceInit( getAsQuestBattle() ); return true; } @@ -101,6 +100,8 @@ void Sapphire::QuestBattle::onUpdate( uint64_t tickCount ) if( !m_pPlayer ) return; + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + switch( m_state ) { case Created: @@ -122,8 +123,8 @@ void Sapphire::QuestBattle::onUpdate( uint64_t tickCount ) return; onEnterSceneFinish( *m_pPlayer ); - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onDutyCommence( *this, *m_pPlayer ); + + scriptMgr.onDutyCommence( *this, *m_pPlayer ); m_state = DutyInProgress; m_instanceExpireTime = Util::getTimeSeconds() + ( m_pBattleDetails->timeLimit * 60u ); @@ -157,8 +158,7 @@ void Sapphire::QuestBattle::onUpdate( uint64_t tickCount ) } } - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInstanceUpdate( getAsQuestBattle(), tickCount ); + scriptMgr.onInstanceUpdate( getAsQuestBattle(), tickCount ); m_lastUpdate = tickCount; } @@ -285,8 +285,8 @@ void Sapphire::QuestBattle::onRegisterEObj( Entity::EventObjectPtr object ) if( object->getName() != "none" ) m_eventObjectMap[ object->getName() ] = object; - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto objData = pExdData->get< Sapphire::Data::EObj >( object->getObjectId() ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto objData = exdData.get< Sapphire::Data::EObj >( object->getObjectId() ); if( objData ) // todo: data should be renamed to eventId m_eventIdToObjectMap[ objData->data ] = object; @@ -305,8 +305,9 @@ void Sapphire::QuestBattle::onBeforePlayerZoneIn( Sapphire::Entity::Player& play { player.setRot( PI ); player.setPos( { 0.f, 0.f, 0.f } ); - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onPlayerSetup( *this, player ); + + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onPlayerSetup( *this, player ); player.resetObjSpawnIndex(); } @@ -338,8 +339,8 @@ void Sapphire::QuestBattle::onTalk( Sapphire::Entity::Player& player, uint32_t e void Sapphire::QuestBattle::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onInstanceEnterTerritory( getAsQuestBattle(), player, eventId, param1, param2 ); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInstanceEnterTerritory( getAsQuestBattle(), player, eventId, param1, param2 ); } void Sapphire::QuestBattle::clearDirector( Entity::Player& player ) @@ -364,8 +365,10 @@ void Sapphire::QuestBattle::success() [ & ]( Entity::Player& player, const Event::SceneResult& result ) { player.eventFinish( getDirectorId(), 1 ); - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); - pScriptMgr->onDutyComplete( getAsQuestBattle(), *m_pPlayer ); + + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onDutyComplete( getAsQuestBattle(), *m_pPlayer ); + player.exitInstance(); } ); diff --git a/src/world/Territory/QuestBattle.h b/src/world/Territory/QuestBattle.h index 4553fe06..899a6c6a 100644 --- a/src/world/Territory/QuestBattle.h +++ b/src/world/Territory/QuestBattle.h @@ -20,8 +20,7 @@ namespace Sapphire uint32_t guId, const std::string& internalName, const std::string& contentName, - uint32_t questBattleId, - FrameworkPtr pFw ); + uint32_t questBattleId ); virtual ~QuestBattle() = default; diff --git a/src/world/Territory/Territory.cpp b/src/world/Territory/Territory.cpp index 07a6269f..a2e71d4d 100644 --- a/src/world/Territory/Territory.cpp +++ b/src/world/Territory/Territory.cpp @@ -41,7 +41,6 @@ #include "ForwardsZone.h" #include "ServerMgr.h" #include "CellHandler.h" -#include "Framework.h" #include "Manager/RNGMgr.h" #include "Manager/NaviMgr.h" @@ -67,16 +66,14 @@ Sapphire::Territory::Territory() : } Sapphire::Territory::Territory( uint16_t territoryTypeId, uint32_t guId, - const std::string& internalName, const std::string& placeName, - FrameworkPtr pFw ) : + const std::string& internalName, const std::string& placeName ) : m_currentWeather( Weather::FairSkies ), m_nextEObjId( 0x400D0000 ), m_nextActorId( 0x500D0000 ), - m_pFw( pFw ), m_lastUpdate( 0 ), m_lastActivityTime( Util::getTimeMs() ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); m_guId = guId; m_territoryTypeId = territoryTypeId; @@ -85,7 +82,7 @@ Sapphire::Territory::Territory( uint16_t territoryTypeId, uint32_t guId, m_lastMobUpdate = 0; m_weatherOverride = Weather::None; - m_territoryTypeInfo = pExdData->get< Sapphire::Data::TerritoryType >( territoryTypeId ); + m_territoryTypeInfo = exdData.get< Sapphire::Data::TerritoryType >( territoryTypeId ); m_bgPath = m_territoryTypeInfo->bg; loadWeatherRates(); @@ -99,13 +96,13 @@ void Sapphire::Territory::loadWeatherRates() if( !m_territoryTypeInfo ) return; - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); - uint8_t weatherRateId = m_territoryTypeInfo->weatherRate > pExdData->getWeatherRateIdList().size() ? + uint8_t weatherRateId = m_territoryTypeInfo->weatherRate > exdData.getWeatherRateIdList().size() ? uint8_t{ 0 } : m_territoryTypeInfo->weatherRate; uint8_t sumPc = 0; - auto weatherRateFields = pExdData->m_WeatherRateDat.get_row( weatherRateId ); + auto weatherRateFields = exdData.m_WeatherRateDat.get_row( weatherRateId ); for( size_t i = 0; i < 16; ) { int32_t weatherId = std::get< int32_t >( weatherRateFields[ i ] ); @@ -123,17 +120,17 @@ Sapphire::Territory::~Territory() = default; bool Sapphire::Territory::init() { - auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); - if( pScriptMgr->onZoneInit( shared_from_this() ) ) + if( scriptMgr.onZoneInit( shared_from_this() ) ) { // all good } - auto pNaviMgr = m_pFw->get< World::Manager::NaviMgr >(); - pNaviMgr->setupTerritory( m_territoryTypeInfo->bg ); + auto& naviMgr = Common::Service< World::Manager::NaviMgr >::ref(); + naviMgr.setupTerritory( m_territoryTypeInfo->bg ); - m_pNaviProvider = pNaviMgr->getNaviProvider( m_territoryTypeInfo->bg ); + m_pNaviProvider = naviMgr.getNaviProvider( m_territoryTypeInfo->bg ); if( !m_pNaviProvider ) { @@ -315,8 +312,8 @@ void Sapphire::Territory::removeActor( Entity::ActorPtr pActor ) void Sapphire::Territory::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, Network::Packets::FFXIVPacketBasePtr pPacketEntry ) { - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); - if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); + if( teriMgr.isPrivateTerritory( getTerritoryTypeId() ) ) return; auto& serverMgr = Common::Service< World::ServerMgr >::ref(); @@ -342,8 +339,8 @@ void Sapphire::Territory::queuePacketForZone( Entity::Player& sourcePlayer, Network::Packets::FFXIVPacketBasePtr pPacketEntry, bool forSelf ) { - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); - if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); + if( teriMgr.isPrivateTerritory( getTerritoryTypeId() ) ) return; auto& serverMgr = Common::Service< World::ServerMgr >::ref(); @@ -686,14 +683,14 @@ void Sapphire::Territory::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell if( pCell == nullptr ) return; - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto& teriMgr = Common::Service< TerritoryMgr >::ref(); // TODO: make sure gms can overwrite this. Potentially temporary solution - if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) + if( teriMgr.isPrivateTerritory( getTerritoryTypeId() ) ) return; auto iter = pCell->m_actors.begin(); - float fRange = pTeriMgr->getInRangeDistance(); + float fRange = teriMgr.getInRangeDistance(); int32_t count = 0; while( iter != pCell->m_actors.end() ) { @@ -822,10 +819,10 @@ Sapphire::Data::TerritoryTypePtr Sapphire::Territory::getTerritoryTypeInfo() con bool Sapphire::Territory::loadSpawnGroups() { - auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_SPAWNGROUPS ); + auto& db = Common::Service< Db::DbWorkerPool< Db::ZoneDbConnection > >::ref(); + auto stmt = db.getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_SPAWNGROUPS ); stmt->setUInt( 1, getTerritoryTypeId() ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); while( res->next() ) { @@ -842,11 +839,11 @@ bool Sapphire::Territory::loadSpawnGroups() res.reset(); stmt.reset(); - stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_SPAWNPOINTS ); + stmt = db.getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_SPAWNPOINTS ); for( auto& group : m_spawnGroups ) { stmt->setUInt( 1, group.getId() ); - auto res = pDb->query( stmt ); + auto res = db.query( stmt ); while( res->next() ) { @@ -867,8 +864,8 @@ bool Sapphire::Territory::loadSpawnGroups() void Sapphire::Territory::updateSpawnPoints() { - auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >(); - auto rng = pRNGMgr->getRandGenerator< float >( 0.f, PI * 2 ); + auto& RNGMgr = Common::Service< World::Manager::RNGMgr >::ref(); + auto rng = RNGMgr.getRandGenerator< float >( 0.f, PI * 2 ); for( auto& group : m_spawnGroups ) { @@ -893,7 +890,7 @@ void Sapphire::Territory::updateSpawnPoints() point->getPosZ(), rng.next(), group.getLevel(), - group.getMaxHp(), shared_from_this(), m_pFw ); + group.getMaxHp(), shared_from_this() ); point->setLinkedBNpc( pBNpc ); pushActor( pBNpc ); @@ -918,8 +915,8 @@ Sapphire::Entity::BNpcPtr uint32_t hp, uint16_t nameId, uint32_t directorId, uint8_t bnpcType ) { - auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); - auto levelData = pExdData->get< Sapphire::Data::Level >( levelId ); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto levelData = exdData.get< Sapphire::Data::Level >( levelId ); if( !levelData ) return nullptr; @@ -928,7 +925,7 @@ Sapphire::Entity::BNpcPtr auto bnpcBaseId = levelData->object; - auto bnpcBaseData = pExdData->get< Sapphire::Data::BNpcBase >( bnpcBaseId ); + auto bnpcBaseData = exdData.get< Sapphire::Data::BNpcBase >( bnpcBaseId ); if( !bnpcBaseData ) return nullptr; @@ -940,7 +937,7 @@ Sapphire::Entity::BNpcPtr std::vector< uint8_t > customize( 26 ); if( bnpcBaseData->bNpcCustomize != 0 ) { - auto bnpcCustomizeData = pExdData->get< Sapphire::Data::BNpcCustomize >( bnpcBaseData->bNpcCustomize ); + auto bnpcCustomizeData = exdData.get< Sapphire::Data::BNpcCustomize >( bnpcBaseData->bNpcCustomize ); if( bnpcCustomizeData ) { customize[0] = bnpcCustomizeData->race; @@ -977,7 +974,7 @@ Sapphire::Entity::BNpcPtr uint64_t modeloff = 0; if( bnpcBaseData->npcEquip != 0 ) { - auto npcEquipData = pExdData->get< Sapphire::Data::NpcEquip >( bnpcBaseData->npcEquip ); + auto npcEquipData = exdData.get< Sapphire::Data::NpcEquip >( bnpcBaseData->npcEquip ); if( npcEquipData ) { modelMain = npcEquipData->modelMainHand; @@ -1000,7 +997,7 @@ Sapphire::Entity::BNpcPtr bnpcBaseData->modelChara, 0, &models[0], &customize[0] ); auto bnpc = std::make_shared< Entity::BNpc >( getNextActorId(), tmp, levelData->x, levelData->y, levelData->z, - levelData->yaw, level, hp, shared_from_this(), m_pFw ); + levelData->yaw, level, hp, shared_from_this() ); bnpc->setDirectorId( directorId ); bnpc->setLevelId( levelId ); diff --git a/src/world/Territory/Territory.h b/src/world/Territory/Territory.h index 34258d29..47aa51ae 100644 --- a/src/world/Territory/Territory.h +++ b/src/world/Territory/Territory.h @@ -58,7 +58,6 @@ namespace Sapphire uint32_t m_nextEObjId; uint32_t m_nextActorId; - FrameworkPtr m_pFw; std::vector< Entity::SpawnGroup > m_spawnGroups; @@ -71,7 +70,7 @@ namespace Sapphire Territory(); Territory( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, - const std::string& placeName, FrameworkPtr pFw ); + const std::string& placeName ); virtual ~Territory(); diff --git a/src/world/mainGameServer.cpp b/src/world/mainGameServer.cpp index 93f3d139..a8f29f3d 100644 --- a/src/world/mainGameServer.cpp +++ b/src/world/mainGameServer.cpp @@ -1,7 +1,6 @@ #include #include "ServerMgr.h" -#include #include #include @@ -14,8 +13,7 @@ Common::Util::CrashHandler crashHandler; int main( int32_t argc, char* argv[] ) { - auto pFramework = make_Framework(); - auto pServer = std::make_shared< ServerMgr >( "world.ini", pFramework ); + auto pServer = std::make_shared< ServerMgr >( "world.ini" ); Common::Service< ServerMgr >::set( pServer ); From 472c41cda6bf85edb42cd709f0d1d921c2212af2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 1 Mar 2020 01:09:33 +1100 Subject: [PATCH 5/7] fix lobby gameconnection --- src/lobby/Forwards.h | 5 ----- src/lobby/GameConnection.cpp | 7 +++---- src/lobby/GameConnection.h | 2 +- src/lobby/ServerLobby.cpp | 3 +-- src/world/ForwardsZone.h | 1 - 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/lobby/Forwards.h b/src/lobby/Forwards.h index 1f54bcc7..2e2d4e36 100644 --- a/src/lobby/Forwards.h +++ b/src/lobby/Forwards.h @@ -12,11 +12,6 @@ x ## Ptr make_ ## x( Args &&...args ) { \ return std::make_shared< x >( std::forward< Args >( args ) ... ); }\ typedef std::vector< x > x ## PtrList; -namespace Sapphire -{ - TYPE_FORWARD( Framework ); -} - namespace Sapphire::Lobby { TYPE_FORWARD( LobbySession ); diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index b3d85ddb..6bc2e174 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -25,9 +25,8 @@ extern Lobby::ServerLobby g_serverLobby; extern Lobby::RestConnector g_restConnector; Lobby::GameConnection::GameConnection( Sapphire::Network::HivePtr pHive, - Sapphire::Network::AcceptorPtr pAcceptor, - FrameworkPtr pFw ) : - Sapphire::Network::Connection( pHive, pFw ), + Sapphire::Network::AcceptorPtr pAcceptor ) : + Sapphire::Network::Connection( pHive ), m_pAcceptor( pAcceptor ), m_bEncryptionInitialized( false ) { @@ -42,7 +41,7 @@ Lobby::GameConnection::~GameConnection() // overwrite the parents onConnect for our game socket needs void Lobby::GameConnection::onAccept( const std::string& host, uint16_t port ) { - auto connection = make_GameConnection( m_hive, m_pAcceptor, m_pFw ); + auto connection = make_GameConnection( m_hive, m_pAcceptor ); m_pAcceptor->accept( connection ); Logger::info( "Connect from {0}", m_socket.remote_endpoint().address().to_string() ); diff --git a/src/lobby/GameConnection.h b/src/lobby/GameConnection.h index fbed9386..a98c01c5 100644 --- a/src/lobby/GameConnection.h +++ b/src/lobby/GameConnection.h @@ -41,7 +41,7 @@ namespace Sapphire::Lobby std::vector< uint8_t > m_packets; public: - GameConnection( Network::HivePtr pHive, Network::AcceptorPtr pAcceptor, FrameworkPtr pFw ); + GameConnection( Network::HivePtr pHive, Network::AcceptorPtr pAcceptor ); ~GameConnection(); diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index 1ad5e068..97a252fa 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -64,9 +64,8 @@ namespace Sapphire::Lobby Logger::setLogLevel( m_config.global.general.logLevel ); - auto pFw = make_Framework(); auto hive = Network::make_Hive(); - Network::addServerToHive< GameConnection >( m_ip, m_port, hive, pFw ); + Network::addServerToHive< GameConnection >( m_ip, m_port, hive ); Logger::info( "Lobby server running on {0}:{1}", m_ip, m_port ); diff --git a/src/world/ForwardsZone.h b/src/world/ForwardsZone.h index db366d35..13b6b489 100644 --- a/src/world/ForwardsZone.h +++ b/src/world/ForwardsZone.h @@ -29,7 +29,6 @@ TYPE_FORWARD( ItemContainer ); TYPE_FORWARD( ZonePosition ); TYPE_FORWARD( Land ); TYPE_FORWARD( Linkshell ); -TYPE_FORWARD( Framework ); namespace World { From 5ccbaea26675b8f1b45b2cd142660e6436ee54cc Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 1 Mar 2020 11:57:41 +1100 Subject: [PATCH 6/7] fix quest_parser to use new service locator --- src/scripts/common/aethernet/Aetheryte.cpp | 2 +- src/scripts/common/warptaxi/WarpTaxi.cpp | 2 +- src/scripts/quest/ManFst001.cpp | 2 +- src/scripts/quest/ManFst002.cpp | 2 +- src/scripts/quest/ManFst003.cpp | 2 +- src/scripts/quest/ManFst004.cpp | 2 +- src/scripts/quest/ManFst005.cpp | 2 +- src/scripts/quest/ManSea001.cpp | 2 +- src/scripts/quest/ManSea002.cpp | 2 +- src/scripts/quest/ManSea003.cpp | 2 +- src/scripts/quest/ManWil001.cpp | 2 +- src/scripts/quest/ManWil002.cpp | 2 +- src/scripts/quest/ManWil003.cpp | 2 +- src/scripts/quest/ManWil004.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst002.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst004.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst009.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst010.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst013.cpp | 4 ++-- src/scripts/quest/subquest/gridania/SubFst014.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst019.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst029.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst039.cpp | 2 +- src/scripts/quest/subquest/limsa/SubSea001.cpp | 2 +- src/scripts/quest/subquest/limsa/SubSea012.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil000.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil001.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil002.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil004.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil006.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil007.cpp | 4 ++-- src/scripts/quest/subquest/uldah/SubWil018.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil019.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil020.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil021.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil022.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil027.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil028.cpp | 2 +- src/scripts/quest/subquest/uldah/SubWil029.cpp | 2 +- src/tools/quest_parser/main.cpp | 8 ++++---- src/world/Actor/PlayerInventory.cpp | 2 +- src/world/Manager/DebugCommandMgr.cpp | 2 +- src/world/Manager/HousingMgr.cpp | 2 +- src/world/Network/Handlers/ClientTriggerHandler.cpp | 2 +- src/world/Territory/HousingZone.cpp | 2 +- 45 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/scripts/common/aethernet/Aetheryte.cpp b/src/scripts/common/aethernet/Aetheryte.cpp index d4c1c68c..64acd0c5 100644 --- a/src/scripts/common/aethernet/Aetheryte.cpp +++ b/src/scripts/common/aethernet/Aetheryte.cpp @@ -108,7 +108,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); auto aetherInfo = exdData.get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); if( !aetherInfo ) diff --git a/src/scripts/common/warptaxi/WarpTaxi.cpp b/src/scripts/common/warptaxi/WarpTaxi.cpp index c4eb8907..8d88f6f4 100644 --- a/src/scripts/common/warptaxi/WarpTaxi.cpp +++ b/src/scripts/common/warptaxi/WarpTaxi.cpp @@ -75,7 +75,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); auto warp = exdData.get< Sapphire::Data::Warp >( eventId ); if( !warp ) diff --git a/src/scripts/quest/ManFst001.cpp b/src/scripts/quest/ManFst001.cpp index d21feff1..684b77f8 100644 --- a/src/scripts/quest/ManFst001.cpp +++ b/src/scripts/quest/ManFst001.cpp @@ -96,7 +96,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) diff --git a/src/scripts/quest/ManFst002.cpp b/src/scripts/quest/ManFst002.cpp index a12c0929..0d0a114a 100644 --- a/src/scripts/quest/ManFst002.cpp +++ b/src/scripts/quest/ManFst002.cpp @@ -193,7 +193,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) diff --git a/src/scripts/quest/ManFst003.cpp b/src/scripts/quest/ManFst003.cpp index 5cb09efc..e3bc085e 100644 --- a/src/scripts/quest/ManFst003.cpp +++ b/src/scripts/quest/ManFst003.cpp @@ -82,7 +82,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/ManFst004.cpp b/src/scripts/quest/ManFst004.cpp index cbb04d36..79168cb3 100644 --- a/src/scripts/quest/ManFst004.cpp +++ b/src/scripts/quest/ManFst004.cpp @@ -80,7 +80,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ManFst004::Actor0 ) diff --git a/src/scripts/quest/ManFst005.cpp b/src/scripts/quest/ManFst005.cpp index d98391ce..f9177bf8 100644 --- a/src/scripts/quest/ManFst005.cpp +++ b/src/scripts/quest/ManFst005.cpp @@ -61,7 +61,7 @@ class ManFst005 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/ManSea001.cpp b/src/scripts/quest/ManSea001.cpp index b86751cb..ddad3d00 100644 --- a/src/scripts/quest/ManSea001.cpp +++ b/src/scripts/quest/ManSea001.cpp @@ -142,7 +142,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) diff --git a/src/scripts/quest/ManSea002.cpp b/src/scripts/quest/ManSea002.cpp index 02e1be2e..a072b62f 100644 --- a/src/scripts/quest/ManSea002.cpp +++ b/src/scripts/quest/ManSea002.cpp @@ -48,7 +48,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) diff --git a/src/scripts/quest/ManSea003.cpp b/src/scripts/quest/ManSea003.cpp index 4b65a1a9..2032d990 100644 --- a/src/scripts/quest/ManSea003.cpp +++ b/src/scripts/quest/ManSea003.cpp @@ -64,7 +64,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/ManWil001.cpp b/src/scripts/quest/ManWil001.cpp index db4e804b..20735575 100644 --- a/src/scripts/quest/ManWil001.cpp +++ b/src/scripts/quest/ManWil001.cpp @@ -174,7 +174,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) diff --git a/src/scripts/quest/ManWil002.cpp b/src/scripts/quest/ManWil002.cpp index bb8cdae2..d340329c 100644 --- a/src/scripts/quest/ManWil002.cpp +++ b/src/scripts/quest/ManWil002.cpp @@ -70,7 +70,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/ManWil003.cpp b/src/scripts/quest/ManWil003.cpp index 3b577cdd..c32b2d7a 100644 --- a/src/scripts/quest/ManWil003.cpp +++ b/src/scripts/quest/ManWil003.cpp @@ -70,7 +70,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/ManWil004.cpp b/src/scripts/quest/ManWil004.cpp index 4d3e006f..acbb5a53 100644 --- a/src/scripts/quest/ManWil004.cpp +++ b/src/scripts/quest/ManWil004.cpp @@ -70,7 +70,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst002.cpp b/src/scripts/quest/subquest/gridania/SubFst002.cpp index 630f2c31..1ed0fc15 100644 --- a/src/scripts/quest/subquest/gridania/SubFst002.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst002.cpp @@ -59,7 +59,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 && !player.hasQuest( getId() ) ) diff --git a/src/scripts/quest/subquest/gridania/SubFst004.cpp b/src/scripts/quest/subquest/gridania/SubFst004.cpp index ce559431..506b7cf9 100644 --- a/src/scripts/quest/subquest/gridania/SubFst004.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst004.cpp @@ -56,7 +56,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst009.cpp b/src/scripts/quest/subquest/gridania/SubFst009.cpp index baaf7420..424d4151 100644 --- a/src/scripts/quest/subquest/gridania/SubFst009.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst009.cpp @@ -52,7 +52,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst010.cpp b/src/scripts/quest/subquest/gridania/SubFst010.cpp index 395095f4..9af037f8 100644 --- a/src/scripts/quest/subquest/gridania/SubFst010.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst010.cpp @@ -55,7 +55,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR0 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst013.cpp b/src/scripts/quest/subquest/gridania/SubFst013.cpp index febe937a..f373eb69 100644 --- a/src/scripts/quest/subquest/gridania/SubFst013.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst013.cpp @@ -161,7 +161,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( !player.hasQuest( getId() ) ) @@ -182,7 +182,7 @@ public: void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == ACTOR1 && emoteId == 5 && player.getQuestSeq( getId() ) == SEQ_1 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst014.cpp b/src/scripts/quest/subquest/gridania/SubFst014.cpp index 28f77dce..02908da6 100644 --- a/src/scripts/quest/subquest/gridania/SubFst014.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst014.cpp @@ -56,7 +56,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) diff --git a/src/scripts/quest/subquest/gridania/SubFst019.cpp b/src/scripts/quest/subquest/gridania/SubFst019.cpp index 954e7376..5dd015a5 100644 --- a/src/scripts/quest/subquest/gridania/SubFst019.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst019.cpp @@ -49,7 +49,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst029.cpp b/src/scripts/quest/subquest/gridania/SubFst029.cpp index 74044a7b..b22ee88a 100644 --- a/src/scripts/quest/subquest/gridania/SubFst029.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst029.cpp @@ -47,7 +47,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == SubFst029::Actor0 && !player.hasQuest( getId() ) ) diff --git a/src/scripts/quest/subquest/gridania/SubFst039.cpp b/src/scripts/quest/subquest/gridania/SubFst039.cpp index 1159c434..f7ca9a56 100644 --- a/src/scripts/quest/subquest/gridania/SubFst039.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst039.cpp @@ -42,7 +42,7 @@ class SubFst039 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) diff --git a/src/scripts/quest/subquest/limsa/SubSea001.cpp b/src/scripts/quest/subquest/limsa/SubSea001.cpp index 24c141a9..8f198f34 100644 --- a/src/scripts/quest/subquest/limsa/SubSea001.cpp +++ b/src/scripts/quest/subquest/limsa/SubSea001.cpp @@ -65,7 +65,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/limsa/SubSea012.cpp b/src/scripts/quest/subquest/limsa/SubSea012.cpp index d65979bb..4dad6132 100644 --- a/src/scripts/quest/subquest/limsa/SubSea012.cpp +++ b/src/scripts/quest/subquest/limsa/SubSea012.cpp @@ -48,7 +48,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil000.cpp b/src/scripts/quest/subquest/uldah/SubWil000.cpp index 5516b841..37f1adbc 100644 --- a/src/scripts/quest/subquest/uldah/SubWil000.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil000.cpp @@ -48,7 +48,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil001.cpp b/src/scripts/quest/subquest/uldah/SubWil001.cpp index d6197905..e34a38e1 100644 --- a/src/scripts/quest/subquest/uldah/SubWil001.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil001.cpp @@ -49,7 +49,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil002.cpp b/src/scripts/quest/subquest/uldah/SubWil002.cpp index ba22f96b..d59112ef 100644 --- a/src/scripts/quest/subquest/uldah/SubWil002.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil002.cpp @@ -53,7 +53,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil004.cpp b/src/scripts/quest/subquest/uldah/SubWil004.cpp index dfabd64f..abd78646 100644 --- a/src/scripts/quest/subquest/uldah/SubWil004.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil004.cpp @@ -58,7 +58,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil006.cpp b/src/scripts/quest/subquest/uldah/SubWil006.cpp index 9125a3db..1ce3fa26 100644 --- a/src/scripts/quest/subquest/uldah/SubWil006.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil006.cpp @@ -51,7 +51,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil007.cpp b/src/scripts/quest/subquest/uldah/SubWil007.cpp index 46ff82c8..c11572c5 100644 --- a/src/scripts/quest/subquest/uldah/SubWil007.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil007.cpp @@ -55,7 +55,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) @@ -90,7 +90,7 @@ public: void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && emoteId == 41 && player.getQuestSeq( getId() ) == Seq1 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil018.cpp b/src/scripts/quest/subquest/uldah/SubWil018.cpp index 7618fd2f..f237a068 100644 --- a/src/scripts/quest/subquest/uldah/SubWil018.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil018.cpp @@ -55,7 +55,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 && !player.hasQuest( getId() ) ) diff --git a/src/scripts/quest/subquest/uldah/SubWil019.cpp b/src/scripts/quest/subquest/uldah/SubWil019.cpp index c04ff9a2..257ca62d 100644 --- a/src/scripts/quest/subquest/uldah/SubWil019.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil019.cpp @@ -47,7 +47,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil020.cpp b/src/scripts/quest/subquest/uldah/SubWil020.cpp index 7ea1a93f..588dfefe 100644 --- a/src/scripts/quest/subquest/uldah/SubWil020.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil020.cpp @@ -63,7 +63,7 @@ class SubWil020 : public Sapphire::ScriptAPI::EventScript // Event Handlers void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); /*player.setQuestUI8BH( getId(), 0 ); diff --git a/src/scripts/quest/subquest/uldah/SubWil021.cpp b/src/scripts/quest/subquest/uldah/SubWil021.cpp index 8e17059d..f4c73c11 100644 --- a/src/scripts/quest/subquest/uldah/SubWil021.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil021.cpp @@ -52,7 +52,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil022.cpp b/src/scripts/quest/subquest/uldah/SubWil022.cpp index 4d274987..a852601d 100644 --- a/src/scripts/quest/subquest/uldah/SubWil022.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil022.cpp @@ -52,7 +52,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil027.cpp b/src/scripts/quest/subquest/uldah/SubWil027.cpp index 66dc4843..a19f7c2c 100644 --- a/src/scripts/quest/subquest/uldah/SubWil027.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil027.cpp @@ -46,7 +46,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil028.cpp b/src/scripts/quest/subquest/uldah/SubWil028.cpp index 57222790..f52a9e63 100644 --- a/src/scripts/quest/subquest/uldah/SubWil028.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil028.cpp @@ -48,7 +48,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/scripts/quest/subquest/uldah/SubWil029.cpp b/src/scripts/quest/subquest/uldah/SubWil029.cpp index ec09773a..f5734318 100644 --- a/src/scripts/quest/subquest/uldah/SubWil029.cpp +++ b/src/scripts/quest/subquest/uldah/SubWil029.cpp @@ -51,7 +51,7 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); + auto& pEventMgr = Common::Service< World::Manager::EventMgr >::ref(); auto actor = pEventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); if( actor == Actor0 ) diff --git a/src/tools/quest_parser/main.cpp b/src/tools/quest_parser/main.cpp index 069e213e..44d60f05 100644 --- a/src/tools/quest_parser/main.cpp +++ b/src/tools/quest_parser/main.cpp @@ -27,8 +27,8 @@ using namespace Sapphire; const std::string onTalkStr( " void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override\n" " {\n" - " auto pEventMgr = m_framework->get< World::Manager::EventMgr >();\n" - " auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) );\n" + " auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref();\n" + " auto actor = eventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) );\n" " }\n\n" ); @@ -41,8 +41,8 @@ const std::string onWithinRangeStr( const std::string onEmoteStr( " void onEmote( uint32_t eventId, Entity::Player& player, uint64_t actorId, uint32_t emoteId ) override\n" " {\n" - " auto pEventMgr = m_framework->get< World::Manager::EventMgr >();\n" - " auto actor = pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) );\n" + " auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref();\n" + " auto actor = eventMgr.mapEventActorToRealActor( static_cast< uint32_t >( actorId ) );\n" " }\n\n" ); diff --git a/src/world/Actor/PlayerInventory.cpp b/src/world/Actor/PlayerInventory.cpp index e6406c5f..d10c7c66 100644 --- a/src/world/Actor/PlayerInventory.cpp +++ b/src/world/Actor/PlayerInventory.cpp @@ -131,7 +131,7 @@ void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) void Sapphire::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob ) { - auto exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); + auto& exdData = Common::Service< Sapphire::Data::ExdDataGenerated >::ref(); auto itemInfo = exdData.get< Sapphire::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 515bf228..54be2fdb 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -535,7 +535,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& void Sapphire::World::Manager::DebugCommandMgr::get( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); std::string subCommand; std::string params = ""; diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index f2a559b5..9cd612bb 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -869,7 +869,7 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player& if( it == containers.end() ) return; - auto invMgr = Common::Service< Manager::InventoryMgr >::ref(); + auto& invMgr = Common::Service< Manager::InventoryMgr >::ref(); invMgr.sendInventoryContainer( player, it->second ); } diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index 7af8215e..e8ca0481 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -190,7 +190,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX uint32_t emoteId = param11; bool isSilent = param2 == 1; - auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); auto emoteData = exdData.get< Data::Emote >( emoteId ); if( !emoteData ) diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index e2ee9cf6..8443da8e 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -63,7 +63,7 @@ bool Sapphire::HousingZone::init() else if( m_territoryTypeId == 641 ) housingIndex = 3; - auto exdData = Common::Service< Data::ExdDataGenerated >::ref(); + auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); auto info = exdData.get< Sapphire::Data::HousingLandSet >( housingIndex ); // build yard objects array indices From 6a3dfc684a8f365fd491edd241a852b2b5fd41f2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 1 Mar 2020 12:11:40 +1100 Subject: [PATCH 7/7] fix windows build --- src/common/Service.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/Service.h b/src/common/Service.h index bcf3dc2f..8cbb43a1 100644 --- a/src/common/Service.h +++ b/src/common/Service.h @@ -3,6 +3,7 @@ #include #include +#include // stolen from: https://github.com/skypjack/entt/blob/master/src/entt/locator/locator.hpp