From d21b0018dce8f8610f0809e680bfb1772f727f17 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 22:36:44 +1100 Subject: [PATCH 1/2] standardise log names and potentially fix log folder issue on windows --- src/api/main.cpp | 2 +- src/common/Logging/Logger.cpp | 2 +- src/dbm/main.cpp | 2 +- src/lobby/ServerLobby.cpp | 8 +++----- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/api/main.cpp b/src/api/main.cpp index 81aa0024..f287fc08 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -734,7 +734,7 @@ void defaultGet( shared_ptr< HttpServer::Response > response, shared_ptr< HttpSe int main( int argc, char* argv[] ) { - Logger::init( "log/SapphireAPI" ); + Logger::init( "log/api" ); Logger::info( "===========================================================" ); Logger::info( "Sapphire API Server " ); diff --git a/src/common/Logging/Logger.cpp b/src/common/Logging/Logger.cpp index c051e946..dbf83f4f 100644 --- a/src/common/Logging/Logger.cpp +++ b/src/common/Logging/Logger.cpp @@ -25,7 +25,7 @@ namespace Sapphire void Logger::init( const std::string& logPath ) { - auto pos = logPath.find_last_of( '/' ); + auto pos = logPath.find_last_of( fs::path::preferred_separator ); if( pos != std::string::npos ) { diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index 6cce2ac4..b82dde0c 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -104,7 +104,7 @@ int main( int32_t argc, char* argv[] ) std::string database; std::string pass; - Logger::init( "log/SapphireDbm" ); + Logger::init( "log/dbm" ); std::string sFile; std::string iFile; diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index dcdacee1..c0ad8ebf 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -31,12 +31,10 @@ namespace Sapphire m_configPath( configPath ), m_numConnections( 0 ) { - m_pConfig = std::shared_ptr< ConfigMgr >( new ConfigMgr ); + m_pConfig = std::make_shared< ConfigMgr >(); } - ServerLobby::~ServerLobby( void ) - { - } + ServerLobby::~ServerLobby( void ) = default; LobbySessionPtr ServerLobby::getSession( char* sessionId ) { @@ -50,7 +48,7 @@ namespace Sapphire void ServerLobby::run( int32_t argc, char* argv[] ) { - Logger::init( "log/SapphireLobby" ); + Logger::init( "log/lobby" ); Logger::info( "===========================================================" ); Logger::info( "Sapphire Server Project " ); From 06afdfb79ef9f8f187f6b80bfa157e3f5efbdc74 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 23:25:52 +1100 Subject: [PATCH 2/2] hide additional quarters door in private housing --- src/common/Network/CommonActorControl.h | 1 + src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++++ src/world/Territory/Housing/HousingInteriorTerritory.cpp | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 6438bc49..32a00705 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -240,6 +240,7 @@ enum ActorControlType : uint16_t */ HousingItemMoveConfirm = 0x3F9, OpenEstateSettingsUI = 0x3FF, + HideAdditionalChambersDoor = 0x400, /*! * param1 = outdoor furnishings diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 40cd48a3..63ea03ba 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1701,6 +1701,10 @@ struct FFXIVIpcHousingObjectMove : FFXIVIpcBasePacket< HousingObjectMove > struct FFXIVIpcHousingObjectInitialize : FFXIVIpcBasePacket< HousingObjectInitialize > { Common::LandIdent landIdent; + /*! + * when this is 2, actrl 0x400 will hide the additional quarters door + * if it's any other value, it will stay there regardless + */ int8_t u1; //Outdoor -1 / Indoor 0 - probably indicator uint8_t packetNum; uint8_t packetTotal; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 1ad7b57e..63fb581e 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -76,12 +76,14 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone player.queuePacket( indoorInitPacket ); + auto yardPacketTotal = static_cast< uint8_t >( 2 + pLand->getSize() ); for( uint8_t yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { auto objectInitPacket = makeZonePacket< Server::FFXIVIpcHousingObjectInitialize >( player.getId() ); memcpy( &objectInitPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); - objectInitPacket->data().u1 = 0; + // todo: change this when FC houses become a thing + objectInitPacket->data().u1 = 2; // 2 = actrl 0x400 will hide the fc door, otherwise it will stay there objectInitPacket->data().u2 = 100; objectInitPacket->data().packetNum = yardPacketNum; objectInitPacket->data().packetTotal = yardPacketTotal; @@ -92,6 +94,8 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone player.queuePacket( objectInitPacket ); } + // todo: if in fc house, don't send this + player.queuePacket( Server::makeActorControl143( player.getId(), Network::ActorControl::HideAdditionalChambersDoor ) ); } void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onUpdate( uint32_t currTime )