mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 06:47:45 +00:00
change LandState to LandFlags
This commit is contained in:
parent
f83d6ae35b
commit
945d91b783
6 changed files with 31 additions and 33 deletions
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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() );
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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." );
|
||||||
|
|
|
@ -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 );
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue