From 9cc0b01b3bd80b831fa464245c411e16fb466abb Mon Sep 17 00:00:00 2001 From: Moydow <28638419+Moydow@users.noreply.github.com> Date: Sat, 4 Mar 2023 00:09:44 +0000 Subject: [PATCH] fix LandFlagsSlot What was previously listed as "apartment" should be the private chambers in a FC house, and the unknown value should be apartments --- src/common/Common.h | 5 +++-- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- src/world/Actor/Player.cpp | 5 +++-- src/world/Actor/Player.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 483718a4..7f0067b0 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -993,9 +993,10 @@ namespace Sapphire::Common { FreeCompany, Private, - Apartment, + FreeCompanyChambers, SharedHouse1, - SharedHouse2 + SharedHouse2, + Apartment }; enum class LandType : uint8_t diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c9f2135c..5d9d9ff0 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1868,11 +1868,11 @@ namespace Sapphire::Network::Packets::Server uint64_t unknown1; Common::LandFlagSet privateHouse; // 24 uint64_t unknown2; - Common::LandFlagSet apartment; // 48 + Common::LandFlagSet freeCompanyChambers; // 48 uint64_t unknown3; Common::LandFlagSet sharedHouse[2]; //72 uint64_t unknown4; - Common::LandFlagSet unknownHouse; + Common::LandFlagSet apartment; uint64_t unknown5; }; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index ff518aff..7ecb39a0 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -102,7 +102,7 @@ Sapphire::Entity::Player::Player() : memset( m_classArray, 0, sizeof( m_classArray ) ); memset( m_expArray, 0, sizeof( m_expArray ) ); - for ( uint8_t i = 0; i < 5; i++ ) + for ( uint8_t i = 0; i < 6; i++ ) { memset( &m_landFlags[i], 0xFF, 8 ); memset( &m_landFlags[i].landFlags, 0, 8 ); @@ -2126,9 +2126,10 @@ void Sapphire::Entity::Player::sendLandFlags() landFlags->data().freeCompanyHouse = m_landFlags[ Common::LandFlagsSlot::FreeCompany ]; landFlags->data().privateHouse = m_landFlags[ Common::LandFlagsSlot::Private ]; - landFlags->data().apartment = m_landFlags[ Common::LandFlagsSlot::Apartment ]; + landFlags->data().freeCompanyChambers = m_landFlags[ Common::LandFlagsSlot::FreeCompanyChambers ]; landFlags->data().sharedHouse[ 0 ] = m_landFlags[ Common::LandFlagsSlot::SharedHouse1 ]; landFlags->data().sharedHouse[ 1 ] = m_landFlags[ Common::LandFlagsSlot::SharedHouse2 ]; + landFlags->data().apartment = m_landFlags[ Common::LandFlagsSlot::Apartment ]; queuePacket( landFlags ); } diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index a0d8743d..2e36ba69 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -1153,7 +1153,7 @@ namespace Sapphire::Entity uint8_t m_searchSelectClass; // class selected to show up in profile // housing info - Common::LandFlagSet m_landFlags[5]; + Common::LandFlagSet m_landFlags[6]; Common::ActiveLand m_activeLand;