mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-25 05:57:45 +00:00
WiP reenable housing zones.
This commit is contained in:
parent
7ea6d4f44d
commit
597c0e9bd2
3 changed files with 14 additions and 6 deletions
|
@ -1592,8 +1592,8 @@ namespace Sapphire::Common
|
||||||
uint8_t flags;
|
uint8_t flags;
|
||||||
uint8_t __padding1;
|
uint8_t __padding1;
|
||||||
uint64_t fcCrestId;
|
uint64_t fcCrestId;
|
||||||
uint8_t patternIds[8];
|
uint8_t patternIds[9];
|
||||||
uint8_t colors[8];
|
uint8_t colors[9];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Furniture
|
struct Furniture
|
||||||
|
|
|
@ -1700,7 +1700,7 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
|
||||||
struct FFXIVIpcQuestCompleteList : FFXIVIpcBasePacket< QuestCompleteFlags >
|
struct FFXIVIpcQuestCompleteList : FFXIVIpcBasePacket< QuestCompleteFlags >
|
||||||
{
|
{
|
||||||
uint8_t questCompleteMask[310];
|
uint8_t questCompleteMask[310];
|
||||||
uint8_t unknownCompleteMask[40];
|
uint8_t unknownCompleteMask[32];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -147,25 +147,33 @@ bool Sapphire::HousingZone::init()
|
||||||
return true;
|
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 )
|
void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player )
|
||||||
{
|
{
|
||||||
auto& server = Common::Service< World::WorldServer >::ref();
|
auto& server = Common::Service< World::WorldServer >::ref();
|
||||||
Logger::debug( "HousingZone::onPlayerZoneIn: Territory#{0}|{1}, Entity#{2}",
|
Logger::debug( "HousingZone::onPlayerZoneIn: Territory#{0}|{1}, Entity#{2}",
|
||||||
getGuId(), getTerritoryTypeId(), player.getId() );
|
getGuId(), getTerritoryTypeId(), player.getId() );
|
||||||
|
|
||||||
|
auto isInSubdivision = isPlayerSubInstance( player );
|
||||||
|
|
||||||
uint32_t yardPacketNum;
|
uint32_t yardPacketNum;
|
||||||
|
uint32_t yardPacketTotal = 8;
|
||||||
|
|
||||||
sendLandSet( player );
|
sendLandSet( player );
|
||||||
|
|
||||||
for( yardPacketNum = 1; yardPacketNum > 2; yardPacketNum++ )
|
for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ )
|
||||||
{
|
{
|
||||||
auto housingObjectInit = makeZonePacket< FFXIVIpcYardObjectList >( player.getId() );
|
auto housingObjectInit = makeZonePacket< FFXIVIpcYardObjectList >( player.getId() );
|
||||||
housingObjectInit->data().PacketIndex = yardPacketNum;
|
housingObjectInit->data().PacketIndex = yardPacketNum;
|
||||||
|
|
||||||
auto yardObjectSize = sizeof( Common::Furniture );
|
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 );
|
memcpy( &housingObjectInit->data().YardObjects, &objects + ( yardPacketNum * 400 ), yardObjectSize * 400 );
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue