1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 22:37:45 +00:00

change LandState to LandFlags

This commit is contained in:
NotAdam 2018-11-27 23:12:26 +11:00
parent f83d6ae35b
commit 945d91b783
6 changed files with 31 additions and 33 deletions

View file

@ -774,7 +774,7 @@ namespace Core::Common
Private = 2, Private = 2,
}; };
enum LandEstateFlags : uint32_t enum LandFlags : uint32_t
{ {
ESTATE_BUILT = 0x1, ESTATE_BUILT = 0x1,
ESTATE_HAS_AETHERYTE = 0x2, ESTATE_HAS_AETHERYTE = 0x2,
@ -791,10 +791,10 @@ namespace Core::Common
int16_t worldId; //06 int16_t worldId; //06
}; };
struct LandStateSet struct LandFlagSet
{ {
LandIdent landIdent; LandIdent landIdent;
uint32_t estateFlags; //08 uint32_t landFlags; //08
uint32_t unkown1; //12 uint32_t unkown1; //12
}; };
@ -843,7 +843,7 @@ namespace Core::Common
Venue = 11, Venue = 11,
}; };
enum WardEstateFlags : uint8_t enum WardlandFlags : uint8_t
{ {
IsEstateOwned = 1, IsEstateOwned = 1,
IsPublicEstate = 2, IsPublicEstate = 2,

View file

@ -1579,20 +1579,20 @@ struct FFXIVIpcLandStateSlot : FFXIVIpcBasePacket< LandStateSlot >
{ {
uint32_t type; uint32_t type;
uint32_t unknown; uint32_t unknown;
Common::LandStateSet permissionSet; Common::LandFlagSet permissionSet;
}; };
struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission > struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission >
{ {
Common::LandStateSet freeCompanyHouse; // 00 Common::LandFlagSet freeCompanyHouse; // 00
uint64_t unkown1; uint64_t unkown1;
Common::LandStateSet privateHouse; // 24 Common::LandFlagSet privateHouse; // 24
uint64_t unkown2; uint64_t unkown2;
Common::LandStateSet apartment; // 48 Common::LandFlagSet apartment; // 48
uint64_t unkown3; uint64_t unkown3;
Common::LandStateSet sharedHouse[2]; //72 Common::LandFlagSet sharedHouse[2]; //72
uint64_t unkown4; uint64_t unkown4;
Common::LandStateSet unkownHouse; Common::LandFlagSet unkownHouse;
uint64_t unkown5; uint64_t unkown5;
}; };

View file

@ -95,7 +95,7 @@ Core::Entity::Player::Player() :
for ( uint8_t i = 0; i < 5; i++ ) for ( uint8_t i = 0; i < 5; i++ )
{ {
memset( &m_landPermission[i], 0xFF, 8 ); memset( &m_landPermission[i], 0xFF, 8 );
memset( &m_landPermission[i].estateFlags, 0, 8 ); memset( &m_landPermission[i].landFlags, 0, 8 );
} }
m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS );
@ -1597,10 +1597,10 @@ void Core::Entity::Player::sendZonePackets()
state |= ESTATE_HAS_AETHERYTE; state |= ESTATE_HAS_AETHERYTE;
} }
setLandState( LandStateSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); setLandFlags( LandStateSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() );
} }
sendLandStates(); sendLandFlags();
auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() );
initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId();
@ -1778,18 +1778,18 @@ bool Core::Entity::Player::isOnEnterEventDone() const
return m_onEnterEventDone; return m_onEnterEventDone;
} }
void Core::Entity::Player::setLandState( uint8_t permissionSet, uint32_t estateFlags, void Core::Entity::Player::setLandFlags( uint8_t permissionSet, uint32_t landFlags,
int16_t landId, int16_t wardNum, int16_t zoneId ) int16_t landId, int16_t wardNum, int16_t zoneId )
{ {
m_landPermission[ permissionSet ].landIdent.landId = landId; m_landPermission[ permissionSet ].landIdent.landId = landId;
m_landPermission[ permissionSet ].landIdent.wardNum = wardNum; m_landPermission[ permissionSet ].landIdent.wardNum = wardNum;
m_landPermission[ permissionSet ].landIdent.territoryTypeId = zoneId; m_landPermission[ permissionSet ].landIdent.territoryTypeId = zoneId;
m_landPermission[ permissionSet ].landIdent.worldId = 67; m_landPermission[ permissionSet ].landIdent.worldId = 67;
m_landPermission[ permissionSet ].estateFlags = estateFlags; m_landPermission[ permissionSet ].landFlags = landFlags;
m_landPermission[ permissionSet ].unkown1 = 0; m_landPermission[ permissionSet ].unkown1 = 0;
} }
void Core::Entity::Player::sendLandStates() void Core::Entity::Player::sendLandFlags()
{ {
auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() );
@ -1802,7 +1802,7 @@ void Core::Entity::Player::sendLandStates()
queuePacket( landPermissions ); queuePacket( landPermissions );
} }
void Core::Entity::Player::sendLandStateSlot( Common::LandStateSlot slot ) void Core::Entity::Player::sendLandFlagsSlot( Common::LandStateSlot slot )
{ {
auto landPermissions = makeZonePacket< FFXIVIpcLandStateSlot >( getId() ); auto landPermissions = makeZonePacket< FFXIVIpcLandStateSlot >( getId() );

View file

@ -763,10 +763,10 @@ namespace Core::Entity
// Housing Handling // Housing Handling
////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////
void setLandState( uint8_t permissionSet, uint32_t estateFlags, int16_t landId, int16_t wardNum, int16_t zoneId ); void setLandFlags( uint8_t permissionSet, uint32_t landFlags, int16_t landId, int16_t wardNum, int16_t zoneId );
void sendLandStates(); void sendLandFlags();
void sendLandStateSlot( Common::LandStateSlot slot ); void sendLandFlagsSlot( Common::LandStateSlot slot );
// Player Battle Handling // Player Battle Handling
////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1025,7 +1025,7 @@ namespace Core::Entity
uint8_t m_searchSelectClass; // class selected to show up in profile uint8_t m_searchSelectClass; // class selected to show up in profile
// housing info // housing info
Common::LandStateSet m_landPermission[5]; Common::LandFlagSet m_landPermission[5];
Common::ActiveLand m_activeLand; Common::ActiveLand m_activeLand;

View file

@ -1018,8 +1018,8 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std
auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone );
if( pHousing ) if( pHousing )
{ {
player.setLandState( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.setLandFlags( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() );
player.sendLandStates(); player.sendLandFlags();
} }
else else
player.sendDebug( "You aren't in a housing Zone." ); player.sendDebug( "You aren't in a housing Zone." );

View file

@ -167,10 +167,10 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player,
pLand->setState( HouseState::sold ); pLand->setState( HouseState::sold );
pLand->setLandType( Common::LandType::Private ); pLand->setLandType( Common::LandType::Private );
player.setLandState( LandStateSlot::Private, 0x00, plot, player.setLandFlags( LandStateSlot::Private, 0x00, plot,
pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); pHousing->getWardNum(), pHousing->getTerritoryTypeId() );
player.sendLandStateSlot( LandStateSlot::Private ); player.sendLandFlagsSlot( LandStateSlot::Private );
//pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) );
pLand->updateLandDb(); pLand->updateLandDb();
@ -219,9 +219,9 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot )
pLand->setLandType( Common::LandType::none ); pLand->setLandType( Common::LandType::none );
pLand->updateLandDb(); pLand->updateLandDb();
player.setLandState( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); player.setLandFlags( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF );
player.sendLandStateSlot( LandStateSlot::Private ); player.sendLandFlagsSlot( LandStateSlot::Private );
auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA, auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA,
pLand->getWardNum() + 1, plot + 1 ); pLand->getWardNum() + 1, plot + 1 );
@ -260,14 +260,14 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId,
switch( land->getLandType() ) switch( land->getLandType() )
{ {
case LandType::FreeCompany: case LandType::FreeCompany:
entry.infoFlags = Common::WardEstateFlags::IsEstateOwned | Common::WardEstateFlags::IsFreeCompanyEstate; entry.infoFlags = Common::WardlandFlags::IsEstateOwned | Common::WardlandFlags::IsFreeCompanyEstate;
// todo: send FC name // todo: send FC name
break; break;
case LandType::Private: case LandType::Private:
entry.infoFlags = Common::WardEstateFlags::IsEstateOwned; entry.infoFlags = Common::WardlandFlags::IsEstateOwned;
auto owner = land->getPlayerOwner(); auto owner = land->getPlayerOwner();
std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( owner ); std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( owner );
@ -319,8 +319,6 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu
// todo: wtf are these flags // todo: wtf are these flags
player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr );
// todo: send perms/flags for house player.setLandFlags( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() );
player.sendLandFlagsSlot( LandStateSlot::Private );
player.setLandState( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() );
player.sendLandStateSlot( LandStateSlot::Private );
} }