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

rename some getters and zonechannelpacket -> worldchannelpacket

This commit is contained in:
NotAdam 2019-07-21 22:50:11 +10:00
parent 891a73720d
commit 7f686ffee5
54 changed files with 272 additions and 267 deletions

View file

@ -23,7 +23,7 @@ namespace Sapphire::Network::Packets
class FFXIVIpcPacket; class FFXIVIpcPacket;
template< class T > template< class T >
using ZoneChannelPacket = FFXIVIpcPacket< T, ServerZoneIpcType >; using WorldChannelPacket = FFXIVIpcPacket< T, ServerZoneIpcType >;
template< class T > template< class T >
using ChatChannelPacket = FFXIVIpcPacket< T, ServerChatIpcType >; using ChatChannelPacket = FFXIVIpcPacket< T, ServerChatIpcType >;
@ -33,9 +33,9 @@ namespace Sapphire::Network::Packets
template< class T, typename... Args > template< class T, typename... Args >
std::shared_ptr< ZoneChannelPacket< T > > makeZonePacket( Args... args ) std::shared_ptr< WorldChannelPacket< T > > makeWorldPacket( Args... args )
{ {
return std::make_shared< ZoneChannelPacket< T > >( args... ); return std::make_shared< WorldChannelPacket< T > >( args... );
} }
template< class T, typename... Args > template< class T, typename... Args >

View file

@ -25,7 +25,7 @@ public:
if( !pExdData ) if( !pExdData )
return; return;
auto housingZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto housingZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
if( !housingZone ) if( !housingZone )
return; return;
@ -35,7 +35,7 @@ public:
return; return;
// check we're teleporting to the same territorytype // check we're teleporting to the same territorytype
if( player.getCurrentZone()->getTerritoryTypeId() != pHousingAethernet->territoryType ) if( player.getCurrentTerritory()->getTerritoryTypeId() != pHousingAethernet->territoryType )
return; return;
// todo: this needs to be done properly and used queued zoning + aethernet animation // todo: this needs to be done properly and used queued zoning + aethernet animation

View file

@ -30,7 +30,7 @@ public:
if( !terriMgr ) if( !terriMgr )
return; return;
auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
if( !zone ) if( !zone )
return; return;

View file

@ -34,7 +34,7 @@ public:
auto activeLand = player.getActiveLand(); auto activeLand = player.getActiveLand();
auto territoryId = player.getTerritoryId(); auto territoryId = player.getTerritoryId();
auto pTerritory = player.getCurrentZone(); auto pTerritory = player.getCurrentTerritory();
auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory );
auto pHouMgr = pFw->get< HousingMgr >(); auto pHouMgr = pFw->get< HousingMgr >();

View file

@ -216,7 +216,7 @@ void Action::Action::start()
if( hasCastTime() ) if( hasCastTime() )
{ {
auto castPacket = makeZonePacket< Server::FFXIVIpcActorCast >( getId() ); auto castPacket = makeWorldPacket< Server::FFXIVIpcActorCast >( getId() );
castPacket->data().action_id = static_cast< uint16_t >( m_id ); castPacket->data().action_id = static_cast< uint16_t >( m_id );
castPacket->data().skillType = Common::SkillType::Normal; castPacket->data().skillType = Common::SkillType::Normal;

View file

@ -331,13 +331,13 @@ std::set< Sapphire::Entity::ActorPtr > Sapphire::Entity::Actor::getInRangeActors
} }
/*! \return TerritoryPtr to the current zone, nullptr if not set */ /*! \return TerritoryPtr to the current zone, nullptr if not set */
Sapphire::TerritoryPtr Sapphire::Entity::Actor::getCurrentZone() const Sapphire::TerritoryPtr Sapphire::Entity::Actor::getCurrentTerritory() const
{ {
return m_pCurrentZone; return m_pCurrentZone;
} }
/*! \param TerritoryPtr to the zone to be set as current */ /*! \param TerritoryPtr to the zone to be set as current */
void Sapphire::Entity::Actor::setCurrentZone( TerritoryPtr currZone ) void Sapphire::Entity::Actor::setCurrentTerritory( TerritoryPtr currZone )
{ {
m_pCurrentZone = currZone; m_pCurrentZone = currZone;
} }

View file

@ -122,9 +122,9 @@ namespace Sapphire::Entity
BNpcPtr getAsBNpc(); BNpcPtr getAsBNpc();
TerritoryPtr getCurrentZone() const; TerritoryPtr getCurrentTerritory() const;
void setCurrentZone( TerritoryPtr currZone ); void setCurrentTerritory( TerritoryPtr currZone );
InstanceContentPtr getCurrentInstance() const; InstanceContentPtr getCurrentInstance() const;

View file

@ -645,14 +645,14 @@ void Sapphire::Entity::BNpc::setOwner( Sapphire::Entity::CharaPtr m_pChara )
m_pOwner = m_pChara; m_pOwner = m_pChara;
if( m_pChara != nullptr ) if( m_pChara != nullptr )
{ {
auto setOwnerPacket = makeZonePacket< FFXIVIpcActorOwner >( m_pChara->getId() ); auto setOwnerPacket = makeWorldPacket< FFXIVIpcActorOwner >( m_pChara->getId() );
setOwnerPacket->data().type = 0x01; setOwnerPacket->data().type = 0x01;
setOwnerPacket->data().actorId = m_pChara->getId(); setOwnerPacket->data().actorId = m_pChara->getId();
sendToInRangeSet( setOwnerPacket ); sendToInRangeSet( setOwnerPacket );
} }
else else
{ {
auto setOwnerPacket = makeZonePacket< FFXIVIpcActorOwner >( getId() ); auto setOwnerPacket = makeWorldPacket< FFXIVIpcActorOwner >( getId() );
setOwnerPacket->data().type = 0x01; setOwnerPacket->data().type = 0x01;
setOwnerPacket->data().actorId = INVALID_GAME_OBJECT_ID; setOwnerPacket->data().actorId = INVALID_GAME_OBJECT_ID;
sendToInRangeSet( setOwnerPacket ); sendToInRangeSet( setOwnerPacket );

View file

@ -457,7 +457,7 @@ void Sapphire::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEf
pEffect->applyStatus(); pEffect->applyStatus();
m_statusEffectMap[ nextSlot ] = pEffect; m_statusEffectMap[ nextSlot ] = pEffect;
auto statusEffectAdd = makeZonePacket< FFXIVIpcEffectResult >( getId() ); auto statusEffectAdd = makeWorldPacket< FFXIVIpcEffectResult >( getId() );
statusEffectAdd->data().actor_id = pEffect->getTargetActorId(); statusEffectAdd->data().actor_id = pEffect->getTargetActorId();
statusEffectAdd->data().current_hp = getHp(); statusEffectAdd->data().current_hp = getHp();
@ -578,7 +578,7 @@ void Sapphire::Entity::Chara::sendStatusEffectUpdate()
uint64_t currentTimeMs = Util::getTimeMs(); uint64_t currentTimeMs = Util::getTimeMs();
auto statusEffectList = makeZonePacket< FFXIVIpcStatusEffectList >( getId() ); auto statusEffectList = makeWorldPacket< FFXIVIpcStatusEffectList >( getId() );
statusEffectList->data().classId = static_cast< uint8_t >( getClass() ); statusEffectList->data().classId = static_cast< uint8_t >( getClass() );
statusEffectList->data().level = getLevel(); statusEffectList->data().level = getLevel();
statusEffectList->data().level1 = getLevel(); statusEffectList->data().level1 = getLevel();

View file

@ -120,7 +120,7 @@ void Sapphire::Entity::EventObject::spawn( Sapphire::Entity::PlayerPtr pTarget )
Logger::debug( "Spawning EObj: id#{0} name={1}", getId(), getName() ); Logger::debug( "Spawning EObj: id#{0} name={1}", getId(), getName() );
auto eobjStatePacket = makeZonePacket< FFXIVIpcObjectSpawn >( getId(), pTarget->getId() ); auto eobjStatePacket = makeWorldPacket< FFXIVIpcObjectSpawn >( getId(), pTarget->getId() );
eobjStatePacket->data().spawnIndex = spawnIndex; eobjStatePacket->data().spawnIndex = spawnIndex;
eobjStatePacket->data().objKind = getObjKind(); eobjStatePacket->data().objKind = getObjKind();
eobjStatePacket->data().state = getState(); eobjStatePacket->data().state = getState();

View file

@ -236,7 +236,7 @@ uint64_t Sapphire::Entity::Player::getOnlineStatusMask() const
void Sapphire::Entity::Player::prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadeOutTime, uint16_t animation ) void Sapphire::Entity::Player::prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadeOutTime, uint16_t animation )
{ {
auto preparePacket = makeZonePacket< FFXIVIpcPrepareZoning >( getId() ); auto preparePacket = makeWorldPacket< FFXIVIpcPrepareZoning >( getId() );
preparePacket->data().targetZone = targetZone; preparePacket->data().targetZone = targetZone;
preparePacket->data().fadeOutTime = fadeOutTime; preparePacket->data().fadeOutTime = fadeOutTime;
preparePacket->data().animation = animation; preparePacket->data().animation = animation;
@ -312,7 +312,7 @@ bool Sapphire::Entity::Player::isAutoattackOn() const
void Sapphire::Entity::Player::sendStats() void Sapphire::Entity::Player::sendStats()
{ {
auto statPacket = makeZonePacket< FFXIVIpcPlayerStats >( getId() ); auto statPacket = makeWorldPacket< FFXIVIpcPlayerStats >( getId() );
statPacket->data().strength = getStatValue( Common::BaseParam::Strength ); statPacket->data().strength = getStatValue( Common::BaseParam::Strength );
statPacket->data().dexterity = getStatValue( Common::BaseParam::Dexterity ); statPacket->data().dexterity = getStatValue( Common::BaseParam::Dexterity );
statPacket->data().vitality = getStatValue( Common::BaseParam::Vitality ); statPacket->data().vitality = getStatValue( Common::BaseParam::Vitality );
@ -444,7 +444,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance )
return false; return false;
auto pTeriMgr = m_pFw->get< TerritoryMgr >(); auto pTeriMgr = m_pFw->get< TerritoryMgr >();
auto currentZone = getCurrentZone(); auto currentZone = getCurrentTerritory();
// zoning within the same zone won't cause the prev data to be overwritten // zoning within the same zone won't cause the prev data to be overwritten
if( instance->getTerritoryTypeId() != m_territoryTypeId ) if( instance->getTerritoryTypeId() != m_territoryTypeId )
@ -465,7 +465,7 @@ bool Sapphire::Entity::Player::setInstance( TerritoryPtr instance, Common::FFXIV
return false; return false;
auto pTeriMgr = m_pFw->get< TerritoryMgr >(); auto pTeriMgr = m_pFw->get< TerritoryMgr >();
auto currentZone = getCurrentZone(); auto currentZone = getCurrentTerritory();
// zoning within the same zone won't cause the prev data to be overwritten // zoning within the same zone won't cause the prev data to be overwritten
if( instance->getTerritoryTypeId() != m_territoryTypeId ) if( instance->getTerritoryTypeId() != m_territoryTypeId )
@ -489,7 +489,7 @@ bool Sapphire::Entity::Player::exitInstance()
{ {
auto pTeriMgr = m_pFw->get< TerritoryMgr >(); auto pTeriMgr = m_pFw->get< TerritoryMgr >();
auto pZone = getCurrentZone(); auto pZone = getCurrentTerritory();
auto pInstance = pZone->getAsInstanceContent(); auto pInstance = pZone->getAsInstanceContent();
resetHp(); resetHp();
@ -596,7 +596,7 @@ void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id )
int32_t offset = 4; int32_t offset = 4;
auto info = pExdData->get< Sapphire::Data::Map >( auto info = pExdData->get< Sapphire::Data::Map >(
pExdData->get< Sapphire::Data::TerritoryType >( getCurrentZone()->getTerritoryTypeId() )->map ); pExdData->get< Sapphire::Data::TerritoryType >( getCurrentTerritory()->getTerritoryTypeId() )->map );
if( info->discoveryArrayByte ) if( info->discoveryArrayByte )
offset = 5 + 2 * info->discoveryIndex; offset = 5 + 2 * info->discoveryIndex;
else else
@ -733,7 +733,7 @@ void Sapphire::Entity::Player::gainLevel()
m_hp = getMaxHp(); m_hp = getMaxHp();
m_mp = getMaxMp(); m_mp = getMaxMp();
auto effectListPacket = makeZonePacket< FFXIVIpcStatusEffectList >( getId() ); auto effectListPacket = makeWorldPacket< FFXIVIpcStatusEffectList >( getId() );
effectListPacket->data().classId = static_cast< uint8_t > ( getClass() ); effectListPacket->data().classId = static_cast< uint8_t > ( getClass() );
effectListPacket->data().level1 = getLevel(); effectListPacket->data().level1 = getLevel();
effectListPacket->data().level = getLevel(); effectListPacket->data().level = getLevel();
@ -747,7 +747,7 @@ void Sapphire::Entity::Player::gainLevel()
sendToInRangeSet( makeActorControl142( getId(), LevelUpEffect, static_cast< uint8_t >( getClass() ), sendToInRangeSet( makeActorControl142( getId(), LevelUpEffect, static_cast< uint8_t >( getClass() ),
getLevel(), getLevel() - 1 ), true ); getLevel(), getLevel() - 1 ), true );
auto classInfoPacket = makeZonePacket< FFXIVIpcUpdateClassInfo >( getId() ); auto classInfoPacket = makeWorldPacket< FFXIVIpcUpdateClassInfo >( getId() );
classInfoPacket->data().classId = static_cast< uint8_t > ( getClass() ); classInfoPacket->data().classId = static_cast< uint8_t > ( getClass() );
classInfoPacket->data().level1 = getLevel(); classInfoPacket->data().level1 = getLevel();
classInfoPacket->data().level = getLevel(); classInfoPacket->data().level = getLevel();
@ -820,7 +820,7 @@ void Sapphire::Entity::Player::setClassJob( Common::ClassJob classJob )
m_tp = 0; m_tp = 0;
auto classInfoPacket = makeZonePacket< FFXIVIpcPlayerClassInfo >( getId() ); auto classInfoPacket = makeWorldPacket< FFXIVIpcPlayerClassInfo >( getId() );
classInfoPacket->data().classId = static_cast< uint8_t >( getClass() ); classInfoPacket->data().classId = static_cast< uint8_t >( getClass() );
classInfoPacket->data().classLevel = getLevel(); classInfoPacket->data().classLevel = getLevel();
classInfoPacket->data().syncedLevel = getLevel(); classInfoPacket->data().syncedLevel = getLevel();
@ -956,7 +956,7 @@ void Sapphire::Entity::Player::setGc( uint8_t gc )
{ {
m_gc = gc; m_gc = gc;
auto gcAffPacket = makeZonePacket< FFXIVGCAffiliation >( getId() ); auto gcAffPacket = makeWorldPacket< FFXIVGCAffiliation >( getId() );
gcAffPacket->data().gcId = m_gc; gcAffPacket->data().gcId = m_gc;
gcAffPacket->data().gcRank[ 0 ] = m_gcRank[ 0 ]; gcAffPacket->data().gcRank[ 0 ] = m_gcRank[ 0 ];
gcAffPacket->data().gcRank[ 1 ] = m_gcRank[ 1 ]; gcAffPacket->data().gcRank[ 1 ] = m_gcRank[ 1 ];
@ -968,7 +968,7 @@ void Sapphire::Entity::Player::setGcRankAt( uint8_t index, uint8_t rank )
{ {
m_gcRank[ index ] = rank; m_gcRank[ index ] = rank;
auto gcAffPacket = makeZonePacket< FFXIVGCAffiliation >( getId() ); auto gcAffPacket = makeWorldPacket< FFXIVGCAffiliation >( getId() );
gcAffPacket->data().gcId = m_gc; gcAffPacket->data().gcId = m_gc;
gcAffPacket->data().gcRank[ 0 ] = m_gcRank[ 0 ]; gcAffPacket->data().gcRank[ 0 ] = m_gcRank[ 0 ];
gcAffPacket->data().gcRank[ 1 ] = m_gcRank[ 1 ]; gcAffPacket->data().gcRank[ 1 ] = m_gcRank[ 1 ];
@ -1065,13 +1065,13 @@ void Sapphire::Entity::Player::update( uint64_t tickCount )
if( m_queuedZoneing && ( tickCount - m_queuedZoneing->m_queueTime ) > 800 ) if( m_queuedZoneing && ( tickCount - m_queuedZoneing->m_queueTime ) > 800 )
{ {
Common::FFXIVARR_POSITION3 targetPos = m_queuedZoneing->m_targetPosition; Common::FFXIVARR_POSITION3 targetPos = m_queuedZoneing->m_targetPosition;
if( getCurrentZone()->getTerritoryTypeId() != m_queuedZoneing->m_targetZone ) if( getCurrentTerritory()->getTerritoryTypeId() != m_queuedZoneing->m_targetZone )
{ {
performZoning( m_queuedZoneing->m_targetZone, targetPos, m_queuedZoneing->m_targetRotation ); performZoning( m_queuedZoneing->m_targetZone, targetPos, m_queuedZoneing->m_targetRotation );
} }
else else
{ {
auto setActorPosPacket = makeZonePacket< FFXIVIpcActorSetPos >( getId() ); auto setActorPosPacket = makeWorldPacket< FFXIVIpcActorSetPos >( getId() );
setActorPosPacket->data().r16 = Util::floatToUInt16Rot( m_queuedZoneing->m_targetRotation ); setActorPosPacket->data().r16 = Util::floatToUInt16Rot( m_queuedZoneing->m_targetRotation );
setActorPosPacket->data().waitForLoad = 0x04; setActorPosPacket->data().waitForLoad = 0x04;
setActorPosPacket->data().x = targetPos.x; setActorPosPacket->data().x = targetPos.x;
@ -1155,7 +1155,7 @@ void Sapphire::Entity::Player::freePlayerSpawnId( uint32_t actorId )
if( spawnId == m_actorSpawnIndexAllocator.getAllocFailId() ) if( spawnId == m_actorSpawnIndexAllocator.getAllocFailId() )
return; return;
auto freeActorSpawnPacket = makeZonePacket< FFXIVIpcActorFreeSpawn >( getId() ); auto freeActorSpawnPacket = makeWorldPacket< FFXIVIpcActorFreeSpawn >( getId() );
freeActorSpawnPacket->data().actorId = actorId; freeActorSpawnPacket->data().actorId = actorId;
freeActorSpawnPacket->data().spawnId = spawnId; freeActorSpawnPacket->data().spawnId = spawnId;
queuePacket( freeActorSpawnPacket ); queuePacket( freeActorSpawnPacket );
@ -1410,9 +1410,9 @@ bool Sapphire::Entity::Player::hateListHasEntry( BNpcPtr pBNpc )
void Sapphire::Entity::Player::sendHateList() void Sapphire::Entity::Player::sendHateList()
{ {
auto hateListPacket = makeZonePacket< FFXIVIpcHateList >( getId() ); auto hateListPacket = makeWorldPacket< FFXIVIpcHateList >( getId() );
hateListPacket->data().numEntries = m_actorIdTohateSlotMap.size(); hateListPacket->data().numEntries = m_actorIdTohateSlotMap.size();
auto hateRankPacket = makeZonePacket< FFXIVIpcHateRank >( getId() ); auto hateRankPacket = makeWorldPacket< FFXIVIpcHateRank >( getId() );
hateRankPacket->data().numEntries = m_actorIdTohateSlotMap.size(); hateRankPacket->data().numEntries = m_actorIdTohateSlotMap.size();
auto it = m_actorIdTohateSlotMap.begin(); auto it = m_actorIdTohateSlotMap.begin();
for( int32_t i = 0; it != m_actorIdTohateSlotMap.end(); ++it, i++ ) for( int32_t i = 0; it != m_actorIdTohateSlotMap.end(); ++it, i++ )
@ -1492,7 +1492,7 @@ void Sapphire::Entity::Player::setTitle( uint16_t titleId )
void Sapphire::Entity::Player::setEquipDisplayFlags( uint8_t state ) void Sapphire::Entity::Player::setEquipDisplayFlags( uint8_t state )
{ {
m_equipDisplayFlags = state; m_equipDisplayFlags = state;
auto paramPacket = makeZonePacket< FFXIVIpcEquipDisplayFlags >( getId() ); auto paramPacket = makeWorldPacket< FFXIVIpcEquipDisplayFlags >( getId() );
paramPacket->data().bitmask = m_equipDisplayFlags; paramPacket->data().bitmask = m_equipDisplayFlags;
sendToInRangeSet( paramPacket, true ); sendToInRangeSet( paramPacket, true );
} }
@ -1509,7 +1509,7 @@ void Sapphire::Entity::Player::mount( uint32_t id )
static_cast< uint8_t >( Common::ActorStatus::Mounted ) ), true ); static_cast< uint8_t >( Common::ActorStatus::Mounted ) ), true );
sendToInRangeSet( makeActorControl143( getId(), 0x39e, 12 ), true ); //? sendToInRangeSet( makeActorControl143( getId(), 0x39e, 12 ), true ); //?
auto mountPacket = makeZonePacket< FFXIVIpcMount >( getId() ); auto mountPacket = makeWorldPacket< FFXIVIpcMount >( getId() );
mountPacket->data().id = id; mountPacket->data().id = id;
sendToInRangeSet( mountPacket, true ); sendToInRangeSet( mountPacket, true );
} }
@ -1657,7 +1657,7 @@ uint16_t Sapphire::Entity::Player::getItemLevel() const
void Sapphire::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp ) void Sapphire::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp )
{ {
// TODO: maybe change to persistent? // TODO: maybe change to persistent?
auto packet = makeZonePacket< FFXIVIpcEorzeaTimeOffset >( getId() ); auto packet = makeWorldPacket< FFXIVIpcEorzeaTimeOffset >( getId() );
packet->data().timestamp = timestamp; packet->data().timestamp = timestamp;
// Send to single player // Send to single player
@ -1683,9 +1683,9 @@ void Sapphire::Entity::Player::sendZonePackets()
pServerMgr->updatePlayerName( getId(), getName() ); pServerMgr->updatePlayerName( getId(), getName() );
} }
getCurrentZone()->onBeforePlayerZoneIn( *this ); getCurrentTerritory()->onBeforePlayerZoneIn( *this );
auto initPacket = makeZonePacket< FFXIVIpcInit >( getId() ); auto initPacket = makeWorldPacket< FFXIVIpcInit >( getId() );
initPacket->data().charId = getId(); initPacket->data().charId = getId();
queuePacket( initPacket ); queuePacket( initPacket );
@ -1708,7 +1708,7 @@ void Sapphire::Entity::Player::sendZonePackets()
// only initialize the UI if the player in fact just logged in. // only initialize the UI if the player in fact just logged in.
if( isLogin() ) if( isLogin() )
{ {
auto contentFinderList = makeZonePacket< FFXIVIpcCFAvailableContents >( getId() ); auto contentFinderList = makeWorldPacket< FFXIVIpcCFAvailableContents >( getId() );
for( auto i = 0; i < sizeof( contentFinderList->data().contents ); i++ ) for( auto i = 0; i < sizeof( contentFinderList->data().contents ); i++ )
{ {
@ -1719,7 +1719,7 @@ void Sapphire::Entity::Player::sendZonePackets()
queuePacket( std::make_shared< PlayerSetupPacket >( *this ) ); queuePacket( std::make_shared< PlayerSetupPacket >( *this ) );
auto classInfoPacket = makeZonePacket< FFXIVIpcPlayerClassInfo >( getId() ); auto classInfoPacket = makeWorldPacket< FFXIVIpcPlayerClassInfo >( getId() );
classInfoPacket->data().classId = static_cast< uint8_t >( getClass() ); classInfoPacket->data().classId = static_cast< uint8_t >( getClass() );
classInfoPacket->data().unknown = 1; classInfoPacket->data().unknown = 1;
classInfoPacket->data().syncedLevel = getLevel(); classInfoPacket->data().syncedLevel = getLevel();
@ -1748,25 +1748,25 @@ void Sapphire::Entity::Player::sendZonePackets()
sendLandFlags(); sendLandFlags();
auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); auto initZonePacket = makeWorldPacket< FFXIVIpcInitZone >( getId() );
initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); initZonePacket->data().zoneId = getCurrentTerritory()->getTerritoryTypeId();
initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() ); initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentTerritory()->getCurrentWeather() );
initZonePacket->data().bitmask = 0x1; initZonePacket->data().bitmask = 0x1;
initZonePacket->data().festivalId = getCurrentZone()->getCurrentFestival().first; initZonePacket->data().festivalId = getCurrentTerritory()->getCurrentFestival().first;
initZonePacket->data().additionalFestivalId = getCurrentZone()->getCurrentFestival().second; initZonePacket->data().additionalFestivalId = getCurrentTerritory()->getCurrentFestival().second;
initZonePacket->data().pos.x = getPos().x; initZonePacket->data().pos.x = getPos().x;
initZonePacket->data().pos.y = getPos().y; initZonePacket->data().pos.y = getPos().y;
initZonePacket->data().pos.z = getPos().z; initZonePacket->data().pos.z = getPos().z;
queuePacket( initZonePacket ); queuePacket( initZonePacket );
getCurrentZone()->onPlayerZoneIn( *this ); getCurrentTerritory()->onPlayerZoneIn( *this );
if( isLogin() ) if( isLogin() )
{ {
auto unk322 = makeZonePacket< FFXIVARR_IPC_UNK322 >( getId() ); auto unk322 = makeWorldPacket< FFXIVARR_IPC_UNK322 >( getId() );
queuePacket( unk322 ); queuePacket( unk322 );
auto unk320 = makeZonePacket< FFXIVARR_IPC_UNK320 >( getId() ); auto unk320 = makeWorldPacket< FFXIVARR_IPC_UNK320 >( getId() );
queuePacket( unk320 ); queuePacket( unk320 );
} }
@ -1788,7 +1788,7 @@ bool Sapphire::Entity::Player::isDirectorInitialized() const
void Sapphire::Entity::Player::sendTitleList() void Sapphire::Entity::Player::sendTitleList()
{ {
auto titleListPacket = makeZonePacket< FFXIVIpcPlayerTitleList >( getId() ); auto titleListPacket = makeWorldPacket< FFXIVIpcPlayerTitleList >( getId() );
memcpy( titleListPacket->data().titleList, getTitleList(), sizeof( titleListPacket->data().titleList ) ); memcpy( titleListPacket->data().titleList, getTitleList(), sizeof( titleListPacket->data().titleList ) );
queuePacket( titleListPacket ); queuePacket( titleListPacket );
@ -1932,7 +1932,7 @@ void Sapphire::Entity::Player::freeObjSpawnIndexForActorId( uint32_t actorId )
if( spawnId == m_objSpawnIndexAllocator.getAllocFailId() ) if( spawnId == m_objSpawnIndexAllocator.getAllocFailId() )
return; return;
auto freeObjectSpawnPacket = makeZonePacket< FFXIVIpcObjectDespawn >( getId() ); auto freeObjectSpawnPacket = makeWorldPacket< FFXIVIpcObjectDespawn >( getId() );
freeObjectSpawnPacket->data().spawnIndex = spawnId; freeObjectSpawnPacket->data().spawnIndex = spawnId;
queuePacket( freeObjectSpawnPacket ); queuePacket( freeObjectSpawnPacket );
} }
@ -1963,7 +1963,7 @@ void Sapphire::Entity::Player::setLandFlags( uint8_t flagSlot, uint32_t landFlag
void Sapphire::Entity::Player::sendLandFlags() void Sapphire::Entity::Player::sendLandFlags()
{ {
auto landFlags = makeZonePacket< FFXIVIpcHousingLandFlags >( getId() ); auto landFlags = makeWorldPacket< FFXIVIpcHousingLandFlags >( getId() );
landFlags->data().freeCompanyHouse = m_landFlags[ Common::LandFlagsSlot::FreeCompany ]; landFlags->data().freeCompanyHouse = m_landFlags[ Common::LandFlagsSlot::FreeCompany ];
landFlags->data().privateHouse = m_landFlags[ Common::LandFlagsSlot::Private ]; landFlags->data().privateHouse = m_landFlags[ Common::LandFlagsSlot::Private ];
@ -1976,7 +1976,7 @@ void Sapphire::Entity::Player::sendLandFlags()
void Sapphire::Entity::Player::sendLandFlagsSlot( Common::LandFlagsSlot slot ) void Sapphire::Entity::Player::sendLandFlagsSlot( Common::LandFlagsSlot slot )
{ {
auto landFlags = makeZonePacket< FFXIVIpcHousingUpdateLandFlagsSlot >( getId() ); auto landFlags = makeWorldPacket< FFXIVIpcHousingUpdateLandFlagsSlot >( getId() );
uint32_t type = 0; uint32_t type = 0;
@ -2014,7 +2014,7 @@ void Sapphire::Entity::Player::sendHuntingLog()
for( const auto& entry : m_huntingLogEntries ) for( const auto& entry : m_huntingLogEntries )
{ {
uint64_t completionFlag = 0; uint64_t completionFlag = 0;
auto huntPacket = makeZonePacket< FFXIVIpcHuntingLogEntry >( getId() ); auto huntPacket = makeWorldPacket< FFXIVIpcHuntingLogEntry >( getId() );
huntPacket->data().u0 = -1; huntPacket->data().u0 = -1;
huntPacket->data().rank = entry.rank; huntPacket->data().rank = entry.rank;

View file

@ -141,7 +141,7 @@ void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags,
pEvent->setEventReturnCallback( eventCallback ); pEvent->setEventReturnCallback( eventCallback );
pEvent->setSceneChainCallback( nullptr ); pEvent->setSceneChainCallback( nullptr );
auto openGilShopPacket = makeZonePacket< Server::FFXIVIpcEventOpenGilShop >( getId() ); auto openGilShopPacket = makeWorldPacket< Server::FFXIVIpcEventOpenGilShop >( getId() );
openGilShopPacket->data().eventId = eventId; openGilShopPacket->data().eventId = eventId;
openGilShopPacket->data().sceneFlags = flags; openGilShopPacket->data().sceneFlags = flags;
openGilShopPacket->data().actorId = getId(); openGilShopPacket->data().actorId = getId();

View file

@ -815,7 +815,7 @@ void Sapphire::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fr
m_storageMap[ fromInventoryId ]->removeItem( fromSlotId ); m_storageMap[ fromInventoryId ]->removeItem( fromSlotId );
updateContainer( fromInventoryId, fromSlotId, nullptr ); updateContainer( fromInventoryId, fromSlotId, nullptr );
auto invTransPacket = makeZonePacket< FFXIVIpcInventoryTransaction >( getId() ); auto invTransPacket = makeWorldPacket< FFXIVIpcInventoryTransaction >( getId() );
invTransPacket->data().sequence = sequence; invTransPacket->data().sequence = sequence;
invTransPacket->data().ownerId = getId(); invTransPacket->data().ownerId = getId();
invTransPacket->data().storageId = fromInventoryId; invTransPacket->data().storageId = fromInventoryId;
@ -825,7 +825,7 @@ void Sapphire::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fr
invTransPacket->data().type = 7; invTransPacket->data().type = 7;
queuePacket( invTransPacket ); queuePacket( invTransPacket );
auto invTransFinPacket = makeZonePacket< FFXIVIpcInventoryTransactionFinish >( getId() ); auto invTransFinPacket = makeWorldPacket< FFXIVIpcInventoryTransactionFinish >( getId() );
invTransFinPacket->data().sequenceId = sequence; invTransFinPacket->data().sequenceId = sequence;
invTransFinPacket->data().sequenceId1 = sequence; invTransFinPacket->data().sequenceId1 = sequence;
queuePacket( invTransFinPacket ); queuePacket( invTransFinPacket );
@ -930,7 +930,7 @@ Sapphire::ItemPtr Sapphire::Entity::Player::dropInventoryItem( Sapphire::Common:
auto seq = getNextInventorySequence(); auto seq = getNextInventorySequence();
// send inv update // send inv update
auto invTransPacket = makeZonePacket< FFXIVIpcInventoryTransaction >( getId() ); auto invTransPacket = makeWorldPacket< FFXIVIpcInventoryTransaction >( getId() );
invTransPacket->data().sequence = seq; invTransPacket->data().sequence = seq;
invTransPacket->data().ownerId = getId(); invTransPacket->data().ownerId = getId();
invTransPacket->data().storageId = type; invTransPacket->data().storageId = type;
@ -940,7 +940,7 @@ Sapphire::ItemPtr Sapphire::Entity::Player::dropInventoryItem( Sapphire::Common:
invTransPacket->data().type = 7; invTransPacket->data().type = 7;
queuePacket( invTransPacket ); queuePacket( invTransPacket );
auto invTransFinPacket = makeZonePacket< FFXIVIpcInventoryTransactionFinish >( getId() ); auto invTransFinPacket = makeWorldPacket< FFXIVIpcInventoryTransactionFinish >( getId() );
invTransFinPacket->data().sequenceId = seq; invTransFinPacket->data().sequenceId = seq;
invTransFinPacket->data().sequenceId1 = seq; invTransFinPacket->data().sequenceId1 = seq;
queuePacket( invTransFinPacket ); queuePacket( invTransFinPacket );

View file

@ -39,13 +39,13 @@ void Sapphire::Entity::Player::removeQuest( uint16_t questId )
if( ( idx != -1 ) && ( m_activeQuests[ idx ] != nullptr ) ) if( ( idx != -1 ) && ( m_activeQuests[ idx ] != nullptr ) )
{ {
auto questUpdatePacket = makeZonePacket< FFXIVIpcQuestUpdate >( getId() ); auto questUpdatePacket = makeWorldPacket< FFXIVIpcQuestUpdate >( getId() );
questUpdatePacket->data().slot = static_cast< uint8_t >( idx ); questUpdatePacket->data().slot = static_cast< uint8_t >( idx );
questUpdatePacket->data().questInfo.c.questId = 0; questUpdatePacket->data().questInfo.c.questId = 0;
questUpdatePacket->data().questInfo.c.sequence = 0xFF; questUpdatePacket->data().questInfo.c.sequence = 0xFF;
queuePacket( questUpdatePacket ); queuePacket( questUpdatePacket );
auto questFinishPacket = makeZonePacket< FFXIVIpcQuestFinish >( getId() ); auto questFinishPacket = makeWorldPacket< FFXIVIpcQuestFinish >( getId() );
questFinishPacket->data().questId = questId; questFinishPacket->data().questId = questId;
questFinishPacket->data().flag1 = 1; questFinishPacket->data().flag1 = 1;
questFinishPacket->data().flag2 = 1; questFinishPacket->data().flag2 = 1;
@ -890,7 +890,7 @@ void Sapphire::Entity::Player::updateQuest( uint16_t questId, uint8_t sequence )
uint8_t index = getQuestIndex( questId ); uint8_t index = getQuestIndex( questId );
auto pNewQuest = m_activeQuests[ index ]; auto pNewQuest = m_activeQuests[ index ];
auto questUpdatePacket = makeZonePacket< FFXIVIpcQuestUpdate >( getId() ); auto questUpdatePacket = makeWorldPacket< FFXIVIpcQuestUpdate >( getId() );
pNewQuest->c.sequence = sequence; pNewQuest->c.sequence = sequence;
questUpdatePacket->data().slot = index; questUpdatePacket->data().slot = index;
questUpdatePacket->data().questInfo = *pNewQuest; questUpdatePacket->data().questInfo = *pNewQuest;
@ -920,7 +920,7 @@ void Sapphire::Entity::Player::updateQuest( uint16_t questId, uint8_t sequence )
m_questIdToQuestIdx[ questId ] = idx; m_questIdToQuestIdx[ questId ] = idx;
m_questIdxToQuestId[ idx ] = questId; m_questIdxToQuestId[ idx ] = questId;
auto questUpdatePacket = makeZonePacket< FFXIVIpcQuestUpdate >( getId() ); auto questUpdatePacket = makeWorldPacket< FFXIVIpcQuestUpdate >( getId() );
questUpdatePacket->data().slot = idx; questUpdatePacket->data().slot = idx;
questUpdatePacket->data().questInfo = *pNewQuest; questUpdatePacket->data().questInfo = *pNewQuest;
queuePacket( questUpdatePacket ); queuePacket( questUpdatePacket );
@ -942,7 +942,7 @@ void Sapphire::Entity::Player::updateQuest( uint16_t questId, uint8_t sequence )
void Sapphire::Entity::Player::sendQuestTracker() void Sapphire::Entity::Player::sendQuestTracker()
{ {
auto trackerPacket = makeZonePacket< FFXIVIpcQuestTracker >( getId() ); auto trackerPacket = makeWorldPacket< FFXIVIpcQuestTracker >( getId() );
for( int32_t ii = 0; ii < 5; ii++ ) for( int32_t ii = 0; ii < 5; ii++ )
{ {
@ -987,7 +987,7 @@ void Sapphire::Entity::Player::setQuestTracker( uint16_t index, int16_t flag )
void Sapphire::Entity::Player::sendQuestInfo() void Sapphire::Entity::Player::sendQuestInfo()
{ {
auto activeQuestListPacket = makeZonePacket< FFXIVIpcQuestActiveList >( getId() ); auto activeQuestListPacket = makeWorldPacket< FFXIVIpcQuestActiveList >( getId() );
for( int32_t i = 0; i < 30; i++ ) for( int32_t i = 0; i < 30; i++ )
{ {
@ -1003,7 +1003,7 @@ void Sapphire::Entity::Player::sendQuestInfo()
queuePacket( activeQuestListPacket ); queuePacket( activeQuestListPacket );
auto completeQuestListPacket = makeZonePacket< FFXIVIpcQuestCompleteList >( getId() ); auto completeQuestListPacket = makeWorldPacket< FFXIVIpcQuestCompleteList >( getId() );
memcpy( completeQuestListPacket->data().questCompleteMask, m_questCompleteFlags, sizeof( m_questCompleteFlags ) ); memcpy( completeQuestListPacket->data().questCompleteMask, m_questCompleteFlags, sizeof( m_questCompleteFlags ) );
queuePacket( completeQuestListPacket ); queuePacket( completeQuestListPacket );

View file

@ -49,7 +49,7 @@ void Sapphire::Event::Director::sendDirectorClear( Sapphire::Entity::Player& pla
void Sapphire::Event::Director::sendDirectorVars( Sapphire::Entity::Player& player ) const void Sapphire::Event::Director::sendDirectorVars( Sapphire::Entity::Player& player ) const
{ {
auto varPacket = makeZonePacket< FFXIVIpcDirectorVars >( player.getId() ); auto varPacket = makeWorldPacket< FFXIVIpcDirectorVars >( player.getId() );
varPacket->data().m_directorId = getDirectorId(); varPacket->data().m_directorId = getDirectorId();
varPacket->data().m_sequence = getSequence(); varPacket->data().m_sequence = getSequence();
varPacket->data().m_branch = 0; varPacket->data().m_branch = 0;

View file

@ -188,7 +188,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
player.getPos().y + static_cast< float >( posY ), player.getPos().y + static_cast< float >( posY ),
player.getPos().z + static_cast< float >( posZ ) ); player.getPos().z + static_cast< float >( posZ ) );
auto setActorPosPacket = makeZonePacket< FFXIVIpcActorSetPos >( player.getId() ); auto setActorPosPacket = makeWorldPacket< FFXIVIpcActorSetPos >( player.getId() );
setActorPosPacket->data().x = player.getPos().x; setActorPosPacket->data().x = player.getPos().x;
setActorPosPacket->data().y = player.getPos().y; setActorPosPacket->data().y = player.getPos().y;
setActorPosPacket->data().z = player.getPos().z; setActorPosPacket->data().z = player.getPos().z;
@ -208,7 +208,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
int32_t discover_id; int32_t discover_id;
sscanf( params.c_str(), "%i %i", &map_id, &discover_id ); sscanf( params.c_str(), "%i %i", &map_id, &discover_id );
auto discoveryPacket = makeZonePacket< FFXIVIpcDiscovery >( player.getId() ); auto discoveryPacket = makeWorldPacket< FFXIVIpcDiscovery >( player.getId() );
discoveryPacket->data().map_id = map_id; discoveryPacket->data().map_id = map_id;
discoveryPacket->data().map_part_id = discover_id; discoveryPacket->data().map_part_id = discover_id;
player.queuePacket( discoveryPacket ); player.queuePacket( discoveryPacket );
@ -281,7 +281,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
int32_t id; int32_t id;
sscanf( params.c_str(), "%d", &id ); sscanf( params.c_str(), "%d", &id );
auto msqPacket = makeZonePacket< FFXIVIpcMSQTrackerProgress >( player.getId() ); auto msqPacket = makeWorldPacket< FFXIVIpcMSQTrackerProgress >( player.getId() );
msqPacket->data().id = id; msqPacket->data().id = id;
player.queuePacket( msqPacket ); player.queuePacket( msqPacket );
@ -292,7 +292,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
int32_t id; int32_t id;
sscanf( params.c_str(), "%d", &id ); sscanf( params.c_str(), "%d", &id );
auto msqPacket = makeZonePacket< FFXIVIpcMSQTrackerComplete >( player.getId() ); auto msqPacket = makeWorldPacket< FFXIVIpcMSQTrackerComplete >( player.getId() );
msqPacket->data().id = id; msqPacket->data().id = id;
player.queuePacket( msqPacket ); player.queuePacket( msqPacket );
@ -304,7 +304,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
sscanf( params.c_str(), "%d", &weatherId ); sscanf( params.c_str(), "%d", &weatherId );
player.getCurrentZone()->setWeatherOverride( static_cast< Common::Weather >( weatherId ) ); player.getCurrentTerritory()->setWeatherOverride( static_cast< Common::Weather >( weatherId ) );
} }
else if( subCommand == "festival" ) else if( subCommand == "festival" )
{ {
@ -448,7 +448,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player&
player.sendNotice( "Template {0} not found in cache!", params ); player.sendNotice( "Template {0} not found in cache!", params );
return; return;
} }
auto playerZone = player.getCurrentZone(); auto playerZone = player.getCurrentTerritory();
auto pBNpc = std::make_shared< Entity::BNpc >( playerZone->getNextActorId(), auto pBNpc = std::make_shared< Entity::BNpc >( playerZone->getNextActorId(),
bNpcTemplate, bNpcTemplate,
player.getPos().x, player.getPos().x,
@ -459,7 +459,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player&
//pBNpc->setCurrentZone( playerZone ); //pBNpc->setCurrentTerritory( playerZone );
//pBNpc->setPos( player.getPos().x, player.getPos().y, player.getPos().z ); //pBNpc->setPos( player.getPos().x, player.getPos().y, player.getPos().z );
playerZone->pushActor( pBNpc ); playerZone->pushActor( pBNpc );
@ -494,7 +494,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player&
player.sendNotice( "Injecting ACTOR_CONTROL {0}", opcode ); player.sendNotice( "Injecting ACTOR_CONTROL {0}", opcode );
auto actorControl = makeZonePacket< FFXIVIpcActorControl143 >( playerId, player.getId() ); auto actorControl = makeWorldPacket< FFXIVIpcActorControl143 >( playerId, player.getId() );
actorControl->data().category = opcode; actorControl->data().category = opcode;
actorControl->data().param1 = param1; actorControl->data().param1 = param1;
actorControl->data().param2 = param2; actorControl->data().param2 = param2;
@ -538,7 +538,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player&
effectPacket->addEffect( entry ); effectPacket->addEffect( entry );
auto sequence = player.getCurrentZone()->getNextEffectSequence(); auto sequence = player.getCurrentTerritory()->getNextEffectSequence();
effectPacket->setSequence( sequence ); effectPacket->setSequence( sequence );
// effectPacket->setAnimationId( param1 ); // effectPacket->setAnimationId( param1 );
@ -581,11 +581,11 @@ void Sapphire::World::Manager::DebugCommandMgr::get( char* data, Entity::Player&
if( ( subCommand == "pos" ) ) if( ( subCommand == "pos" ) )
{ {
int16_t map_id = pExdData->get< Sapphire::Data::TerritoryType >( player.getCurrentZone()->getTerritoryTypeId() )->map; int16_t map_id = pExdData->get< Sapphire::Data::TerritoryType >( player.getCurrentTerritory()->getTerritoryTypeId() )->map;
player.sendNotice( "Pos:\n {0}\n {1}\n {2}\n {3}\n MapId: {4}\n ZoneId:{5}", player.sendNotice( "Pos:\n {0}\n {1}\n {2}\n {3}\n MapId: {4}\n ZoneId:{5}",
player.getPos().x, player.getPos().y, player.getPos().z, player.getPos().x, player.getPos().y, player.getPos().z,
player.getRot(), map_id, player.getCurrentZone()->getTerritoryTypeId() ); player.getRot(), map_id, player.getCurrentTerritory()->getTerritoryTypeId() );
} }
else else
{ {
@ -703,7 +703,7 @@ void Sapphire::World::Manager::DebugCommandMgr::nudge( char* data, Entity::Playe
} }
if( offset != 0 ) if( offset != 0 )
{ {
auto setActorPosPacket = makeZonePacket< FFXIVIpcActorSetPos >( player.getId() ); auto setActorPosPacket = makeWorldPacket< FFXIVIpcActorSetPos >( player.getId() );
setActorPosPacket->data().x = player.getPos().x; setActorPosPacket->data().x = player.getPos().x;
setActorPosPacket->data().y = player.getPos().y; setActorPosPacket->data().y = player.getPos().y;
setActorPosPacket->data().z = player.getPos().z; setActorPosPacket->data().z = player.getPos().z;
@ -919,7 +919,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
sscanf( params.c_str(), "%d %d", &index, &value ); sscanf( params.c_str(), "%d %d", &index, &value );
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -932,7 +932,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
sscanf( params.c_str(), "%s %hhu", objName, &state ); sscanf( params.c_str(), "%s %hhu", objName, &state );
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -950,7 +950,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
sscanf( params.c_str(), "%s %i %i", objName, &state1, &state2 ); sscanf( params.c_str(), "%s %i %i", objName, &state1, &state2 );
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -969,7 +969,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
sscanf( params.c_str(), "%hhu", &seq ); sscanf( params.c_str(), "%hhu", &seq );
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -981,7 +981,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
sscanf( params.c_str(), "%hhu", &branch ); sscanf( params.c_str(), "%hhu", &branch );
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -989,7 +989,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
} }
else if( subCommand == "qte_start" ) else if( subCommand == "qte_start" )
{ {
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -998,7 +998,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
} }
else if( subCommand == "event_start" ) else if( subCommand == "event_start" )
{ {
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1007,7 +1007,7 @@ void Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Pl
} }
else if( subCommand == "event_end" ) else if( subCommand == "event_end" )
{ {
auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< InstanceContent >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1064,7 +1064,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
else if( subCommand == "complete" ) else if( subCommand == "complete" )
{ {
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1074,7 +1074,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
else if( subCommand == "fail" ) else if( subCommand == "fail" )
{ {
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1114,7 +1114,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
sscanf( params.c_str(), "%d %d", &index, &value ); sscanf( params.c_str(), "%d %d", &index, &value );
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1127,7 +1127,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
sscanf( params.c_str(), "%s %hhu", objName, &state ); sscanf( params.c_str(), "%s %hhu", objName, &state );
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1145,7 +1145,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
sscanf( params.c_str(), "%s %i %i", objName, &state1, &state2 ); sscanf( params.c_str(), "%s %i %i", objName, &state1, &state2 );
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1164,7 +1164,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
sscanf( params.c_str(), "%hhu", &seq ); sscanf( params.c_str(), "%hhu", &seq );
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1176,7 +1176,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
sscanf( params.c_str(), "%hhu", &branch ); sscanf( params.c_str(), "%hhu", &branch );
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1184,7 +1184,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
} }
else if( subCommand == "qte_start" ) else if( subCommand == "qte_start" )
{ {
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1193,7 +1193,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
} }
else if( subCommand == "event_start" ) else if( subCommand == "event_start" )
{ {
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1202,7 +1202,7 @@ void Sapphire::World::Manager::DebugCommandMgr::questBattle( char* data, Entity:
} }
else if( subCommand == "event_end" ) else if( subCommand == "event_end" )
{ {
auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentZone() ); auto instance = std::dynamic_pointer_cast< QuestBattle >( player.getCurrentTerritory() );
if( !instance ) if( !instance )
return; return;
@ -1252,7 +1252,7 @@ void Sapphire::World::Manager::DebugCommandMgr::housing( char* data, Entity::Pla
// //
// if ( permissionSet < 5 ) // if ( permissionSet < 5 )
// { // {
// auto pZone = player.getCurrentZone(); // auto pZone = player.getCurrentTerritory();
// if( pTeriMgr->isHousingTerritory( pZone->getTerritoryTypeId() ) ) // if( pTeriMgr->isHousingTerritory( pZone->getTerritoryTypeId() ) )
// { // {
// auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); // auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone );

View file

@ -322,7 +322,7 @@ void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& pl
if( !land ) if( !land )
return; return;
auto landInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); auto landInfoSignPacket = makeWorldPacket< Server::FFXIVIpcLandInfoSign >( player.getId() );
landInfoSignPacket->data().houseSize = land->getSize(); landInfoSignPacket->data().houseSize = land->getSize();
landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() );
landInfoSignPacket->data().landIdent = ident; landInfoSignPacket->data().landIdent = ident;
@ -354,7 +354,7 @@ void Sapphire::World::Manager::HousingMgr::sendLandSignFree( Entity::Player& pla
return; return;
auto land = hZone->getLand( ident.landId ); auto land = hZone->getLand( ident.landId );
auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); auto plotPricePacket = makeWorldPacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() );
plotPricePacket->data().price = land->getCurrentPrice(); plotPricePacket->data().price = land->getCurrentPrice();
plotPricePacket->data().timeLeft = land->getDevaluationTime(); plotPricePacket->data().timeLeft = land->getDevaluationTime();
player.queuePacket( plotPricePacket ); player.queuePacket( plotPricePacket );
@ -362,7 +362,7 @@ void Sapphire::World::Manager::HousingMgr::sendLandSignFree( Entity::Player& pla
Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ) Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state )
{ {
auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
auto plotPrice = pHousing->getLand( plot )->getCurrentPrice(); auto plotPrice = pHousing->getLand( plot )->getCurrentPrice();
auto gilAvailable = player.getCurrency( CurrencyType::Gil ); auto gilAvailable = player.getCurrency( CurrencyType::Gil );
@ -418,7 +418,7 @@ bool Sapphire::World::Manager::HousingMgr::relinquishLand( Entity::Player& playe
{ {
// TODO: Fix "permissions" being sent incorrectly // TODO: Fix "permissions" being sent incorrectly
// TODO: Add checks for land state before relinquishing // TODO: Add checks for land state before relinquishing
auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
auto pLand = pHousing->getLand( plot ); auto pLand = pHousing->getLand( plot );
auto plotMaxPrice = pLand->getCurrentPrice(); auto plotMaxPrice = pLand->getCurrentPrice();
@ -469,7 +469,7 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla
if( !hZone ) if( !hZone )
return; return;
auto wardInfoPacket = makeZonePacket< Server::FFXIVIpcHousingWardInfo >( player.getId() ); auto wardInfoPacket = makeWorldPacket< Server::FFXIVIpcHousingWardInfo >( player.getId() );
wardInfoPacket->data().landIdent.wardNum = wardId; wardInfoPacket->data().landIdent.wardNum = wardId;
wardInfoPacket->data().landIdent.territoryTypeId = territoryTypeId; wardInfoPacket->data().landIdent.territoryTypeId = territoryTypeId;
@ -538,7 +538,7 @@ void Sapphire::World::Manager::HousingMgr::sendEstateGreeting( Entity::Player& p
if( !house ) if( !house )
return; return;
auto greetingPacket = makeZonePacket< FFXIVIpcHousingEstateGreeting >( player.getId() ); auto greetingPacket = makeWorldPacket< FFXIVIpcHousingEstateGreeting >( player.getId() );
greetingPacket->data().landIdent = ident; greetingPacket->data().landIdent = ident;
@ -660,7 +660,7 @@ void Sapphire::World::Manager::HousingMgr::createHouse( Sapphire::HousePtr house
void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetCatalogId ) void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetCatalogId )
{ {
auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
if( !hZone ) if( !hZone )
return; return;
@ -723,7 +723,7 @@ void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player&
if( !house ) if( !house )
return; return;
auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); auto landRenamePacket = makeWorldPacket< Server::FFXIVIpcLandRename >( player.getId() );
landRenamePacket->data().landIdent = ident; landRenamePacket->data().landIdent = ident;
memcpy( &landRenamePacket->data().houseName, house->getHouseName().c_str(), 20 ); memcpy( &landRenamePacket->data().houseName, house->getHouseName().c_str(), 20 );
@ -747,7 +747,7 @@ void Sapphire::World::Manager::HousingMgr::requestEstateEditGreeting( Entity::Pl
if( !house ) if( !house )
return; return;
auto estateGreetingPacket = makeZonePacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() ); auto estateGreetingPacket = makeWorldPacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() );
estateGreetingPacket->data().landIdent = ident; estateGreetingPacket->data().landIdent = ident;
memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) ); memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) );
@ -795,7 +795,7 @@ void Sapphire::World::Manager::HousingMgr::requestEstateEditGuestAccess( Entity:
if( !hasPermission( player, *land, 0 ) ) if( !hasPermission( player, *land, 0 ) )
return; return;
auto packet = makeZonePacket< Server::FFXIVIpcHousingShowEstateGuestAccess >( player.getId() ); auto packet = makeWorldPacket< Server::FFXIVIpcHousingShowEstateGuestAccess >( player.getId() );
packet->data().ident = ident; packet->data().ident = ident;
player.queuePacket( packet ); player.queuePacket( packet );
@ -830,7 +830,8 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player&
// and we have to switch up our way of getting the LandPtr // and we have to switch up our way of getting the LandPtr
if( plotNum == 255 ) if( plotNum == 255 )
{ {
auto internalZone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ); auto internalZone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >(
player.getCurrentTerritory() );
if( !internalZone ) if( !internalZone )
return; return;
@ -846,7 +847,7 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player&
} }
else else
{ {
auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
if( !zone ) if( !zone )
return; return;
@ -971,14 +972,15 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity
bool isOutside = false; bool isOutside = false;
// inside housing territory // inside housing territory
if( auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ) ) if( auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ) )
{ {
land = zone->getLand( landId ); land = zone->getLand( landId );
isOutside = true; isOutside = true;
} }
// otherwise, inside a house. landId is 0 when inside a plot // otherwise, inside a house. landId is 0 when inside a plot
else if( auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ) ) else if( auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >(
player.getCurrentTerritory() ) )
{ {
// todo: this whole process is retarded and needs to be fixed // todo: this whole process is retarded and needs to be fixed
// perhaps maintain a list of estates by ident inside housingmgr? // perhaps maintain a list of estates by ident inside housingmgr?
@ -1043,12 +1045,13 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity
LandPtr land; LandPtr land;
bool isOutside = false; bool isOutside = false;
if( auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ) ) if( auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ) )
{ {
land = zone->getLand( landId ); land = zone->getLand( landId );
isOutside = true; isOutside = true;
} }
else if( auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ) ) else if( auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >(
player.getCurrentTerritory() ) )
{ {
// todo: this whole process is retarded and needs to be fixed // todo: this whole process is retarded and needs to be fixed
// perhaps maintain a list of estates by ident inside housingmgr? // perhaps maintain a list of estates by ident inside housingmgr?
@ -1133,7 +1136,7 @@ bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& pl
invMgr->updateHousingItemPosition( item ); invMgr->updateHousingItemPosition( item );
// add to zone and spawn // add to zone and spawn
auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
assert( zone ); assert( zone );
zone->spawnYardObject( ident.landId, freeSlot, *item ); zone->spawnYardObject( ident.landId, freeSlot, *item );
@ -1146,7 +1149,7 @@ bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& pl
{ {
auto invMgr = framework()->get< InventoryMgr >(); auto invMgr = framework()->get< InventoryMgr >();
auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ); auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentTerritory() );
assert( zone ); assert( zone );
auto ident = zone->getLandIdent(); auto ident = zone->getLandIdent();
@ -1177,7 +1180,7 @@ bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& pl
invMgr->saveHousingContainer( ident, container ); invMgr->saveHousingContainer( ident, container );
invMgr->updateHousingItemPosition( item ); invMgr->updateHousingItemPosition( item );
auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ); auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentTerritory() );
assert( zone ); assert( zone );
zone->spawnHousingObject( containerIdx, freeSlot, containerId, item ); zone->spawnHousingObject( containerIdx, freeSlot, containerId, item );
@ -1202,7 +1205,7 @@ Sapphire::Common::HousingObject Sapphire::World::Manager::HousingMgr::getYardObj
void Sapphire::World::Manager::HousingMgr::sendInternalEstateInventoryBatch( Sapphire::Entity::Player& player, void Sapphire::World::Manager::HousingMgr::sendInternalEstateInventoryBatch( Sapphire::Entity::Player& player,
bool storeroom ) bool storeroom )
{ {
auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ); auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentTerritory() );
if( !zone ) if( !zone )
return; return;
@ -1243,11 +1246,12 @@ void Sapphire::World::Manager::HousingMgr::reqMoveHousingItem( Entity::Player& p
// todo: what happens when either of these fail? how does the server let the client know that the moment failed // todo: what happens when either of these fail? how does the server let the client know that the moment failed
// as is, if it does fail, the client will be locked and unable to move any item until reentering the territory // as is, if it does fail, the client will be locked and unable to move any item until reentering the territory
if( auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ) ) if( auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >(
player.getCurrentTerritory() ) )
{ {
moveInternalItem( player, ident, *terri, slot, pos, rot ); moveInternalItem( player, ident, *terri, slot, pos, rot );
} }
else if( auto terri = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ) ) else if( auto terri = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ) )
{ {
moveExternalItem( player, ident, slot, *terri, pos, rot ); moveExternalItem( player, ident, slot, *terri, pos, rot );
} }
@ -1339,7 +1343,8 @@ void Sapphire::World::Manager::HousingMgr::reqRemoveHousingItem( Sapphire::Entit
uint16_t containerId, uint8_t slot, uint16_t containerId, uint8_t slot,
bool sendToStoreroom ) bool sendToStoreroom )
{ {
if( auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ) ) if( auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >(
player.getCurrentTerritory() ) )
{ {
auto ident = terri->getLandIdent(); auto ident = terri->getLandIdent();
auto landSet = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto landSet = toLandSetId( ident.territoryTypeId, ident.wardNum );
@ -1353,7 +1358,7 @@ void Sapphire::World::Manager::HousingMgr::reqRemoveHousingItem( Sapphire::Entit
removeInternalItem( player, *terri, containerId, slot, sendToStoreroom ); removeInternalItem( player, *terri, containerId, slot, sendToStoreroom );
} }
else if( auto terri = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ) ) else if( auto terri = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() ) )
{ {
auto land = terri->getLand( plot ); auto land = terri->getLand( plot );
if( !land ) if( !land )
@ -1542,7 +1547,7 @@ Sapphire::ItemContainerPtr Sapphire::World::Manager::HousingMgr::getFreeEstateIn
void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::Entity::Player& player, uint16_t plot ) void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::Entity::Player& player, uint16_t plot )
{ {
auto terri = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); auto terri = std::dynamic_pointer_cast< HousingZone >( player.getCurrentTerritory() );
if( !terri ) if( !terri )
return; return;
@ -1569,7 +1574,7 @@ void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::E
void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::Entity::Player& player ) void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::Entity::Player& player )
{ {
auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ); auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentTerritory() );
if( !terri ) if( !terri )
return; return;

View file

@ -32,7 +32,7 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E
if( container->getId() == Common::InventoryType::Currency || container->getId() == Common::InventoryType::Crystal ) if( container->getId() == Common::InventoryType::Currency || container->getId() == Common::InventoryType::Crystal )
{ {
auto currencyInfoPacket = makeZonePacket< Server::FFXIVIpcCurrencyCrystalInfo >( player.getId() ); auto currencyInfoPacket = makeWorldPacket< Server::FFXIVIpcCurrencyCrystalInfo >( player.getId() );
currencyInfoPacket->data().containerSequence = sequence; currencyInfoPacket->data().containerSequence = sequence;
currencyInfoPacket->data().catalogId = itM->second->getId(); currencyInfoPacket->data().catalogId = itM->second->getId();
currencyInfoPacket->data().unknown = 1; currencyInfoPacket->data().unknown = 1;
@ -44,7 +44,7 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E
} }
else else
{ {
auto itemInfoPacket = makeZonePacket< Server::FFXIVIpcItemInfo >( player.getId() ); auto itemInfoPacket = makeWorldPacket< Server::FFXIVIpcItemInfo >( player.getId() );
itemInfoPacket->data().containerSequence = sequence; itemInfoPacket->data().containerSequence = sequence;
itemInfoPacket->data().containerId = container->getId(); itemInfoPacket->data().containerId = container->getId();
itemInfoPacket->data().slot = itM->first; itemInfoPacket->data().slot = itM->first;
@ -60,7 +60,7 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E
} }
} }
auto containerInfoPacket = makeZonePacket< Server::FFXIVIpcContainerInfo >( player.getId() ); auto containerInfoPacket = makeWorldPacket< Server::FFXIVIpcContainerInfo >( player.getId() );
containerInfoPacket->data().containerSequence = sequence; containerInfoPacket->data().containerSequence = sequence;
containerInfoPacket->data().numItems = container->getEntryCount(); containerInfoPacket->data().numItems = container->getEntryCount();
containerInfoPacket->data().containerId = container->getId(); containerInfoPacket->data().containerId = container->getId();

View file

@ -64,14 +64,14 @@ bool Sapphire::World::Manager::MarketMgr::init()
void Sapphire::World::Manager::MarketMgr::requestItemListingInfo( Sapphire::Entity::Player& player, uint32_t catalogId, void Sapphire::World::Manager::MarketMgr::requestItemListingInfo( Sapphire::Entity::Player& player, uint32_t catalogId,
uint32_t requestId ) uint32_t requestId )
{ {
auto countPkt = makeZonePacket< Server::FFFXIVIpcMarketBoardItemListingCount >( player.getId() ); auto countPkt = makeWorldPacket< Server::FFFXIVIpcMarketBoardItemListingCount >( player.getId() );
countPkt->data().quantity = 1 << 8; countPkt->data().quantity = 1 << 8;
countPkt->data().itemCatalogId = catalogId; countPkt->data().itemCatalogId = catalogId;
countPkt->data().requestId = requestId; countPkt->data().requestId = requestId;
player.queuePacket( countPkt ); player.queuePacket( countPkt );
auto historyPkt = makeZonePacket< Server::FFXIVIpcMarketBoardItemListingHistory >( player.getId() ); auto historyPkt = makeWorldPacket< Server::FFXIVIpcMarketBoardItemListingHistory >( player.getId() );
historyPkt->data().itemCatalogId = catalogId; historyPkt->data().itemCatalogId = catalogId;
historyPkt->data().itemCatalogId2 = catalogId; historyPkt->data().itemCatalogId2 = catalogId;
@ -111,7 +111,7 @@ void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& pla
auto endIdx = std::min< size_t >( startIdx + 20, numResults ); auto endIdx = std::min< size_t >( startIdx + 20, numResults );
auto size = endIdx - startIdx; auto size = endIdx - startIdx;
auto resultPkt = makeZonePacket< Server::FFXIVIpcMarketBoardSearchResult >( player.getId() ); auto resultPkt = makeWorldPacket< Server::FFXIVIpcMarketBoardSearchResult >( player.getId() );
resultPkt->data().itemIndexStart = startIdx; resultPkt->data().itemIndexStart = startIdx;
resultPkt->data().requestId = requestId; resultPkt->data().requestId = requestId;

View file

@ -628,10 +628,10 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( TerritoryPtr pZone, Sap
// mark character as zoning in progress // mark character as zoning in progress
pPlayer->setLoadingComplete( false ); pPlayer->setLoadingComplete( false );
if( pPlayer->getLastPing() != 0 && pPlayer->getCurrentZone() ) if( pPlayer->getLastPing() != 0 && pPlayer->getCurrentTerritory() )
pPlayer->getCurrentZone()->removeActor( pPlayer ); pPlayer->getCurrentTerritory()->removeActor( pPlayer );
pPlayer->setCurrentZone( pZone ); pPlayer->setCurrentTerritory( pZone );
pZone->pushActor( pPlayer ); pZone->pushActor( pPlayer );
// map player to instanceId so it can be tracked. // map player to instanceId so it can be tracked.

View file

@ -18,7 +18,7 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcSkillHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcSkillHandler >( inPacket );
const auto type = packet.data().type; const auto type = packet.data().type;
const auto actionId = packet.data().actionId; const auto actionId = packet.data().actionId;
@ -85,7 +85,7 @@ void Sapphire::Network::GameConnection::placedActionHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcAoESkillHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcAoESkillHandler >( inPacket );
const auto type = packet.data().type; const auto type = packet.data().type;
const auto actionId = packet.data().actionId; const auto actionId = packet.data().actionId;

View file

@ -25,7 +25,7 @@ void Sapphire::Network::GameConnection::cfDutyInfoRequest( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto dutyInfoPacket = makeZonePacket< FFXIVIpcCFDutyInfo >( player.getId() ); auto dutyInfoPacket = makeWorldPacket< FFXIVIpcCFDutyInfo >( player.getId() );
auto penaltyMinutes = player.getCFPenaltyMinutes(); auto penaltyMinutes = player.getCFPenaltyMinutes();
if( penaltyMinutes > 255 ) if( penaltyMinutes > 255 )
{ {
@ -35,7 +35,7 @@ void Sapphire::Network::GameConnection::cfDutyInfoRequest( FrameworkPtr pFw,
dutyInfoPacket->data().penaltyTime = penaltyMinutes; dutyInfoPacket->data().penaltyTime = penaltyMinutes;
queueOutPacket( dutyInfoPacket ); queueOutPacket( dutyInfoPacket );
auto inNeedsPacket = makeZonePacket< FFXIVIpcCFPlayerInNeed >( player.getId() ); auto inNeedsPacket = makeWorldPacket< FFXIVIpcCFPlayerInNeed >( player.getId() );
queueOutPacket( inNeedsPacket ); queueOutPacket( inNeedsPacket );
} }
@ -68,7 +68,7 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw,
player.sendDebug( "Duty register request for contentid#{0}", contentId ); player.sendDebug( "Duty register request for contentid#{0}", contentId );
// let's cancel it because otherwise you can't register it again // let's cancel it because otherwise you can't register it again
auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); auto cfCancelPacket = makeWorldPacket< FFXIVIpcCFNotify >( player.getId() );
cfCancelPacket->data().state1 = 3; cfCancelPacket->data().state1 = 3;
cfCancelPacket->data().state2 = 1; // Your registration is withdrawn. cfCancelPacket->data().state2 = 1; // Your registration is withdrawn.
queueOutPacket( cfCancelPacket ); queueOutPacket( cfCancelPacket );
@ -93,7 +93,7 @@ void Sapphire::Network::GameConnection::cfRegisterRoulette( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); auto cfCancelPacket = makeWorldPacket< FFXIVIpcCFNotify >( player.getId() );
cfCancelPacket->data().state1 = 3; cfCancelPacket->data().state1 = 3;
cfCancelPacket->data().state2 = 1; // Your registration is withdrawn. cfCancelPacket->data().state2 = 1; // Your registration is withdrawn.
queueOutPacket( cfCancelPacket ); queueOutPacket( cfCancelPacket );

View file

@ -67,7 +67,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcClientTrigger >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcClientTrigger >( inPacket );
const auto commandId = packet.data().commandId; const auto commandId = packet.data().commandId;
const auto param1 = *reinterpret_cast< const uint64_t* >( &packet.data().param11 ); const auto param1 = *reinterpret_cast< const uint64_t* >( &packet.data().param11 );
@ -173,7 +173,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
uint64_t targetContentId = param1; uint64_t targetContentId = param1;
// todo: look up player by content id // todo: look up player by content id
/* /*
auto packet = makeZonePacket< FFXIVIpcCharaNameReq >( player.getId() ); auto packet = makeWorldPacket< FFXIVIpcCharaNameReq >( player.getId() );
packet->data().contentId = targetContentId; packet->data().contentId = targetContentId;
// lookup the name // lookup the name
@ -287,12 +287,12 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
} }
case ClientTriggerType::DirectorInitFinish: // Director init finish case ClientTriggerType::DirectorInitFinish: // Director init finish
{ {
player.getCurrentZone()->onInitDirector( player ); player.getCurrentTerritory()->onInitDirector( player );
break; break;
} }
case ClientTriggerType::DirectorSync: // Director init finish case ClientTriggerType::DirectorSync: // Director init finish
{ {
player.getCurrentZone()->onDirectorSync( player ); player.getCurrentTerritory()->onDirectorSync( player );
break; break;
} }
case ClientTriggerType::EnterTerritoryEventFinished:// this may still be something else. I think i have seen it elsewhere case ClientTriggerType::EnterTerritoryEventFinished:// this may still be something else. I think i have seen it elsewhere
@ -313,7 +313,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
} }
case ClientTriggerType::RequestHousingBuildPreset: case ClientTriggerType::RequestHousingBuildPreset:
{ {
auto zone = player.getCurrentZone(); auto zone = player.getCurrentTerritory();
auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); auto hZone = std::dynamic_pointer_cast< HousingZone >( zone );
if (!hZone) if (!hZone)
return; return;

View file

@ -39,7 +39,7 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw,
auto pExdData = pFw->get< Data::ExdDataGenerated >(); auto pExdData = pFw->get< Data::ExdDataGenerated >();
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerTalk >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcEventHandlerTalk >( inPacket );
const auto actorId = packet.data().actorId; const auto actorId = packet.data().actorId;
const auto eventId = packet.data().eventId; const auto eventId = packet.data().eventId;
@ -81,7 +81,7 @@ void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw,
auto pExdData = pFw->get< Data::ExdDataGenerated >(); auto pExdData = pFw->get< Data::ExdDataGenerated >();
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerEmote >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcEventHandlerEmote >( inPacket );
const auto actorId = packet.data().actorId; const auto actorId = packet.data().actorId;
const auto eventId = packet.data().eventId; const auto eventId = packet.data().eventId;
@ -117,7 +117,7 @@ void Sapphire::Network::GameConnection::eventHandlerWithinRange( FrameworkPtr pF
auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); auto pScriptMgr = pFw->get< Scripting::ScriptMgr >();
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerWithinRange >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcEventHandlerWithinRange >( inPacket );
const auto eventId = packet.data().eventId; const auto eventId = packet.data().eventId;
const auto param1 = packet.data().param1; const auto param1 = packet.data().param1;
@ -141,7 +141,7 @@ void Sapphire::Network::GameConnection::eventHandlerOutsideRange( FrameworkPtr p
auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); auto pScriptMgr = pFw->get< Scripting::ScriptMgr >();
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerOutsideRange >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcEventHandlerOutsideRange >( inPacket );
const auto eventId = packet.data().eventId; const auto eventId = packet.data().eventId;
const auto param1 = packet.data().param1; const auto param1 = packet.data().param1;
const auto& pos = packet.data().position; const auto& pos = packet.data().position;
@ -164,7 +164,7 @@ void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( FrameworkPtr
auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); auto pScriptMgr = pFw->get< Scripting::ScriptMgr >();
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcEnterTerritoryHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcEnterTerritoryHandler >( inPacket );
const auto eventId = packet.data().eventId; const auto eventId = packet.data().eventId;
const auto param1 = packet.data().param1; const auto param1 = packet.data().param1;
@ -201,7 +201,7 @@ void Sapphire::Network::GameConnection::eventHandlerReturn( FrameworkPtr pFw,
{ {
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerReturn >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcEventHandlerReturn >( inPacket );
const auto eventId = packet.data().eventId; const auto eventId = packet.data().eventId;
const auto scene = packet.data().scene; const auto scene = packet.data().scene;
const auto param1 = packet.data().param1; const auto param1 = packet.data().param1;
@ -246,9 +246,9 @@ void Sapphire::Network::GameConnection::eventHandlerLinkshell( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcLinkshellEventHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcLinkshellEventHandler >( inPacket );
auto linkshellEvent = makeZonePacket< Server::FFXIVIpcEventLinkshell >( player.getId() ); auto linkshellEvent = makeWorldPacket< Server::FFXIVIpcEventLinkshell >( player.getId() );
linkshellEvent->data().eventId = packet.data().eventId; linkshellEvent->data().eventId = packet.data().eventId;
linkshellEvent->data().scene = static_cast< uint8_t >( packet.data().scene ); linkshellEvent->data().scene = static_cast< uint8_t >( packet.data().scene );
linkshellEvent->data().param3 = 1; linkshellEvent->data().param3 = 1;
@ -263,7 +263,7 @@ void Sapphire::Network::GameConnection::eventHandlerShop( FrameworkPtr pFw,
{ {
auto pEventMgr = pFw->get< World::Manager::EventMgr >(); auto pEventMgr = pFw->get< World::Manager::EventMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcShopEventHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcShopEventHandler >( inPacket );
auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); auto pScriptMgr = pFw->get< Scripting::ScriptMgr >();
auto pExdData = pFw->get< Data::ExdDataGenerated >(); auto pExdData = pFw->get< Data::ExdDataGenerated >();

View file

@ -93,7 +93,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw,
if( player.getGmRank() <= 0 ) if( player.getGmRank() <= 0 )
return; return;
const auto packet = ZoneChannelPacket< Client::FFXIVIpcGmCommand1 >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcGmCommand1 >( inPacket );
const auto commandId = packet.data().commandId; const auto commandId = packet.data().commandId;
const auto param1 = packet.data().param1; const auto param1 = packet.data().param1;
const auto param2 = packet.data().param2; const auto param2 = packet.data().param2;
@ -190,9 +190,9 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw,
} }
case GmCommand::Weather: case GmCommand::Weather:
{ {
targetPlayer->getCurrentZone()->setWeatherOverride( static_cast< Common::Weather >( param1 ) ); targetPlayer->getCurrentTerritory()->setWeatherOverride( static_cast< Common::Weather >( param1 ) );
player.sendNotice( "Weather in Territory \"{0}\" of {1} set in range.", player.sendNotice( "Weather in Territory \"{0}\" of {1} set in range.",
targetPlayer->getCurrentZone()->getName(), targetPlayer->getName() ); targetPlayer->getCurrentTerritory()->getName(), targetPlayer->getName() );
break; break;
} }
case GmCommand::Call: case GmCommand::Call:
@ -217,7 +217,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw,
"\nPlayTime: {8}", "\nPlayTime: {8}",
targetPlayer->getName(), targetPlayer->getName(),
targetPlayer->getCurrency( CurrencyType::Gil ), targetPlayer->getCurrency( CurrencyType::Gil ),
targetPlayer->getCurrentZone()->getName(), targetPlayer->getCurrentTerritory()->getName(),
targetPlayer->getZoneId(), targetPlayer->getZoneId(),
static_cast< uint8_t >( targetPlayer->getClass() ), static_cast< uint8_t >( targetPlayer->getClass() ),
targetPlayer->getLevel(), targetPlayer->getLevel(),
@ -257,11 +257,11 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw,
{ {
targetPlayer->setOnlineStatusMask( param1 ); targetPlayer->setOnlineStatusMask( param1 );
auto statusPacket = makeZonePacket< FFXIVIpcSetOnlineStatus >( player.getId() ); auto statusPacket = makeWorldPacket< FFXIVIpcSetOnlineStatus >( player.getId() );
statusPacket->data().onlineStatusFlags = param1; statusPacket->data().onlineStatusFlags = param1;
queueOutPacket( statusPacket ); queueOutPacket( statusPacket );
auto searchInfoPacket = makeZonePacket< FFXIVIpcSetSearchInfo >( player.getId() ); auto searchInfoPacket = makeWorldPacket< FFXIVIpcSetSearchInfo >( player.getId() );
searchInfoPacket->data().onlineStatusFlags = param1; searchInfoPacket->data().onlineStatusFlags = param1;
searchInfoPacket->data().selectRegion = targetPlayer->getSearchSelectRegion(); searchInfoPacket->data().selectRegion = targetPlayer->getSearchSelectRegion();
strcpy( searchInfoPacket->data().searchMessage, targetPlayer->getSearchMessage() ); strcpy( searchInfoPacket->data().searchMessage, targetPlayer->getSearchMessage() );
@ -551,7 +551,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw,
} }
case GmCommand::TeriInfo: case GmCommand::TeriInfo:
{ {
auto pCurrentZone = player.getCurrentZone(); auto pCurrentZone = player.getCurrentTerritory();
player.sendNotice( "ZoneId: {0}" player.sendNotice( "ZoneId: {0}"
"\nName: {1}" "\nName: {1}"
"\nInternalName: {2}" "\nInternalName: {2}"
@ -596,7 +596,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw,
auto pServerZone = pFw->get< World::ServerMgr >(); auto pServerZone = pFw->get< World::ServerMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcGmCommand2 >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcGmCommand2 >( inPacket );
const auto commandId = packet.data().commandId; const auto commandId = packet.data().commandId;
const auto param1 = packet.data().param1; const auto param1 = packet.data().param1;
@ -657,7 +657,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw,
{ {
player.exitInstance(); player.exitInstance();
} }
if( targetPlayer->getCurrentZone()->getGuId() != player.getCurrentZone()->getGuId() ) if( targetPlayer->getCurrentTerritory()->getGuId() != player.getCurrentTerritory()->getGuId() )
{ {
// Checks if the target player is in an InstanceContent to avoid binding to a Territory or PublicContent // Checks if the target player is in an InstanceContent to avoid binding to a Territory or PublicContent
if( targetPlayer->getCurrentInstance() ) if( targetPlayer->getCurrentInstance() )
@ -666,7 +666,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw,
// Not sure if GMs actually get bound to an instance they jump to on retail. It's mostly here to avoid a crash for now // Not sure if GMs actually get bound to an instance they jump to on retail. It's mostly here to avoid a crash for now
pInstanceContent->bindPlayer( player.getId() ); pInstanceContent->bindPlayer( player.getId() );
} }
player.setInstance( targetPlayer->getCurrentZone()->getGuId() ); player.setInstance( targetPlayer->getCurrentTerritory()->getGuId() );
} }
player.changePosition( targetActor->getPos().x, targetActor->getPos().y, targetActor->getPos().z, player.changePosition( targetActor->getPos().x, targetActor->getPos().y, targetActor->getPos().z,
targetActor->getRot() ); targetActor->getRot() );
@ -687,9 +687,9 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw,
{ {
targetPlayer->exitInstance(); targetPlayer->exitInstance();
} }
if( targetPlayer->getCurrentZone()->getGuId() != player.getCurrentZone()->getGuId() ) if( targetPlayer->getCurrentTerritory()->getGuId() != player.getCurrentTerritory()->getGuId() )
{ {
targetPlayer->setInstance( player.getCurrentZone()->getGuId() ); targetPlayer->setInstance( player.getCurrentTerritory()->getGuId() );
} }
targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() ); targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() );
targetPlayer->sendZoneInPackets( 0x00, 0x00, 0, 0, false ); targetPlayer->sendZoneInPackets( 0x00, 0x00, 0, 0, false );

View file

@ -27,7 +27,7 @@ void Sapphire::Network::GameConnection::inventoryModifyHandler( FrameworkPtr pFw
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcInventoryModifyHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcInventoryModifyHandler >( inPacket );
const auto action = packet.data().action; const auto action = packet.data().action;
const auto splitCount = packet.data().splitCount; const auto splitCount = packet.data().splitCount;
@ -37,7 +37,7 @@ void Sapphire::Network::GameConnection::inventoryModifyHandler( FrameworkPtr pFw
const auto toSlot = packet.data().toSlot; const auto toSlot = packet.data().toSlot;
const auto toContainer = packet.data().toContainer; const auto toContainer = packet.data().toContainer;
auto ackPacket = makeZonePacket< Server::FFXIVIpcInventoryActionAck >( player.getId() ); auto ackPacket = makeWorldPacket< Server::FFXIVIpcInventoryActionAck >( player.getId() );
ackPacket->data().sequence = packet.data().seq; ackPacket->data().sequence = packet.data().seq;
ackPacket->data().type = 7; ackPacket->data().type = 7;
player.queuePacket( ackPacket ); player.queuePacket( ackPacket );

View file

@ -67,7 +67,7 @@ void Sapphire::Network::GameConnection::setSearchInfoHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcSetSearchInfo >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcSetSearchInfo >( inPacket );
const auto inval = packet.data().status1; const auto inval = packet.data().status1;
const auto inval1 = packet.data().status2; const auto inval1 = packet.data().status2;
@ -85,11 +85,11 @@ void Sapphire::Network::GameConnection::setSearchInfoHandler( FrameworkPtr pFw,
// mark player as new adventurer // mark player as new adventurer
player.setNewAdventurer( true ); player.setNewAdventurer( true );
auto statusPacket = makeZonePacket< FFXIVIpcSetOnlineStatus >( player.getId() ); auto statusPacket = makeWorldPacket< FFXIVIpcSetOnlineStatus >( player.getId() );
statusPacket->data().onlineStatusFlags = status; statusPacket->data().onlineStatusFlags = status;
queueOutPacket( statusPacket ); queueOutPacket( statusPacket );
auto searchInfoPacket = makeZonePacket< FFXIVIpcSetSearchInfo >( player.getId() ); auto searchInfoPacket = makeWorldPacket< FFXIVIpcSetSearchInfo >( player.getId() );
searchInfoPacket->data().onlineStatusFlags = status; searchInfoPacket->data().onlineStatusFlags = status;
searchInfoPacket->data().selectRegion = player.getSearchSelectRegion(); searchInfoPacket->data().selectRegion = player.getSearchSelectRegion();
strcpy( searchInfoPacket->data().searchMessage, player.getSearchMessage() ); strcpy( searchInfoPacket->data().searchMessage, player.getSearchMessage() );
@ -103,7 +103,7 @@ void Sapphire::Network::GameConnection::reqSearchInfoHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto searchInfoPacket = makeZonePacket< FFXIVIpcInitSearchInfo >( player.getId() ); auto searchInfoPacket = makeWorldPacket< FFXIVIpcInitSearchInfo >( player.getId() );
searchInfoPacket->data().onlineStatusFlags = player.getOnlineStatusMask(); searchInfoPacket->data().onlineStatusFlags = player.getOnlineStatusMask();
searchInfoPacket->data().selectRegion = player.getSearchSelectRegion(); searchInfoPacket->data().selectRegion = player.getSearchSelectRegion();
strcpy( searchInfoPacket->data().searchMessage, player.getSearchMessage() ); strcpy( searchInfoPacket->data().searchMessage, player.getSearchMessage() );
@ -130,7 +130,7 @@ void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( Framewor
return; return;
// retail sends the requester's id as both (isForSelf) // retail sends the requester's id as both (isForSelf)
auto searchInfoPacket = makeZonePacket< FFXIVIpcExamineSearchComment >( player.getId() ); auto searchInfoPacket = makeWorldPacket< FFXIVIpcExamineSearchComment >( player.getId() );
searchInfoPacket->data().charId = targetId; searchInfoPacket->data().charId = targetId;
strcpy( searchInfoPacket->data().searchComment, pPlayer->getSearchMessage() ); strcpy( searchInfoPacket->data().searchComment, pPlayer->getSearchMessage() );
player.queuePacket( searchInfoPacket ); player.queuePacket( searchInfoPacket );
@ -158,7 +158,7 @@ void Sapphire::Network::GameConnection::reqExamineFcInfo( FrameworkPtr pFw,
return; return;
// retail sends the requester's id as both (isForSelf) // retail sends the requester's id as both (isForSelf)
auto examineFcInfoPacket = makeZonePacket< FFXIVIpcExamineFreeCompanyInfo >( player.getId() ); auto examineFcInfoPacket = makeWorldPacket< FFXIVIpcExamineFreeCompanyInfo >( player.getId() );
examineFcInfoPacket->data().charId = targetId; examineFcInfoPacket->data().charId = targetId;
// todo: populate with fc info // todo: populate with fc info
@ -171,7 +171,7 @@ void Sapphire::Network::GameConnection::linkshellListHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto linkshellListPacket = makeZonePacket< FFXIVIpcLinkshellList >( player.getId() ); auto linkshellListPacket = makeWorldPacket< FFXIVIpcLinkshellList >( player.getId() );
queueOutPacket( linkshellListPacket ); queueOutPacket( linkshellListPacket );
} }
@ -183,7 +183,7 @@ void Sapphire::Network::GameConnection::updatePositionHandler( FrameworkPtr pFw,
if( player.isMarkedForZoning() ) if( player.isMarkedForZoning() )
return; return;
const auto updatePositionPacket = ZoneChannelPacket< Client::FFXIVIpcUpdatePosition >( inPacket ); const auto updatePositionPacket = WorldChannelPacket< Client::FFXIVIpcUpdatePosition >( inPacket );
bool bPosChanged = true; bool bPosChanged = true;
if( updatePositionPacket.data().position == player.getPos() ) if( updatePositionPacket.data().position == player.getPos() )
@ -276,12 +276,12 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw,
{ {
auto pTeriMgr = pFw->get< TerritoryMgr >(); auto pTeriMgr = pFw->get< TerritoryMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcZoneLineHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcZoneLineHandler >( inPacket );
const auto zoneLineId = packet.data().zoneLineId; const auto zoneLineId = packet.data().zoneLineId;
player.sendDebug( "Walking ZoneLine#{0}", zoneLineId ); player.sendDebug( "Walking ZoneLine#{0}", zoneLineId );
auto pZone = player.getCurrentZone(); auto pZone = player.getCurrentTerritory();
auto pLine = pTeriMgr->getTerritoryPosition( zoneLineId ); auto pLine = pTeriMgr->getTerritoryPosition( zoneLineId );
@ -296,7 +296,7 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw,
targetZone = pLine->getTargetZoneId(); targetZone = pLine->getTargetZoneId();
rotation = pLine->getTargetRotation(); rotation = pLine->getTargetRotation();
auto preparePacket = makeZonePacket< FFXIVIpcPrepareZoning >( player.getId() ); auto preparePacket = makeWorldPacket< FFXIVIpcPrepareZoning >( player.getId() );
preparePacket->data().targetZone = targetZone; preparePacket->data().targetZone = targetZone;
//ActorControlPacket143 controlPacket( pPlayer, ActorControlType::DespawnZoneScreenMsg, //ActorControlPacket143 controlPacket( pPlayer, ActorControlType::DespawnZoneScreenMsg,
@ -321,7 +321,7 @@ void Sapphire::Network::GameConnection::discoveryHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcDiscoveryHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcDiscoveryHandler >( inPacket );
const auto positionRef = packet.data().positionRef; const auto positionRef = packet.data().positionRef;
auto pDb = pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pDb = pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
@ -336,7 +336,7 @@ void Sapphire::Network::GameConnection::discoveryHandler( FrameworkPtr pFw,
return; return;
} }
auto discoveryPacket = makeZonePacket< FFXIVIpcDiscovery >( player.getId() ); auto discoveryPacket = makeWorldPacket< FFXIVIpcDiscovery >( player.getId() );
discoveryPacket->data().map_id = pQR->getUInt( 2 ); discoveryPacket->data().map_id = pQR->getUInt( 2 );
discoveryPacket->data().map_part_id = pQR->getUInt( 3 ); discoveryPacket->data().map_part_id = pQR->getUInt( 3 );
@ -352,7 +352,7 @@ void Sapphire::Network::GameConnection::playTimeHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto playTimePacket = makeZonePacket< FFXIVIpcPlayTime >( player.getId() ); auto playTimePacket = makeWorldPacket< FFXIVIpcPlayTime >( player.getId() );
playTimePacket->data().playTimeInMinutes = player.getPlayTime() / 60; playTimePacket->data().playTimeInMinutes = player.getPlayTime() / 60;
player.queuePacket( playTimePacket ); player.queuePacket( playTimePacket );
} }
@ -375,7 +375,7 @@ void Sapphire::Network::GameConnection::blackListHandler( FrameworkPtr pFw,
{ {
uint8_t count = inPacket.data[ 0x11 ]; uint8_t count = inPacket.data[ 0x11 ];
auto blackListPacket = makeZonePacket< FFXIVIpcBlackList >( player.getId() ); auto blackListPacket = makeWorldPacket< FFXIVIpcBlackList >( player.getId() );
blackListPacket->data().sequence = count; blackListPacket->data().sequence = count;
// TODO: Fill with actual blacklist data // TODO: Fill with actual blacklist data
//blackListPacket.data().entry[0].contentId = 1; //blackListPacket.data().entry[0].contentId = 1;
@ -389,7 +389,7 @@ void Sapphire::Network::GameConnection::pingHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcPingHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcPingHandler >( inPacket );
queueOutPacket( std::make_shared< Server::PingPacket >( player, packet.data().timestamp ) ); queueOutPacket( std::make_shared< Server::PingPacket >( player, packet.data().timestamp ) );
@ -404,14 +404,14 @@ void Sapphire::Network::GameConnection::finishLoadingHandler( FrameworkPtr pFw,
player.sendQuestInfo(); player.sendQuestInfo();
// TODO: load and save this data instead of hardcoding // TODO: load and save this data instead of hardcoding
auto gcPacket = makeZonePacket< FFXIVGCAffiliation >( player.getId() ); auto gcPacket = makeWorldPacket< FFXIVGCAffiliation >( player.getId() );
gcPacket->data().gcId = player.getGc(); gcPacket->data().gcId = player.getGc();
gcPacket->data().gcRank[ 0 ] = player.getGcRankArray()[ 0 ]; gcPacket->data().gcRank[ 0 ] = player.getGcRankArray()[ 0 ];
gcPacket->data().gcRank[ 1 ] = player.getGcRankArray()[ 1 ]; gcPacket->data().gcRank[ 1 ] = player.getGcRankArray()[ 1 ];
gcPacket->data().gcRank[ 2 ] = player.getGcRankArray()[ 2 ]; gcPacket->data().gcRank[ 2 ] = player.getGcRankArray()[ 2 ];
player.queuePacket( gcPacket ); player.queuePacket( gcPacket );
player.getCurrentZone()->onFinishLoading( player ); player.getCurrentTerritory()->onFinishLoading( player );
// player is done zoning // player is done zoning
player.setLoadingComplete( true ); player.setLoadingComplete( true );
@ -428,7 +428,7 @@ void Sapphire::Network::GameConnection::finishLoadingHandler( FrameworkPtr pFw,
player.spawn( player.getAsPlayer() ); player.spawn( player.getAsPlayer() );
// notify the zone of a change in position to force an "inRangeActor" update // notify the zone of a change in position to force an "inRangeActor" update
player.getCurrentZone()->updateActorPosition( player ); player.getCurrentTerritory()->updateActorPosition( player );
} }
void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw, void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw,
@ -442,7 +442,7 @@ void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw,
if( type == 0x02 ) if( type == 0x02 )
{ // party list { // party list
auto listPacket = makeZonePacket< FFXIVIpcSocialList >( player.getId() ); auto listPacket = makeWorldPacket< FFXIVIpcSocialList >( player.getId() );
listPacket->data().type = 2; listPacket->data().type = 2;
listPacket->data().sequence = count; listPacket->data().sequence = count;
@ -450,7 +450,7 @@ void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw,
int32_t entrysizes = sizeof( listPacket->data().entries ); int32_t entrysizes = sizeof( listPacket->data().entries );
memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) ); memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) );
listPacket->data().entries[ 0 ].bytes[ 2 ] = player.getCurrentZone()->getTerritoryTypeId(); listPacket->data().entries[ 0 ].bytes[ 2 ] = player.getCurrentTerritory()->getTerritoryTypeId();
listPacket->data().entries[ 0 ].bytes[ 3 ] = 0x80; listPacket->data().entries[ 0 ].bytes[ 3 ] = 0x80;
listPacket->data().entries[ 0 ].bytes[ 4 ] = 0x02; listPacket->data().entries[ 0 ].bytes[ 4 ] = 0x02;
listPacket->data().entries[ 0 ].bytes[ 6 ] = 0x3B; listPacket->data().entries[ 0 ].bytes[ 6 ] = 0x3B;
@ -458,7 +458,7 @@ void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw,
listPacket->data().entries[ 0 ].classJob = static_cast< uint8_t >( player.getClass() ); listPacket->data().entries[ 0 ].classJob = static_cast< uint8_t >( player.getClass() );
listPacket->data().entries[ 0 ].contentId = player.getContentId(); listPacket->data().entries[ 0 ].contentId = player.getContentId();
listPacket->data().entries[ 0 ].level = player.getLevel(); listPacket->data().entries[ 0 ].level = player.getLevel();
listPacket->data().entries[ 0 ].zoneId = player.getCurrentZone()->getTerritoryTypeId(); listPacket->data().entries[ 0 ].zoneId = player.getCurrentTerritory()->getTerritoryTypeId();
listPacket->data().entries[ 0 ].zoneId1 = 0x0100; listPacket->data().entries[ 0 ].zoneId1 = 0x0100;
// TODO: no idea what this does // TODO: no idea what this does
//listPacket.data().entries[0].one = 1; //listPacket.data().entries[0].one = 1;
@ -476,7 +476,7 @@ void Sapphire::Network::GameConnection::socialListHandler( FrameworkPtr pFw,
} }
else if( type == 0x0b ) else if( type == 0x0b )
{ // friend list { // friend list
auto listPacket = makeZonePacket< FFXIVIpcSocialList >( player.getId() ); auto listPacket = makeWorldPacket< FFXIVIpcSocialList >( player.getId() );
listPacket->data().type = 0x0B; listPacket->data().type = 0x0B;
listPacket->data().sequence = count; listPacket->data().sequence = count;
memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) ); memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) );
@ -495,7 +495,7 @@ void Sapphire::Network::GameConnection::chatHandler( FrameworkPtr pFw,
{ {
auto pDebugCom = pFw->get< DebugCommandMgr >(); auto pDebugCom = pFw->get< DebugCommandMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcChatHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcChatHandler >( inPacket );
if( packet.data().message[ 0 ] == '!' ) if( packet.data().message[ 0 ] == '!' )
{ {
@ -516,7 +516,7 @@ void Sapphire::Network::GameConnection::chatHandler( FrameworkPtr pFw,
if( player.isActingAsGm() ) if( player.isActingAsGm() )
chatPacket->data().chatType = ChatType::GMSay; chatPacket->data().chatType = ChatType::GMSay;
player.getCurrentZone()->queuePacketForRange( player, 50, chatPacket ); player.getCurrentTerritory()->queuePacketForRange( player, 50, chatPacket );
break; break;
} }
case ChatType::Yell: case ChatType::Yell:
@ -524,7 +524,7 @@ void Sapphire::Network::GameConnection::chatHandler( FrameworkPtr pFw,
if( player.isActingAsGm() ) if( player.isActingAsGm() )
chatPacket->data().chatType = ChatType::GMYell; chatPacket->data().chatType = ChatType::GMYell;
player.getCurrentZone()->queuePacketForRange( player, 6000, chatPacket ); player.getCurrentTerritory()->queuePacketForRange( player, 6000, chatPacket );
break; break;
} }
case ChatType::Shout: case ChatType::Shout:
@ -532,12 +532,12 @@ void Sapphire::Network::GameConnection::chatHandler( FrameworkPtr pFw,
if( player.isActingAsGm() ) if( player.isActingAsGm() )
chatPacket->data().chatType = ChatType::GMShout; chatPacket->data().chatType = ChatType::GMShout;
player.getCurrentZone()->queuePacketForRange( player, 6000, chatPacket ); player.getCurrentTerritory()->queuePacketForRange( player, 6000, chatPacket );
break; break;
} }
default: default:
{ {
player.getCurrentZone()->queuePacketForRange( player, 50, chatPacket ); player.getCurrentTerritory()->queuePacketForRange( player, 50, chatPacket );
break; break;
} }
} }
@ -552,7 +552,7 @@ void Sapphire::Network::GameConnection::logoutHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto logoutPacket = makeZonePacket< FFXIVIpcLogout >( player.getId() ); auto logoutPacket = makeWorldPacket< FFXIVIpcLogout >( player.getId() );
logoutPacket->data().flags1 = 0x02; logoutPacket->data().flags1 = 0x02;
logoutPacket->data().flags2 = 0x2000; logoutPacket->data().flags2 = 0x2000;
queueOutPacket( logoutPacket ); queueOutPacket( logoutPacket );
@ -565,7 +565,7 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcTellHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcTellHandler >( inPacket );
auto pZoneServer = pFw->get< World::ServerMgr >(); auto pZoneServer = pFw->get< World::ServerMgr >();
@ -573,7 +573,7 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw,
if( !pSession ) if( !pSession )
{ {
auto tellErrPacket = makeZonePacket< FFXIVIpcTellErrNotFound >( player.getId() ); auto tellErrPacket = makeWorldPacket< FFXIVIpcTellErrNotFound >( player.getId() );
strcpy( tellErrPacket->data().receipientName, packet.data().targetPCName ); strcpy( tellErrPacket->data().receipientName, packet.data().targetPCName );
sendSinglePacket( tellErrPacket ); sendSinglePacket( tellErrPacket );
return; return;
@ -621,7 +621,7 @@ void Sapphire::Network::GameConnection::performNoteHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
auto performPacket = makeZonePacket< FFXIVIpcPerformNote >( player.getId() ); auto performPacket = makeWorldPacket< FFXIVIpcPerformNote >( player.getId() );
memcpy( &performPacket->data().data[ 0 ], &inPacket.data[ 0x10 ], 32 ); memcpy( &performPacket->data().data[ 0 ], &inPacket.data[ 0x10 ], 32 );
player.sendToInRangeSet( performPacket ); player.sendToInRangeSet( performPacket );
} }
@ -630,7 +630,7 @@ void Sapphire::Network::GameConnection::landRenameHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket );
auto pHousingMgr = pFw->get< HousingMgr >(); auto pHousingMgr = pFw->get< HousingMgr >();
@ -653,7 +653,7 @@ void Sapphire::Network::GameConnection::landRenameHandler( FrameworkPtr pFw,
pHouse->setHouseName( packet.data().houseName ); pHouse->setHouseName( packet.data().houseName );
// todo: this packet is weird, retail sends it with some unknown shit at the start but it doesn't seem to do anything // todo: this packet is weird, retail sends it with some unknown shit at the start but it doesn't seem to do anything
auto nameUpdatePacket = makeZonePacket< Server::FFXIVIpcLandUpdateHouseName >( player.getId() ); auto nameUpdatePacket = makeWorldPacket< Server::FFXIVIpcLandUpdateHouseName >( player.getId() );
memcpy( &nameUpdatePacket->data().houseName, &packet.data().houseName, sizeof( packet.data().houseName ) ); memcpy( &nameUpdatePacket->data().houseName, &packet.data().houseName, sizeof( packet.data().houseName ) );
// todo: who does this get sent to? just the person who renamed it? // todo: who does this get sent to? just the person who renamed it?
@ -664,7 +664,7 @@ void Sapphire::Network::GameConnection::buildPresetHandler( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket );
auto pHousingMgr = pFw->get< HousingMgr >(); auto pHousingMgr = pFw->get< HousingMgr >();
pHousingMgr->buildPresetEstate( player, packet.data().plotNum, packet.data().itemId ); pHousingMgr->buildPresetEstate( player, packet.data().plotNum, packet.data().itemId );
@ -674,7 +674,7 @@ void Sapphire::Network::GameConnection::housingUpdateGreetingHandler( FrameworkP
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateHouseGreeting >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcHousingUpdateHouseGreeting >( inPacket );
auto pHousingMgr = pFw->get< HousingMgr >(); auto pHousingMgr = pFw->get< HousingMgr >();
@ -686,7 +686,7 @@ void Sapphire::Network::GameConnection::reqPlaceHousingItem( FrameworkPtr pFw,
Entity::Player& player ) Entity::Player& player )
{ {
auto housingMgr = pFw->get< HousingMgr >(); auto housingMgr = pFw->get< HousingMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcReqPlaceHousingItem >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcReqPlaceHousingItem >( inPacket );
const auto& data = packet.data(); const auto& data = packet.data();
if( data.shouldPlaceItem == 1 ) if( data.shouldPlaceItem == 1 )
@ -705,7 +705,7 @@ void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw,
{ {
auto housingMgr = pFw->get< HousingMgr >(); auto housingMgr = pFw->get< HousingMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateObjectPosition >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcHousingUpdateObjectPosition >( inPacket );
const auto& data = packet.data(); const auto& data = packet.data();
housingMgr->reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation ); housingMgr->reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation );
@ -718,7 +718,7 @@ void Sapphire::Network::GameConnection::marketBoardSearch( FrameworkPtr pFw,
{ {
auto marketMgr = pFw->get< MarketMgr >(); auto marketMgr = pFw->get< MarketMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardSearch >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcMarketBoardSearch >( inPacket );
const auto& data = packet.data(); const auto& data = packet.data();
std::string_view searchStr( data.searchStr ); std::string_view searchStr( data.searchStr );
@ -731,7 +731,7 @@ void Sapphire::Network::GameConnection::marketBoardRequestItemInfo( FrameworkPtr
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListingInfo >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListingInfo >( inPacket );
auto marketMgr = pFw->get< MarketMgr >(); auto marketMgr = pFw->get< MarketMgr >();
@ -742,7 +742,7 @@ void Sapphire::Network::GameConnection::marketBoardRequestItemListings( Framewor
const Packets::FFXIVARR_PACKET_RAW& inPacket, const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListings >( inPacket ); const auto packet = WorldChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListings >( inPacket );
auto marketMgr = pFw->get< MarketMgr >(); auto marketMgr = pFw->get< MarketMgr >();

View file

@ -11,7 +11,7 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Ping response packet. * @brief The Ping response packet.
*/ */
class ActorControlPacket142 : public ZoneChannelPacket< FFXIVIpcActorControl142 > class ActorControlPacket142 : public WorldChannelPacket< FFXIVIpcActorControl142 >
{ {
public: public:
ActorControlPacket142( uint32_t actorId, ActorControlPacket142( uint32_t actorId,
@ -21,7 +21,7 @@ namespace Sapphire::Network::Packets::Server
uint32_t param3 = 0, uint32_t param3 = 0,
uint32_t param4 = 0, uint32_t param4 = 0,
uint32_t padding1 = 0 ) : uint32_t padding1 = 0 ) :
ZoneChannelPacket< FFXIVIpcActorControl142 >( actorId, actorId ) WorldChannelPacket< FFXIVIpcActorControl142 >( actorId, actorId )
{ {
initialize( category, param1, param2, param3, param4 ); initialize( category, param1, param2, param3, param4 );
}; };

View file

@ -12,7 +12,7 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Ping response packet. * @brief The Ping response packet.
*/ */
class ActorControlPacket143 : public ZoneChannelPacket< FFXIVIpcActorControl143 > class ActorControlPacket143 : public WorldChannelPacket< FFXIVIpcActorControl143 >
{ {
public: public:
ActorControlPacket143( uint32_t actorId, ActorControlPacket143( uint32_t actorId,
@ -23,7 +23,7 @@ namespace Sapphire::Network::Packets::Server
uint32_t param4 = 0, uint32_t param4 = 0,
uint32_t param5 = 0, uint32_t param5 = 0,
uint32_t padding1 = 0 ) : uint32_t padding1 = 0 ) :
ZoneChannelPacket< FFXIVIpcActorControl143 >( actorId, actorId ) WorldChannelPacket< FFXIVIpcActorControl143 >( actorId, actorId )
{ {
initialize( category, param1, param2, param3, param4, param5 ); initialize( category, param1, param2, param3, param4, param5 );
}; };

View file

@ -10,7 +10,7 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Ping response packet. * @brief The Ping response packet.
*/ */
class ActorControlPacket144 : public ZoneChannelPacket< FFXIVIpcActorControl144 > class ActorControlPacket144 : public WorldChannelPacket< FFXIVIpcActorControl144 >
{ {
public: public:
ActorControlPacket144( uint32_t actorId, ActorControlPacket144( uint32_t actorId,
@ -21,7 +21,7 @@ namespace Sapphire::Network::Packets::Server
uint32_t param4 = 0, uint32_t param4 = 0,
uint64_t targetId = 0, uint64_t targetId = 0,
uint32_t padding1 = 0 ) : uint32_t padding1 = 0 ) :
ZoneChannelPacket< FFXIVIpcActorControl144 >( actorId, actorId ) WorldChannelPacket< FFXIVIpcActorControl144 >( actorId, actorId )
{ {
initialize( category, param1, param2, param3, param4, targetId ); initialize( category, param1, param2, param3, param4, targetId );
}; };

View file

@ -12,11 +12,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Chat packet. * @brief The Chat packet.
*/ */
class ChatPacket : public ZoneChannelPacket< FFXIVIpcChat > class ChatPacket : public WorldChannelPacket< FFXIVIpcChat >
{ {
public: public:
ChatPacket( Entity::Player& player, Common::ChatType chatType, const std::string& msg ) : ChatPacket( Entity::Player& player, Common::ChatType chatType, const std::string& msg ) :
ZoneChannelPacket< FFXIVIpcChat >( player.getId(), player.getId() ) WorldChannelPacket< FFXIVIpcChat >( player.getId(), player.getId() )
{ {
initialize( player, chatType, msg ); initialize( player, chatType, msg );
}; };

View file

@ -10,7 +10,7 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The packet sent to play an event. * @brief The packet sent to play an event.
*/ */
class DirectorPlayScenePacket : public ZoneChannelPacket< FFXIVIpcDirectorPlayScene > class DirectorPlayScenePacket : public WorldChannelPacket< FFXIVIpcDirectorPlayScene >
{ {
public: public:
DirectorPlayScenePacket( uint32_t playerId, DirectorPlayScenePacket( uint32_t playerId,
@ -21,7 +21,7 @@ namespace Sapphire::Network::Packets::Server
uint8_t param3, uint8_t param3,
uint32_t param4 = 0, uint32_t param4 = 0,
uint32_t param5 = 0 ) : uint32_t param5 = 0 ) :
ZoneChannelPacket< FFXIVIpcDirectorPlayScene >( playerId, playerId ) WorldChannelPacket< FFXIVIpcDirectorPlayScene >( playerId, playerId )
{ {
initialize( actorId, eventId, scene, flags, param3, param4, param5 ); initialize( actorId, eventId, scene, flags, param3, param4, param5 );
}; };

View file

@ -11,11 +11,11 @@
namespace Sapphire::Network::Packets::Server namespace Sapphire::Network::Packets::Server
{ {
class EffectPacket : public ZoneChannelPacket< FFXIVIpcEffect > class EffectPacket : public WorldChannelPacket< FFXIVIpcEffect >
{ {
public: public:
EffectPacket( uint64_t sourceId, uint32_t targetId, uint32_t actionId ) : EffectPacket( uint64_t sourceId, uint32_t targetId, uint32_t actionId ) :
ZoneChannelPacket< FFXIVIpcEffect >( static_cast< uint32_t >( sourceId ), targetId ) WorldChannelPacket< FFXIVIpcEffect >( static_cast< uint32_t >( sourceId ), targetId )
{ {
m_data.effectCount = 0; m_data.effectCount = 0;
m_data.actionId = actionId; m_data.actionId = actionId;

View file

@ -9,14 +9,14 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The packet sent to finish an event. * @brief The packet sent to finish an event.
*/ */
class EventFinishPacket : public ZoneChannelPacket< FFXIVIpcEventFinish > class EventFinishPacket : public WorldChannelPacket< FFXIVIpcEventFinish >
{ {
public: public:
EventFinishPacket( uint32_t playerId, EventFinishPacket( uint32_t playerId,
uint32_t eventId, uint32_t eventId,
uint8_t param1, uint8_t param1,
uint32_t param3 ) : uint32_t param3 ) :
ZoneChannelPacket< FFXIVIpcEventFinish >( playerId, playerId ) WorldChannelPacket< FFXIVIpcEventFinish >( playerId, playerId )
{ {
initialize( eventId, param1, param3 ); initialize( eventId, param1, param3 );
}; };

View file

@ -10,7 +10,7 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The packet sent to play an event. * @brief The packet sent to play an event.
*/ */
class EventPlayPacket : public ZoneChannelPacket< FFXIVIpcEventPlay > class EventPlayPacket : public WorldChannelPacket< FFXIVIpcEventPlay >
{ {
public: public:
EventPlayPacket( uint32_t playerId, EventPlayPacket( uint32_t playerId,
@ -21,7 +21,7 @@ namespace Sapphire::Network::Packets::Server
uint8_t param3, uint8_t param3,
uint32_t param4 = 0, uint32_t param4 = 0,
uint32_t param5 = 0 ) : uint32_t param5 = 0 ) :
ZoneChannelPacket< FFXIVIpcEventPlay >( playerId, playerId ) WorldChannelPacket< FFXIVIpcEventPlay >( playerId, playerId )
{ {
initialize( actorId, eventId, scene, flags, param3, param4, param5 ); initialize( actorId, eventId, scene, flags, param3, param4, param5 );
}; };

View file

@ -10,7 +10,7 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The packet sent to start an event. * @brief The packet sent to start an event.
*/ */
class EventStartPacket : public ZoneChannelPacket< FFXIVIpcEventStart > class EventStartPacket : public WorldChannelPacket< FFXIVIpcEventStart >
{ {
public: public:
EventStartPacket( uint32_t playerId, EventStartPacket( uint32_t playerId,
@ -19,7 +19,7 @@ namespace Sapphire::Network::Packets::Server
uint8_t param1 = 0, uint8_t param1 = 0,
uint8_t param2 = 0, uint8_t param2 = 0,
uint32_t param3 = 0 ) : uint32_t param3 = 0 ) :
ZoneChannelPacket< FFXIVIpcEventStart >( playerId, playerId ) WorldChannelPacket< FFXIVIpcEventStart >( playerId, playerId )
{ {
initialize( actorId, eventId, param1, param2, param3 ); initialize( actorId, eventId, param1, param2, param3 );
}; };

View file

@ -16,11 +16,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Examine response packet. * @brief The Examine response packet.
*/ */
class ExaminePacket : public ZoneChannelPacket< FFXIVIpcExamine > class ExaminePacket : public WorldChannelPacket< FFXIVIpcExamine >
{ {
public: public:
ExaminePacket( Entity::Player& player, Entity::PlayerPtr pTarget ) : ExaminePacket( Entity::Player& player, Entity::PlayerPtr pTarget ) :
ZoneChannelPacket< FFXIVIpcExamine >( pTarget->getId(), player.getId() ) WorldChannelPacket< FFXIVIpcExamine >( pTarget->getId(), player.getId() )
{ {
initialize( player, pTarget ); initialize( player, pTarget );
}; };

View file

@ -11,11 +11,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The update model packet. * @brief The update model packet.
*/ */
class ModelEquipPacket : public ZoneChannelPacket< FFXIVIpcModelEquip > class ModelEquipPacket : public WorldChannelPacket< FFXIVIpcModelEquip >
{ {
public: public:
ModelEquipPacket( Entity::Player& player ) : ModelEquipPacket( Entity::Player& player ) :
ZoneChannelPacket< FFXIVIpcModelEquip >( player.getId(), player.getId() ) WorldChannelPacket< FFXIVIpcModelEquip >( player.getId(), player.getId() )
{ {
initialize( player ); initialize( player );
}; };

View file

@ -15,11 +15,11 @@ namespace Sapphire::Network::Packets::Server
* @brief The Client UI Initialization packet. This must be sent to the client * @brief The Client UI Initialization packet. This must be sent to the client
* once upon connection to configure the UI. * once upon connection to configure the UI.
*/ */
class MoveActorPacket : public ZoneChannelPacket< FFXIVIpcActorMove > class MoveActorPacket : public WorldChannelPacket< FFXIVIpcActorMove >
{ {
public: public:
MoveActorPacket( Entity::Chara& actor, uint8_t headRotation, uint8_t animationType, uint8_t state, uint16_t animationSpeed, uint8_t unknownRotation = 0 ) : MoveActorPacket( Entity::Chara& actor, uint8_t headRotation, uint8_t animationType, uint8_t state, uint16_t animationSpeed, uint8_t unknownRotation = 0 ) :
ZoneChannelPacket< FFXIVIpcActorMove >( actor.getId(), actor.getId() ) WorldChannelPacket< FFXIVIpcActorMove >( actor.getId(), actor.getId() )
{ {
initialize( actor, headRotation, animationType, state, animationSpeed, unknownRotation ); initialize( actor, headRotation, animationType, state, animationSpeed, unknownRotation );
}; };

View file

@ -17,11 +17,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The packet sent to spawn a player. * @brief The packet sent to spawn a player.
*/ */
class NpcSpawnPacket : public ZoneChannelPacket< FFXIVIpcNpcSpawn > class NpcSpawnPacket : public WorldChannelPacket< FFXIVIpcNpcSpawn >
{ {
public: public:
NpcSpawnPacket( Entity::BNpc& bnpc, Entity::Player& target ) : NpcSpawnPacket( Entity::BNpc& bnpc, Entity::Player& target ) :
ZoneChannelPacket< FFXIVIpcNpcSpawn >( bnpc.getId(), target.getId() ) WorldChannelPacket< FFXIVIpcNpcSpawn >( bnpc.getId(), target.getId() )
{ {
initialize( bnpc, target ); initialize( bnpc, target );
}; };

View file

@ -11,11 +11,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Ping response packet. * @brief The Ping response packet.
*/ */
class PingPacket : public ZoneChannelPacket< FFXIVIpcPing > class PingPacket : public WorldChannelPacket< FFXIVIpcPing >
{ {
public: public:
PingPacket( Entity::Player& player, int32_t inVal ) : PingPacket( Entity::Player& player, int32_t inVal ) :
ZoneChannelPacket< FFXIVIpcPing >( player.getId(), player.getId() ) WorldChannelPacket< FFXIVIpcPing >( player.getId(), player.getId() )
{ {
initialize( player, inVal ); initialize( player, inVal );
}; };

View file

@ -13,11 +13,11 @@ namespace Sapphire::Network::Packets::Server
* @brief The Client Player Initialization packet. This must be sent to the client * @brief The Client Player Initialization packet. This must be sent to the client
* once upon connection to configure the UI. * once upon connection to configure the UI.
*/ */
class PlayerSetupPacket : public ZoneChannelPacket< FFXIVIpcPlayerSetup > class PlayerSetupPacket : public WorldChannelPacket< FFXIVIpcPlayerSetup >
{ {
public: public:
PlayerSetupPacket( Entity::Player& player ) : PlayerSetupPacket( Entity::Player& player ) :
ZoneChannelPacket< FFXIVIpcPlayerSetup >( player.getId(), player.getId() ) WorldChannelPacket< FFXIVIpcPlayerSetup >( player.getId(), player.getId() )
{ {
initialize( player ); initialize( player );
}; };

View file

@ -15,11 +15,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The packet sent to spawn a player. * @brief The packet sent to spawn a player.
*/ */
class PlayerSpawnPacket : public ZoneChannelPacket< FFXIVIpcPlayerSpawn > class PlayerSpawnPacket : public WorldChannelPacket< FFXIVIpcPlayerSpawn >
{ {
public: public:
PlayerSpawnPacket( Entity::Player& player, Entity::Player& target ) : PlayerSpawnPacket( Entity::Player& player, Entity::Player& target ) :
ZoneChannelPacket< FFXIVIpcPlayerSpawn >( player.getId(), target.getId() ) WorldChannelPacket< FFXIVIpcPlayerSpawn >( player.getId(), target.getId() )
{ {
initialize( player, target ); initialize( player, target );
}; };

View file

@ -11,17 +11,17 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief Packet sent to set a players state, this impacts which actions he can perform. * @brief Packet sent to set a players state, this impacts which actions he can perform.
*/ */
class PlayerStateFlagsPacket : public ZoneChannelPacket< FFXIVIpcPlayerStateFlags > class PlayerStateFlagsPacket : public WorldChannelPacket< FFXIVIpcPlayerStateFlags >
{ {
public: public:
PlayerStateFlagsPacket( Entity::Player& player ) : PlayerStateFlagsPacket( Entity::Player& player ) :
ZoneChannelPacket< FFXIVIpcPlayerStateFlags >( player.getId(), player.getId() ) WorldChannelPacket< FFXIVIpcPlayerStateFlags >( player.getId(), player.getId() )
{ {
initialize( player.getStateFlags() ); initialize( player.getStateFlags() );
} }
PlayerStateFlagsPacket( Entity::Player& player, std::vector< Common::PlayerStateFlag > flags ) : PlayerStateFlagsPacket( Entity::Player& player, std::vector< Common::PlayerStateFlag > flags ) :
ZoneChannelPacket< FFXIVIpcPlayerStateFlags >( player.getId(), player.getId() ) WorldChannelPacket< FFXIVIpcPlayerStateFlags >( player.getId(), player.getId() )
{ {
uint8_t newFlags[12]; uint8_t newFlags[12];
memset( newFlags, 0, 12 ); memset( newFlags, 0, 12 );

View file

@ -11,12 +11,12 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief Packet to display a quest specific info message. * @brief Packet to display a quest specific info message.
*/ */
class QuestMessagePacket : public ZoneChannelPacket< FFXIVIpcQuestMessage > class QuestMessagePacket : public WorldChannelPacket< FFXIVIpcQuestMessage >
{ {
public: public:
QuestMessagePacket( Entity::ActorPtr pActor, uint32_t questId, int8_t msgId, QuestMessagePacket( Entity::ActorPtr pActor, uint32_t questId, int8_t msgId,
uint8_t type = 0, uint32_t var1 = 0, uint32_t var2 = 0 ) : uint8_t type = 0, uint32_t var1 = 0, uint32_t var2 = 0 ) :
ZoneChannelPacket< FFXIVIpcQuestMessage >( pActor->getId(), pActor->getId() ) WorldChannelPacket< FFXIVIpcQuestMessage >( pActor->getId(), pActor->getId() )
{ {
initialize( questId, msgId, type, var1, var2 ); initialize( questId, msgId, type, var1, var2 );
}; };

View file

@ -11,11 +11,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Ping response packet. * @brief The Ping response packet.
*/ */
class ServerNoticePacket : public ZoneChannelPacket< FFXIVIpcServerNotice > class ServerNoticePacket : public WorldChannelPacket< FFXIVIpcServerNotice >
{ {
public: public:
ServerNoticePacket( uint32_t playerId, const std::string& message ) : ServerNoticePacket( uint32_t playerId, const std::string& message ) :
ZoneChannelPacket< FFXIVIpcServerNotice >( playerId, playerId ) WorldChannelPacket< FFXIVIpcServerNotice >( playerId, playerId )
{ {
initialize( message ); initialize( message );
}; };

View file

@ -11,11 +11,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The Ping response packet. * @brief The Ping response packet.
*/ */
class UpdateHpMpTpPacket : public ZoneChannelPacket< FFXIVIpcUpdateHpMpTp > class UpdateHpMpTpPacket : public WorldChannelPacket< FFXIVIpcUpdateHpMpTp >
{ {
public: public:
UpdateHpMpTpPacket( Entity::Chara& actor ) : UpdateHpMpTpPacket( Entity::Chara& actor ) :
ZoneChannelPacket< FFXIVIpcUpdateHpMpTp >( actor.getId(), actor.getId() ) WorldChannelPacket< FFXIVIpcUpdateHpMpTp >( actor.getId(), actor.getId() )
{ {
initialize( actor ); initialize( actor );
}; };

View file

@ -12,11 +12,11 @@ namespace Sapphire::Network::Packets::Server
/** /**
* @brief The update inventory-slot packet. * @brief The update inventory-slot packet.
*/ */
class UpdateInventorySlotPacket : public ZoneChannelPacket< FFXIVIpcUpdateInventorySlot > class UpdateInventorySlotPacket : public WorldChannelPacket< FFXIVIpcUpdateInventorySlot >
{ {
public: public:
UpdateInventorySlotPacket( uint32_t playerId, uint8_t slot, uint16_t storageId, const Item& item ) : UpdateInventorySlotPacket( uint32_t playerId, uint8_t slot, uint16_t storageId, const Item& item ) :
ZoneChannelPacket< FFXIVIpcUpdateInventorySlot >( playerId, playerId ) WorldChannelPacket< FFXIVIpcUpdateInventorySlot >( playerId, playerId )
{ {
initialize( slot, storageId, item ); initialize( slot, storageId, item );
}; };

View file

@ -163,7 +163,7 @@ void Sapphire::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& pl
bool Sapphire::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) bool Sapphire::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId )
{ {
// check if the actor is an eobj and call its script if we have one // check if the actor is an eobj and call its script if we have one
auto zone = player.getCurrentZone(); auto zone = player.getCurrentTerritory();
if( auto eobj = zone->getEObj( actorId ) ) if( auto eobj = zone->getEObj( actorId ) )
{ {
auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventObjectScript >( eobj->getObjectId() ); auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventObjectScript >( eobj->getObjectId() );

View file

@ -286,7 +286,7 @@ void Sapphire::World::ServerMgr::mainLoop()
// if the player is in a zone, let the zone handler take care of his updates // if the player is in a zone, let the zone handler take care of his updates
// else do it here. // else do it here.
if( !session->getPlayer()->getCurrentZone() ) if( !session->getPlayer()->getCurrentTerritory() )
session->update(); session->update();
} }

View file

@ -76,7 +76,7 @@ void Sapphire::World::Session::close()
// do one last update to db // do one last update to db
m_pPlayer->updateSql(); m_pPlayer->updateSql();
// reset the zone, so the zone handler knows to remove the actor // reset the zone, so the zone handler knows to remove the actor
m_pPlayer->setCurrentZone( nullptr ); m_pPlayer->setCurrentTerritory( nullptr );
} }
} }

View file

@ -57,7 +57,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone
Logger::debug( "HousingInteriorTerritory::onPlayerZoneIn: Territory#{0}|{1}, Entity#{2}", Logger::debug( "HousingInteriorTerritory::onPlayerZoneIn: Territory#{0}|{1}, Entity#{2}",
getGuId(), getTerritoryTypeId(), player.getId() ); getGuId(), getTerritoryTypeId(), player.getId() );
auto indoorInitPacket = makeZonePacket< Server::FFXIVIpcHousingIndoorInitialize >( player.getId() ); auto indoorInitPacket = makeWorldPacket< Server::FFXIVIpcHousingIndoorInitialize >( player.getId() );
indoorInitPacket->data().u1 = 0; indoorInitPacket->data().u1 = 0;
indoorInitPacket->data().u2 = 0; indoorInitPacket->data().u2 = 0;
indoorInitPacket->data().u3 = 0; indoorInitPacket->data().u3 = 0;
@ -80,7 +80,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone
auto yardPacketTotal = static_cast< uint8_t >( 2 + pLand->getSize() ); auto yardPacketTotal = static_cast< uint8_t >( 2 + pLand->getSize() );
for( uint8_t yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) for( uint8_t yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ )
{ {
auto objectInitPacket = makeZonePacket< Server::FFXIVIpcHousingObjectInitialize >( player.getId() ); auto objectInitPacket = makeWorldPacket< Server::FFXIVIpcHousingObjectInitialize >( player.getId() );
memcpy( &objectInitPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); memcpy( &objectInitPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) );
if( isFcHouse ) if( isFcHouse )
@ -174,7 +174,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::spawnHousing
for( const auto& player : m_playerMap ) for( const auto& player : m_playerMap )
{ {
auto objectSpawnPkt = makeZonePacket< Server::FFXIVIpcHousingInternalObjectSpawn >( player.second->getId() ); auto objectSpawnPkt = makeWorldPacket< Server::FFXIVIpcHousingInternalObjectSpawn >( player.second->getId() );
objectSpawnPkt->data().containerId = containerType; objectSpawnPkt->data().containerId = containerType;
objectSpawnPkt->data().containerOffset = slot; objectSpawnPkt->data().containerOffset = slot;
@ -204,7 +204,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousin
if( player.second->getId() == sourcePlayer.getId() ) if( player.second->getId() == sourcePlayer.getId() )
continue; continue;
auto moveObjPkt = makeZonePacket< Server::FFXIVIpcHousingObjectMove >( player.second->getId() ); auto moveObjPkt = makeWorldPacket< Server::FFXIVIpcHousingObjectMove >( player.second->getId() );
moveObjPkt->data().itemRotation = obj.rotation; moveObjPkt->data().itemRotation = obj.rotation;
moveObjPkt->data().pos = obj.pos; moveObjPkt->data().pos = obj.pos;

View file

@ -167,7 +167,7 @@ void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player )
for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ )
{ {
auto housingObjectInit = makeZonePacket< FFXIVIpcHousingObjectInitialize >( player.getId() ); auto housingObjectInit = makeWorldPacket< FFXIVIpcHousingObjectInitialize >( player.getId() );
memset( &housingObjectInit->data().landIdent, 0xFF, sizeof( Common::LandIdent ) ); memset( &housingObjectInit->data().landIdent, 0xFF, sizeof( Common::LandIdent ) );
housingObjectInit->data().u1 = 0xFF; housingObjectInit->data().u1 = 0xFF;
housingObjectInit->data().packetNum = yardPacketNum; housingObjectInit->data().packetNum = yardPacketNum;
@ -182,7 +182,7 @@ void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player )
player.queuePacket( housingObjectInit ); player.queuePacket( housingObjectInit );
} }
auto landSetMap = makeZonePacket< FFXIVIpcLandSetMap >( player.getId() ); auto landSetMap = makeWorldPacket< FFXIVIpcLandSetMap >( player.getId() );
landSetMap->data().subdivision = isInSubdivision ? 1 : 2; landSetMap->data().subdivision = isInSubdivision ? 1 : 2;
uint8_t startIndex = isInSubdivision ? 30 : 0; uint8_t startIndex = isInSubdivision ? 30 : 0;
@ -198,7 +198,7 @@ void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player )
void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) void Sapphire::HousingZone::sendLandSet( Entity::Player& player )
{ {
auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); auto landsetInitializePacket = makeWorldPacket< FFXIVIpcLandSetInitialize >( player.getId() );
landsetInitializePacket->data().landIdent.wardNum = m_wardNum; landsetInitializePacket->data().landIdent.wardNum = m_wardNum;
//landsetInitializePacket->data().landIdent.landSetId = m_landSetId; //landsetInitializePacket->data().landIdent.landSetId = m_landSetId;
@ -247,7 +247,7 @@ void Sapphire::HousingZone::sendLandUpdate( uint8_t landId )
{ {
auto pPlayer = playerIt.second; auto pPlayer = playerIt.second;
auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); auto landUpdatePacket = makeWorldPacket< FFXIVIpcLandUpdate >( pPlayer->getId() );
landUpdatePacket->data().landIdent.landId = landId; landUpdatePacket->data().landIdent.landId = landId;
auto& landData = landUpdatePacket->data().land; auto& landData = landUpdatePacket->data().land;
@ -362,7 +362,7 @@ void Sapphire::HousingZone::spawnYardObject( uint8_t landId, uint16_t slotId, In
// spawn obj in zone // spawn obj in zone
for( const auto& player : m_playerMap ) for( const auto& player : m_playerMap )
{ {
auto packet = makeZonePacket< Server::FFXIVIpcYardObjectSpawn >( player.second->getId() ); auto packet = makeWorldPacket< Server::FFXIVIpcYardObjectSpawn >( player.second->getId() );
packet->data().landId = landId; packet->data().landId = landId;
packet->data().objectArray = static_cast< uint8_t >( slotId ); packet->data().objectArray = static_cast< uint8_t >( slotId );
@ -390,7 +390,7 @@ void Sapphire::HousingZone::updateYardObjectPos( Entity::Player& sourcePlayer, u
if( player.second->getId() == sourcePlayer.getId() ) if( player.second->getId() == sourcePlayer.getId() )
continue; continue;
auto packet = makeZonePacket< Server::FFXIVIpcHousingObjectMove >( player.second->getId() ); auto packet = makeWorldPacket< Server::FFXIVIpcHousingObjectMove >( player.second->getId() );
packet->data().itemRotation = item.getRot(); packet->data().itemRotation = item.getRot();
packet->data().pos = item.getPos(); packet->data().pos = item.getPos();

View file

@ -509,7 +509,7 @@ void Sapphire::Territory::updateSessions( uint64_t tickCount, bool changedWeathe
} }
// this session is not linked to this area anymore, remove it from zone session list // this session is not linked to this area anymore, remove it from zone session list
if( ( !pPlayer->getCurrentZone() ) || ( pPlayer->getCurrentZone() != shared_from_this() ) ) if( ( !pPlayer->getCurrentTerritory() ) || ( pPlayer->getCurrentTerritory() != shared_from_this() ) )
{ {
removeActor( pPlayer ); removeActor( pPlayer );
return; return;
@ -517,7 +517,7 @@ void Sapphire::Territory::updateSessions( uint64_t tickCount, bool changedWeathe
if( changedWeather ) if( changedWeather )
{ {
auto weatherChangePacket = makeZonePacket< FFXIVIpcWeatherChange >( pPlayer->getId() ); auto weatherChangePacket = makeWorldPacket< FFXIVIpcWeatherChange >( pPlayer->getId() );
weatherChangePacket->data().weatherId = static_cast< uint8_t >( m_currentWeather ); weatherChangePacket->data().weatherId = static_cast< uint8_t >( m_currentWeather );
weatherChangePacket->data().delay = 5.0f; weatherChangePacket->data().delay = 5.0f;
pPlayer->queuePacket( weatherChangePacket ); pPlayer->queuePacket( weatherChangePacket );
@ -527,7 +527,7 @@ void Sapphire::Territory::updateSessions( uint64_t tickCount, bool changedWeathe
pPlayer->getSession()->update(); pPlayer->getSession()->update();
// this session is not linked to this area anymore, remove it from zone session list // this session is not linked to this area anymore, remove it from zone session list
if( ( !pPlayer->getCurrentZone() ) || ( pPlayer->getCurrentZone() != shared_from_this() ) ) if( ( !pPlayer->getCurrentTerritory() ) || ( pPlayer->getCurrentTerritory() != shared_from_this() ) )
return; return;
} }
} }
@ -609,7 +609,7 @@ void Sapphire::Territory::updateCellActivity( uint32_t x, uint32_t y, int32_t ra
void Sapphire::Territory::updateActorPosition( Entity::Actor& actor ) void Sapphire::Territory::updateActorPosition( Entity::Actor& actor )
{ {
if( actor.getCurrentZone() != shared_from_this() ) if( actor.getCurrentTerritory() != shared_from_this() )
return; return;
//actor.checkInRangeActors(); //actor.checkInRangeActors();