1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-24 21:57:44 +00:00

WiP reenable housing zones.

This commit is contained in:
Mordred 2023-01-23 14:28:00 +01:00
parent 7ea6d4f44d
commit 597c0e9bd2
3 changed files with 14 additions and 6 deletions

View file

@ -1592,8 +1592,8 @@ namespace Sapphire::Common
uint8_t flags;
uint8_t __padding1;
uint64_t fcCrestId;
uint8_t patternIds[8];
uint8_t colors[8];
uint8_t patternIds[9];
uint8_t colors[9];
};
struct Furniture

View file

@ -1700,7 +1700,7 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
struct FFXIVIpcQuestCompleteList : FFXIVIpcBasePacket< QuestCompleteFlags >
{
uint8_t questCompleteMask[310];
uint8_t unknownCompleteMask[40];
uint8_t unknownCompleteMask[32];
};
/**

View file

@ -147,25 +147,33 @@ bool Sapphire::HousingZone::init()
return true;
}
bool Sapphire::HousingZone::isPlayerSubInstance( Entity::Player& player )
{
return player.getPos().x < -15000.0f; //ToDo: get correct pos
}
void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player )
{
auto& server = Common::Service< World::WorldServer >::ref();
Logger::debug( "HousingZone::onPlayerZoneIn: Territory#{0}|{1}, Entity#{2}",
getGuId(), getTerritoryTypeId(), player.getId() );
auto isInSubdivision = isPlayerSubInstance( player );
uint32_t yardPacketNum;
uint32_t yardPacketTotal = 8;
sendLandSet( player );
for( yardPacketNum = 1; yardPacketNum > 2; yardPacketNum++ )
for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ )
{
auto housingObjectInit = makeZonePacket< FFXIVIpcYardObjectList >( player.getId() );
housingObjectInit->data().PacketIndex = yardPacketNum;
auto yardObjectSize = sizeof( Common::Furniture );
housingObjectInit->data().PacketIndex = yardPacketNum;
housingObjectInit->data().PacketEnd = yardPacketTotal;
auto& objects = m_yardObjects[ 0 ];
auto& objects = m_yardObjects[ isInSubdivision ? 1 : 0 ];
memcpy( &housingObjectInit->data().YardObjects, &objects + ( yardPacketNum * 400 ), yardObjectSize * 400 );