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

Renamed the Util::Player namespace to Util::Packet. More cleanups and refactorings.

This commit is contained in:
Mordred 2023-03-07 10:25:55 +01:00
parent 819f2842b0
commit ca002dadd1
11 changed files with 181 additions and 169 deletions

View file

@ -23,7 +23,7 @@
#include "Network/PacketWrappers/ActorControlPacket.h"
#include "Network/PacketWrappers/ActorControlSelfPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/Util/PlayerUtil.h"
#include "Network/Util/PacketUtil.h"
#include <Logging/Logger.h>
@ -518,7 +518,7 @@ void Action::Action::buildEffects()
return;
}
Network::Util::Player::sendHudParam( *m_pSource->getAsPlayer() );
Network::Util::Packet::sendHudParam( *m_pSource->getAsPlayer() );
if( !hasLutEntry || m_hitActors.empty() )
{

View file

@ -18,7 +18,7 @@
#include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/NpcSpawnPacket.h"
#include "Network/PacketWrappers/MoveActorPacket.h"
#include "Network/Util/PlayerUtil.h"
#include "Network/Util/PacketUtil.h"
#include "Navi/NaviProvider.h"
@ -542,7 +542,7 @@ void Sapphire::Entity::BNpc::hateListUpdate( const Sapphire::Entity::CharaPtr& p
if( pChara->isPlayer() )
{
auto pPlayer = pChara->getAsPlayer();
Network::Util::Player::sendHateList( *pPlayer );
Network::Util::Packet::sendHateList( *pPlayer );
}
}
}

View file

@ -35,7 +35,7 @@
#include "Network/PacketWrappers/EffectPacket1.h"
#include "Network/PacketWrappers/InitZonePacket.h"
#include "Network/Util/PlayerUtil.h"
#include "Network/Util/PacketUtil.h"
#include "Action/Action.h"
@ -264,7 +264,7 @@ void Player::addOnlineStatus( OnlineStatus status )
setOnlineStatusMask( newFlags );
Network::Util::Player::sendOnlineStatus( *this );
Network::Util::Packet::sendOnlineStatus( *this );
}
void Player::addOnlineStatus( const std::vector< Common::OnlineStatus >& status )
@ -278,7 +278,7 @@ void Player::addOnlineStatus( const std::vector< Common::OnlineStatus >& status
setOnlineStatusMask( newFlags );
Network::Util::Player::sendOnlineStatus( *this );
Network::Util::Packet::sendOnlineStatus( *this );
}
void Player::removeOnlineStatus( OnlineStatus status )
@ -292,7 +292,7 @@ void Player::removeOnlineStatus( OnlineStatus status )
setOnlineStatusMask( newFlags );
setOnlineStatusCustomMask( newFlagsCustom );
Network::Util::Player::sendOnlineStatus( *this );
Network::Util::Packet::sendOnlineStatus( *this );
}
void Player::removeOnlineStatus( const std::vector< Common::OnlineStatus >& status )
@ -309,7 +309,7 @@ void Player::removeOnlineStatus( const std::vector< Common::OnlineStatus >& stat
setOnlineStatusMask( newFlags );
setOnlineStatusCustomMask( newFlagsCustom );
Network::Util::Player::sendOnlineStatus( *this );
Network::Util::Packet::sendOnlineStatus( *this );
}
void Player::calculateStats()
@ -457,7 +457,7 @@ void Player::registerAetheryte( uint8_t aetheryteId )
Util::valueToFlagByteIndexValue( aetheryteId, value, index );
m_aetheryte[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, LearnTeleport, aetheryteId, 1 );
Network::Util::Packet::sendActorControlSelf( *this, LearnTeleport, aetheryteId, 1 );
}
bool Player::isAetheryteRegistered( uint8_t aetheryteId ) const
@ -560,7 +560,7 @@ void Player::setRewardFlag( Common::UnlockEntry unlockId )
m_unlocks[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, SetRewardFlag, unlock, 1 );
Network::Util::Packet::sendActorControlSelf( *this, SetRewardFlag, unlock, 1 );
}
void Player::learnSong( uint8_t songId, uint32_t itemId )
@ -571,7 +571,7 @@ void Player::learnSong( uint8_t songId, uint32_t itemId )
m_orchestrion[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, ToggleOrchestrionUnlock, songId, 1, itemId );
Network::Util::Packet::sendActorControlSelf( *this, ToggleOrchestrionUnlock, songId, 1, itemId );
}
bool Player::hasReward( Common::UnlockEntry unlockId ) const
@ -608,7 +608,7 @@ void Player::gainExp( uint32_t amount )
{
setExp( 0 );
if( currentExp != 0 )
Network::Util::Player::sendActorControlSelf( *this, UpdateUiExp, currentClass, 0 );
Network::Util::Packet::sendActorControlSelf( *this, UpdateUiExp, currentClass, 0 );
return;
}
@ -632,8 +632,8 @@ void Player::gainExp( uint32_t amount )
else
setExp( currentExp + amount );
Network::Util::Player::sendActorControlSelf( *this, GainExpMsg, currentClass, amount );
Network::Util::Player::sendActorControlSelf( *this, UpdateUiExp, currentClass, getExp() );
Network::Util::Packet::sendActorControlSelf( *this, GainExpMsg, currentClass, amount );
Network::Util::Packet::sendActorControlSelf( *this, UpdateUiExp, currentClass, getExp() );
}
void Player::levelUp()
@ -642,7 +642,7 @@ void Player::levelUp()
m_mp = getMaxMp();
setLevel( getLevel() + 1 );
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, LevelUpEffect, static_cast< uint8_t >( getClass() ), getLevel(), getLevel() - 1 );
Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, LevelUpEffect, static_cast< uint8_t >( getClass() ), getLevel(), getLevel() - 1 );
auto& achvMgr = Common::Service< World::Manager::AchievementMgr >::ref();
achvMgr.progressAchievementByType< Common::Achievement::Type::Classjob >( *this, static_cast< uint32_t >( getClass() ) );
@ -717,9 +717,9 @@ void Player::setClassJob( Common::ClassJob classJob )
m_tp = 0;
Network::Util::Player::sendStatusUpdate( *this );
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, ClassJobChange, 4 );
Network::Util::Player::sendHudParam( *this );
Network::Util::Packet::sendStatusUpdate( *this );
Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, ClassJobChange, 4 );
Network::Util::Packet::sendHudParam( *this );
Service< World::Manager::MapMgr >::ref().updateQuests( *this );
}
@ -730,9 +730,9 @@ void Player::setLevel( uint8_t level )
m_classArray[ classJobIndex ] = level;
calculateStats();
Network::Util::Player::sendBaseParams( *this );
Network::Util::Player::sendHudParam( *this );
Network::Util::Player::sendStatusUpdate( *this );
Network::Util::Packet::sendBaseParams( *this );
Network::Util::Packet::sendHudParam( *this );
Network::Util::Packet::sendStatusUpdate( *this );
}
void Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
@ -745,7 +745,7 @@ void Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
m_classArray[ classJobIndex ] = level;
Network::Util::Player::sendActorControlSelf( *this, ClassJobUpdate, static_cast< uint8_t >( classjob ), getLevelForClass( classjob ) );
Network::Util::Packet::sendActorControlSelf( *this, ClassJobUpdate, static_cast< uint8_t >( classjob ), getLevelForClass( classjob ) );
auto& achvMgr = Common::Service< World::Manager::AchievementMgr >::ref();
achvMgr.progressAchievementByType< Common::Achievement::Type::Classjob >( *this, static_cast< uint32_t >( classjob ) );
@ -818,7 +818,7 @@ void Player::despawn( Entity::PlayerPtr pTarget )
Logger::debug( "Despawning {0} for {1}", getName(), pTarget->getName() );
pPlayer->freePlayerSpawnId( getId() );
Network::Util::Player::sendActorControlSelf( *this, WarpStart, 4, getId(), 1 );
Network::Util::Packet::sendActorControlSelf( *this, WarpStart, 4, getId(), 1 );
}
GameObjectPtr Player::lookupTargetById( uint64_t targetId )
@ -848,13 +848,13 @@ void Player::setGrandCompany( uint8_t gc )
m_gc = gc;
if( m_gcRank[ gc ] == 0 )
m_gcRank[ gc ] = 1;
Network::Util::Player::sendGrandCompany( *this );
Network::Util::Packet::sendGrandCompany( *this );
}
void Player::setGrandCompanyRankAt( uint8_t index, uint8_t rank )
{
m_gcRank[ index ] = rank;
Network::Util::Player::sendGrandCompany( *this );
Network::Util::Packet::sendGrandCompany( *this );
}
const Player::Condition& Player::getConditions() const
@ -882,7 +882,7 @@ void Player::setCondition( Common::PlayerCondition flag )
Util::valueToFlagByteIndexValue( iFlag, value, index );
m_condition[ index ] |= value;
Network::Util::Player::sendCondition( *this );
Network::Util::Packet::sendCondition( *this );
}
void Player::setConditions( const std::vector< Common::PlayerCondition >& flags )
@ -897,7 +897,7 @@ void Player::setConditions( const std::vector< Common::PlayerCondition >& flags
m_condition[ index ] |= value;
}
Network::Util::Player::sendCondition( *this );
Network::Util::Packet::sendCondition( *this );
}
void Player::removeCondition( Common::PlayerCondition flag )
@ -912,7 +912,7 @@ void Player::removeCondition( Common::PlayerCondition flag )
Util::valueToFlagByteIndexValue( iFlag, value, index );
m_condition[ index ] ^= value;
Network::Util::Player::sendCondition( *this );
Network::Util::Packet::sendCondition( *this );
}
void Player::update( uint64_t tickCount )
@ -941,7 +941,7 @@ void Player::freePlayerSpawnId( uint32_t actorId )
if( spawnId == m_actorSpawnIndexAllocator.getAllocFailId() )
return;
Network::Util::Player::sendDeletePlayer( *this, actorId, spawnId );
Network::Util::Packet::sendDeletePlayer( *this, actorId, spawnId );
}
Player::AetheryteList& Player::getAetheryteArray()
@ -953,7 +953,7 @@ Player::AetheryteList& Player::getAetheryteArray()
void Player::setHomepoint( uint8_t aetheryteId )
{
m_homePoint = aetheryteId;
Network::Util::Player::sendActorControlSelf( *this, SetHomepoint, aetheryteId );
Network::Util::Packet::sendActorControlSelf( *this, SetHomepoint, aetheryteId );
}
/*! get homepoint */
@ -1002,7 +1002,7 @@ void Player::unlockMount( uint32_t mountId )
m_mountGuide[ mount->data().MountOrder / 8 ] |= ( 1 << ( mount->data().MountOrder % 8 ) );
Network::Util::Player::sendActorControlSelf( *this, SetMountBitmask, mount->data().MountOrder, 1 );
Network::Util::Packet::sendActorControlSelf( *this, SetMountBitmask, mount->data().MountOrder, 1 );
}
void Player::unlockCompanion( uint32_t companionId )
@ -1019,7 +1019,7 @@ void Player::unlockCompanion( uint32_t companionId )
m_minionGuide[ index ] |= value;
Network::Util::Player::sendActorControlSelf( *this, LearnCompanion, companionId, 1 );
Network::Util::Packet::sendActorControlSelf( *this, LearnCompanion, companionId, 1 );
}
Player::MinionList& Player::getMinionGuideBitmask()
@ -1109,7 +1109,7 @@ void Player::hateListAdd( const BNpc& bnpc )
uint8_t hateId = m_freeHateSlotQueue.front();
m_freeHateSlotQueue.pop();
m_actorIdTohateSlotMap[ bnpc.getId() ] = hateId;
Network::Util::Player::sendHateList( *this );
Network::Util::Packet::sendHateList( *this );
}
}
@ -1124,7 +1124,7 @@ void Player::hateListRemove( const BNpc& bnpc )
uint8_t hateSlot = it->second;
m_freeHateSlotQueue.push( hateSlot );
m_actorIdTohateSlotMap.erase( it );
Network::Util::Player::sendHateList( *this );
Network::Util::Packet::sendHateList( *this );
return;
}
}
@ -1144,14 +1144,14 @@ const std::map< uint32_t, uint8_t >& Player::getActorIdToHateSlotMap()
void Player::onMobAggro( const BNpc& bnpc )
{
hateListAdd( bnpc );
Network::Util::Player::sendActorControl( *this, SetBattle, 1 );
Network::Util::Packet::sendActorControl( *this, SetBattle, 1 );
}
void Player::onMobDeaggro( const BNpc& bnpc )
{
hateListRemove( bnpc );
if( m_actorIdTohateSlotMap.empty() )
Network::Util::Player::sendActorControl( *this, SetBattle, 0 );
Network::Util::Packet::sendActorControl( *this, SetBattle, 0 );
}
bool Player::isLogin() const
@ -1193,7 +1193,7 @@ void Player::setTitle( uint16_t titleId )
return;
m_activeTitle = titleId;
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, SetTitle, titleId );
Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, SetTitle, titleId );
}
const Player::AchievementData& Player::getAchievementData() const
@ -1209,7 +1209,7 @@ void Player::setAchievementData( const Player::AchievementData& achievementData
void Player::setMaxGearSets( uint8_t amount )
{
m_equippedMannequin = amount;
Network::Util::Player::sendActorControlSelf( *this, SetMaxGearSets, m_equippedMannequin );
Network::Util::Packet::sendActorControlSelf( *this, SetMaxGearSets, m_equippedMannequin );
}
void Player::addGearSet()
@ -1234,7 +1234,7 @@ uint8_t Player::getMaxGearSets() const
void Player::setConfigFlags( uint16_t state )
{
m_configFlags = static_cast< uint8_t >( state );
Network::Util::Player::sendConfigFlags( *this );
Network::Util::Packet::sendConfigFlags( *this );
}
uint8_t Player::getConfigFlags() const
@ -1245,7 +1245,7 @@ uint8_t Player::getConfigFlags() const
void Player::setMount( uint32_t mountId )
{
m_mount = mountId;
Network::Util::Player::sendMount( *this );
Network::Util::Packet::sendMount( *this );
}
void Player::setCompanion( uint8_t id )
@ -1258,7 +1258,7 @@ void Player::setCompanion( uint8_t id )
m_companionId = id;
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, ToggleCompanion, id );
Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, ToggleCompanion, id );
}
uint8_t Player::getCurrentCompanion() const
@ -1418,7 +1418,7 @@ void Player::teleportQuery( uint16_t aetheryteId )
cost = std::min< uint16_t >( 999, cost );
bool insufficientGil = getCurrency( Common::CurrencyType::Gil ) < cost;
Network::Util::Player::sendActorControlSelf( *this, OnExecuteTelepo, insufficientGil ? 2 : 0, aetheryteId );
Network::Util::Packet::sendActorControlSelf( *this, OnExecuteTelepo, insufficientGil ? 2 : 0, aetheryteId );
if( !insufficientGil )
{
@ -1493,7 +1493,7 @@ void Player::dyeItemFromDyeingInfo()
insertInventoryItem( static_cast< Sapphire::Common::InventoryType >( itemToDyeContainer ), static_cast< uint16_t >( itemToDyeSlot ), itemToDye );
writeItem( itemToDye );
Network::Util::Player::sendActorControlSelf( *this, DyeMsg, itemToDye->getId(), shouldDye, invalidateGearSet );
Network::Util::Packet::sendActorControlSelf( *this, DyeMsg, itemToDye->getId(), shouldDye, invalidateGearSet );
}
void Player::setGlamouringInfo( uint32_t itemToGlamourContainer, uint32_t itemToGlamourSlot, uint32_t glamourBagContainer, uint32_t glamourBagSlot, bool shouldGlamour )
@ -1515,7 +1515,7 @@ void Player::glamourItemFromGlamouringInfo()
uint32_t glamourBagSlot = m_glamouringInfo.glamourBagSlot;
bool shouldGlamour = m_glamouringInfo.shouldGlamour;
Network::Util::Player::sendCondition( *this );
Network::Util::Packet::sendCondition( *this );
auto itemToGlamour = getItemAt( itemToGlamourContainer, itemToGlamourSlot );
auto glamourToUse = getItemAt( glamourBagContainer, glamourBagSlot );
@ -1547,9 +1547,9 @@ void Player::glamourItemFromGlamouringInfo()
writeItem( itemToGlamour );
if( shouldGlamour )
Network::Util::Player::sendActorControlSelf( *this, GlamourCastMsg, itemToGlamour->getId(), glamourToUse->getId(), invalidateGearSet );
Network::Util::Packet::sendActorControlSelf( *this, GlamourCastMsg, itemToGlamour->getId(), glamourToUse->getId(), invalidateGearSet );
else
Network::Util::Player::sendActorControlSelf( *this, GlamourRemoveMsg, itemToGlamour->getId(), invalidateGearSet );
Network::Util::Packet::sendActorControlSelf( *this, GlamourRemoveMsg, itemToGlamour->getId(), invalidateGearSet );
}
void Player::resetObjSpawnIndex()
@ -1565,7 +1565,7 @@ void Player::freeObjSpawnIndexForActorId( uint32_t actorId )
if( spawnId == m_objSpawnIndexAllocator.getAllocFailId() )
return;
Network::Util::Player::sendDeleteObject( *this, spawnId );
Network::Util::Packet::sendDeleteObject( *this, spawnId );
}
bool Player::isObjSpawnIndexValid( uint8_t index )
@ -1634,7 +1634,7 @@ void Player::updateHuntingLog( uint16_t id )
if( note1->data().Monster == id && logEntry.entries[ i - 1 ][ x ] < note->data().NeededKills[ x ] )
{
logEntry.entries[ i - 1 ][ x ]++;
Network::Util::Player::sendActorControlSelf( *this, HuntingLogEntryUpdate, monsterNoteId, x, logEntry.entries[ i - 1 ][ x ] );
Network::Util::Packet::sendActorControlSelf( *this, HuntingLogEntryUpdate, monsterNoteId, x, logEntry.entries[ i - 1 ][ x ] );
logChanged = true;
sectionChanged = true;
}
@ -1643,7 +1643,7 @@ void Player::updateHuntingLog( uint16_t id )
}
if( logChanged && sectionComplete && sectionChanged )
{
Network::Util::Player::sendActorControlSelf( *this, HuntingLogSectionFinish, monsterNoteId, i, 0 );
Network::Util::Packet::sendActorControlSelf( *this, HuntingLogSectionFinish, monsterNoteId, i, 0 );
gainExp( note->data().RewardExp );
}
if( !sectionComplete )
@ -1653,18 +1653,18 @@ void Player::updateHuntingLog( uint16_t id )
}
if( logChanged && allSectionsComplete )
{
Network::Util::Player::sendActorControlSelf( *this, HuntingLogRankFinish, 4 );
Network::Util::Packet::sendActorControlSelf( *this, HuntingLogRankFinish, 4 );
gainExp( rankRewards[ logEntry.rank ] );
if( logEntry.rank < 4 )
{
logEntry.rank++;
memset( logEntry.entries, 0, 40 );
Network::Util::Player::sendActorControlSelf( *this, HuntingLogRankUnlock, currentClassId, logEntry.rank + 1, 0 );
Network::Util::Packet::sendActorControlSelf( *this, HuntingLogRankUnlock, currentClassId, logEntry.rank + 1, 0 );
}
}
if( logChanged )
Network::Util::Player::sendHuntingLog( *this );
Network::Util::Packet::sendHuntingLog( *this );
}
void Player::setActiveLand( uint8_t land, uint8_t ward )
@ -1727,7 +1727,7 @@ void Player::resetRecastGroups()
m_recast[ i ] = 0.0f;
m_recastMax[ i ] = 0.0f;
}
Network::Util::Player::sendRecastGroups( *this );
Network::Util::Packet::sendRecastGroups( *this );
}
bool Player::checkAction()
@ -1826,7 +1826,7 @@ void Player::setFalling( bool state, const Common::FFXIVARR_POSITION3& pos, bool
// no mercy on hated players
takeDamage( damage );
}
Network::Util::Player::sendActorControl( getInRangePlayerIds( true ), *this, SetFallDamage, damage );
Network::Util::Packet::sendActorControl( getInRangePlayerIds( true ), *this, SetFallDamage, damage );
}
}
}

View file

@ -12,7 +12,9 @@
#include "Manager/PlayerMgr.h"
#include "Service.h"
#include <Network/PacketWrappers/RestingPacket.h>
#include <Network/Util/PacketUtil.h>
using namespace Sapphire;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::WorldPackets::Server;
@ -71,7 +73,7 @@ void Sapphire::Entity::Player::onTick()
bool sendUpdate = performResting();
if( sendUpdate )
server().queueForPlayers( getInRangePlayerIds( true ), std::make_shared< RestingPacket >( *this ) );
Network::Util::Packet::sendRestingUpdate( *this );
}
bool Sapphire::Entity::Player::performResting()

View file

@ -18,7 +18,7 @@
#include "Network/PacketWrappers/ActorControlSelfPacket.h"
#include "Network/PacketWrappers/UpdateInventorySlotPacket.h"
#include <Network/PacketDef/Zone/ServerZoneDef.h>
#include <Network/Util/PlayerUtil.h>
#include <Network/Util/PacketUtil.h>
#include "Manager/InventoryMgr.h"
#include "Manager/ItemMgr.h"
@ -225,10 +225,10 @@ void Sapphire::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, Item&
calculateItemLevel();
if( sendUpdate )
{
Network::Util::Player::sendEquip( *this );
Network::Util::Player::sendActorControl( *this, SetItemLevel, getItemLevel() );
Network::Util::Player::sendBaseParams( *this );
Network::Util::Player::sendHudParam( *this );
Network::Util::Packet::sendEquip( *this );
Network::Util::Packet::sendActorControl( *this, SetItemLevel, getItemLevel() );
Network::Util::Packet::sendBaseParams( *this );
Network::Util::Packet::sendHudParam( *this );
}
}
@ -247,10 +247,10 @@ void Sapphire::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, Ite
if( sendUpdate )
{
Network::Util::Player::sendEquip( *this );
Network::Util::Player::sendActorControl( *this, SetItemLevel, getItemLevel() );
Network::Util::Player::sendBaseParams( *this );
Network::Util::Player::sendHudParam( *this );
Network::Util::Packet::sendEquip( *this );
Network::Util::Packet::sendActorControl( *this, SetItemLevel, getItemLevel() );
Network::Util::Packet::sendBaseParams( *this );
Network::Util::Packet::sendHudParam( *this );
}
}

View file

@ -2,7 +2,7 @@
#include <Util/Util.h>
#include "AchievementMgr.h"
#include <Network/Util/PlayerUtil.h>
#include <Network/Util/PacketUtil.h>
#include <Network/CommonActorControl.h>
using namespace Sapphire;
@ -69,9 +69,9 @@ void AchievementMgr::unlockAchievement( Entity::Player& player, uint32_t achieve
// fire packets
player.setAchievementData( achvData );
Network::Util::Player::sendAchievementList( player );
Network::Util::Player::sendActorControl( player, AchievementComplete, achievementId );
Network::Util::Player::sendActorControl( player, AchievementObtainMsg, achievementId );
Network::Util::Packet::sendAchievementList( player );
Network::Util::Packet::sendActorControl( player, AchievementComplete, achievementId );
Network::Util::Packet::sendActorControl( player, AchievementObtainMsg, achievementId );
// check and add title to player
auto achvTitleId = achvExd->data().Title;

View file

@ -7,8 +7,6 @@
#include <Territory/Land.h>
#include <Manager/TerritoryMgr.h>
#include <Manager/AchievementMgr.h>
#include <Manager/PartyMgr.h>
#include <Manager/HousingMgr.h>
#include <Manager/QuestMgr.h>
@ -18,18 +16,8 @@
#include <Database/ZoneDbConnection.h>
#include <Database/DbWorkerPool.h>
#include <Network/GameConnection.h>
#include <Network/CommonActorControl.h>
#include <Network/PacketDef/Zone/ServerZoneDef.h>
#include <Network/PacketWrappers/ActorControlPacket.h>
#include <Network/PacketWrappers/ActorControlSelfPacket.h>
#include <Network/PacketWrappers/ActorControlTargetPacket.h>
#include <Network/PacketWrappers/InitZonePacket.h>
#include <Network/PacketWrappers/PlayerSetupPacket.h>
#include <Network/PacketWrappers/ServerNoticePacket.h>
#include <Network/PacketWrappers/ChatPacket.h>
#include <Network/PacketWrappers/HudParamPacket.h>
#include <Network/Util/PlayerUtil.h>
#include <Network/Util/PacketUtil.h>
#include <Actor/Player.h>
#include <Actor/BNpc.h>
@ -218,10 +206,8 @@ void PlayerMgr::onMobKill( Entity::Player& player, Entity::BNpc& bnpc )
scriptMgr.onBNpcKill( player, bnpc );
if( player.hasReward( Common::UnlockEntry::HuntingLog ) )
{
player.updateHuntingLog( bnpc.getBNpcNameId() );
}
}
void PlayerMgr::sendLoginMessage( Entity::Player& player )
{
@ -262,48 +248,48 @@ void PlayerMgr::onMoveZone( Sapphire::Entity::Player& player )
}
auto& teri = *pZone;
Network::Util::Player::sendLogin( player );
Network::Util::Packet::sendLogin( player );
player.sendInventory();
if( player.isLogin() )
{
Network::Util::Player::sendActorControlSelf( player, SetConfigFlags, player.getConfigFlags(), 1 );
Network::Util::Player::sendActorControlSelf( player, SetMaxGearSets, player.getMaxGearSets() );
Network::Util::Packet::sendActorControlSelf( player, SetConfigFlags, player.getConfigFlags(), 1 );
Network::Util::Packet::sendActorControlSelf( player, SetMaxGearSets, player.getMaxGearSets() );
}
// set flags, will be reset automatically by zoning ( only on client side though )
//setStateFlag( PlayerStateFlag::BetweenAreas );
//setStateFlag( PlayerStateFlag::BetweenAreas1 );
Network::Util::Player::sendHuntingLog( player );
Network::Util::Packet::sendHuntingLog( player );
if( player.isLogin() )
Network::Util::Player::sendPlayerSetup( player );
Network::Util::Packet::sendPlayerSetup( player );
Network::Util::Player::sendRecastGroups( player );
Network::Util::Player::sendBaseParams( player );
Network::Util::Player::sendActorControl( player, SetItemLevel, player.getItemLevel() );
Network::Util::Packet::sendRecastGroups( player );
Network::Util::Packet::sendBaseParams( player );
Network::Util::Packet::sendActorControl( player, SetItemLevel, player.getItemLevel() );
if( player.isLogin() )
{
Network::Util::Player::sendChangeClass( player );
Network::Util::Player::sendActorControl( player, 0x112, 0x24 ); // unknown
Network::Util::Player::sendContentAttainFlags( player );
Network::Util::Packet::sendChangeClass( player );
Network::Util::Packet::sendActorControl( player, 0x112, 0x24 ); // unknown
Network::Util::Packet::sendContentAttainFlags( player );
player.clearSoldItems();
}
housingMgr.sendLandFlags( player );
Network::Util::Player::sendInitZone( player );
Network::Util::Packet::sendInitZone( player );
if( player.isLogin() )
{
Network::Util::Player::sendDailyQuests( player );
Network::Util::Player::sendQuestRepeatFlags( player );
Network::Util::Packet::sendDailyQuests( player );
Network::Util::Packet::sendQuestRepeatFlags( player );
auto &questMgr = Common::Service< World::Manager::QuestMgr >::ref();
questMgr.sendQuestsInfo( player );
Network::Util::Player::sendGrandCompany( player );
Network::Util::Packet::sendGrandCompany( player );
}
teri.onPlayerZoneIn( player );
@ -357,22 +343,21 @@ void PlayerMgr::onUpdate( Entity::Player& player, uint64_t tickCount )
void PlayerMgr::sendServerNotice( Entity::Player& player, const std::string& message ) //Purple Text
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ServerNoticePacket >( player.getId(), message ) );
Network::Util::Packet::sendServerNotice( player, message );
}
void PlayerMgr::sendUrgent( Entity::Player& player, const std::string& message ) //Red Text
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ChatPacket >( player, Common::ChatType::ServerUrgent, message ) );
Network::Util::Packet::sendChat( player, Common::ChatType::ServerUrgent, message );
}
void PlayerMgr::sendDebug( Entity::Player& player, const std::string& message ) //Grey Text
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ChatPacket >( player, Common::ChatType::SystemMessage, message ) );
Network::Util::Packet::sendChat( player, Common::ChatType::SystemMessage, message );
}
void PlayerMgr::sendLogMessage( Entity::Player& player, uint32_t messageId, uint32_t param2, uint32_t param3,
uint32_t param4, uint32_t param5, uint32_t param6 )
{
server().queueForPlayer( player.getCharacterId(), makeActorControlTarget( player.getId(), ActorControlType::LogMsg, messageId,
param2, param3, param4, param5, param6 ) );
Network::Util::Packet::sendActorControlTarget( player, LogMsg, messageId, param2, param3, param4, param5, param6 );
}

View file

@ -17,7 +17,7 @@
#include "Network/PacketWrappers/ActorControlPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/MoveActorPacket.h"
#include "Network/Util/PlayerUtil.h"
#include "Network/Util/PacketUtil.h"
#include "Action/Action.h"
@ -388,17 +388,11 @@ void examineHandler( Sapphire::Entity::Player& player, uint32_t targetId )
return;
if( pPlayer->isActingAsGm() || pPlayer->getTerritoryTypeId() != player.getTerritoryTypeId() )
{
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ActorControlType::ExamineError ) );
}
Network::Util::Packet::sendActorControl( player, ExamineError );
else
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< InspectPacket >( player, pPlayer ) );
}
}
void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )
{
const auto packet = ZoneChannelPacket< FFXIVIpcClientTrigger >( inPacket );
@ -424,7 +418,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setStance( Stance::Passive );
player.setAutoattack( false );
}
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), 0, data.Arg0, 1 ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, ToggleWeapon, data.Arg0, 1 );
break;
}
case PacketCommand::AUTO_ATTACK: // Toggle auto-attack
@ -437,7 +431,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
else
player.setAutoattack( false );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), 1, data.Arg0, 1 ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, AutoAttack, data.Arg0, 1 );
break;
}
@ -494,7 +488,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
}
case PacketCommand::TITLE_LIST: // Get title list
{
Network::Util::Player::sendTitleList( player );
Network::Util::Packet::sendTitleList( player );
break;
}
case PacketCommand::SET_HOWTO: // Update howtos seen
@ -504,7 +498,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
}
case PacketCommand::SET_CUTSCENE:
{
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ActorControlType::SetCutsceneFlag, data.Arg0, 1 ) );
Network::Util::Packet::sendActorControl( player, SetCutsceneFlag, data.Arg0, 1 );
break;
}
case PacketCommand::EMOTE: // emote
@ -519,8 +513,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
if( !emoteData )
return;
server().queueForPlayers( player.getInRangePlayerIds(),
makeActorControlTarget( player.getId(), ActorControlType::Emote, emoteId, 0, isSilent ? 1 : 0, 0, targetId ) );
Network::Util::Packet::sendActorControlTarget( player.getInRangePlayerIds(), player, Emote, emoteId, 0, isSilent ? 1 : 0, 0, targetId );
bool isPersistent = emoteData->data().Mode != 0;
@ -531,9 +524,8 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setPersistentEmote( emoteData->data().Mode );
player.setStatus( ActorStatus::EmoteMode );
server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), ActorControlType::SetStatus,
static_cast< uint8_t >( ActorStatus::EmoteMode ),
emoteData->data().IsEndEmoteMode ? 1 : 0 ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds( true ), player, SetStatus, static_cast< uint8_t >( ActorStatus::EmoteMode ),
emoteData->data().IsEndEmoteMode ? 1 : 0 );
}
if( emoteData->data().IsAvailableWhenDrawn )
@ -545,7 +537,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
}
case PacketCommand::EMOTE_CANCEL: // emote
{
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), ActorControlType::EmoteInterrupt ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, EmoteModeInterrupt );
break;
}
case PacketCommand::EMOTE_MODE_CANCEL:
@ -556,8 +548,9 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setStatus( ActorStatus::Idle );
server().queueForPlayers( player.getInRangePlayerIds(), std::make_shared< MoveActorPacket >( player, player.getRot(), 2, 0, 0, 0x5A / 4 ) );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), ActorControlType::EmoteModeInterrupt ) );
server().queueForPlayers( player.getInRangePlayerIds(), makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, EmoteModeInterrupt );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds(), player, SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) );
}
break;
}
@ -565,7 +558,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
case PacketCommand::POSE_EMOTE_WORK: // reapply pose
{
player.setPose( static_cast< uint8_t >( data.Arg1 ) );
server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), SetPose, data.Arg0, data.Arg1 ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds( true ), player, SetPose, data.Arg0, data.Arg1 );
break;
}
case PacketCommand::POSE_EMOTE_CANCEL: // cancel pose
@ -604,12 +597,12 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
auto achievementId = data.Arg0;
auto& achvMgr = Common::Service< AchievementMgr >::ref();
auto achvProgress = achvMgr.getAchievementDataById( player, achievementId );
Network::Util::Player::sendActorControl( player, AchievementSetRate, achievementId, achvProgress.first, achvProgress.second );
Network::Util::Packet::sendActorControl( player, AchievementSetRate, achievementId, achvProgress.first, achvProgress.second );
break;
}
case PacketCommand::ACHIEVEMENT_REQUEST:
{
Network::Util::Player::sendAchievementList( player );
Network::Util::Packet::sendAchievementList( player );
break;
}
case PacketCommand::TELEPO_INQUIRY: // Teleport
@ -670,7 +663,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.setActiveLand( static_cast< uint8_t >( data.Arg0 ), hZone->getWardNum() );
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ShowBuildPresetUI, data.Arg0 ) );
Network::Util::Packet::sendActorControl( player, ShowBuildPresetUI, data.Arg0 );
break;
}
case PacketCommand::HOUSING_AUCTION_INFO:
@ -748,8 +741,7 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
uint8_t ward = ( data.Arg1 >> 16 ) & 0xFF;
uint8_t plot = ( data.Arg1 & 0xFF );
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), ShowHousingItemUI, 0, plot ) );
Network::Util::Packet::sendActorControl( player, ShowHousingItemUI, 0, plot );
//TODO: show item housing container
break;

View file

@ -29,6 +29,7 @@
#include "Network/PacketWrappers/ActorControlSelfPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/UpdateInventorySlotPacket.h"
#include "Network/Util/PacketUtil.h"
#include "Manager/DebugCommandMgr.h"
#include "Manager/MarketMgr.h"
@ -83,8 +84,7 @@ void Sapphire::Network::GameConnection::setProfileHandler( const Packets::FFXIVA
strcpy( searchInfoPacket->data().SearchComment, player.getSearchMessage() );
queueOutPacket( searchInfoPacket );
server().queueForPlayers( player.getInRangePlayerIds( true ), makeActorControl( player.getId(), SetStatusIcon,
static_cast< uint8_t >( player.getOnlineStatus() ) ) );
Network::Util::Packet::sendActorControl( player.getInRangePlayerIds( true ), player, SetStatusIcon, static_cast< uint8_t >( player.getOnlineStatus() ) );
}
void Sapphire::Network::GameConnection::getProfileHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player )
@ -236,7 +236,7 @@ void Sapphire::Network::GameConnection::moveHandler( const Packets::FFXIVARR_PAC
unknownRotation = 0x7F;
}
uint64_t currentTime = Util::getTimeMs();
uint64_t currentTime = Common::Util::getTimeMs();
player.m_lastMoveTime = currentTime;
player.m_lastMoveflag = animationType;

View file

@ -1,4 +1,4 @@
#include "PlayerUtil.h"
#include "PacketUtil.h"
#include <Exd/ExdData.h>
@ -18,23 +18,25 @@
#include <Network/PacketWrappers/RestingPacket.h>
#include <Network/PacketWrappers/PlayerSetupPacket.h>
#include <Network/PacketWrappers/InitZonePacket.h>
#include <Network/PacketWrappers/ServerNoticePacket.h>
#include <Network/PacketWrappers/ChatPacket.h>
using namespace Sapphire;
using namespace Sapphire::World::Manager;
using namespace Sapphire::Network;
using namespace Sapphire::Network::Util::Player;
using namespace Sapphire::Network::Util::Packet;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::WorldPackets::Server;
using namespace Sapphire::Network::ActorControl;
void Util::Player::sendConfigFlags( Entity::Player& player )
void Util::Packet::sendConfigFlags( Entity::Player& player )
{
auto paramPacket = makeZonePacket< FFXIVIpcConfig >( player.getId() );
paramPacket->data().flag = player.getConfigFlags();
server().queueForPlayers( player.getInRangePlayerIds( true ), paramPacket );
}
void Util::Player::sendOnlineStatus( Entity::Player& player )
void Util::Packet::sendOnlineStatus( Entity::Player& player )
{
auto statusPacket = makeZonePacket< FFXIVIpcSetOnlineStatus >( player.getId() );
statusPacket->data().onlineStatusFlags = player.getFullOnlineStatusMask();
@ -44,7 +46,7 @@ void Util::Player::sendOnlineStatus( Entity::Player& player )
makeActorControl( player.getId(), SetStatusIcon, static_cast< uint8_t >( player.getOnlineStatus() ) ) );
}
void Util::Player::sendBaseParams( Entity::Player& player )
void Util::Packet::sendBaseParams( Entity::Player& player )
{
std::array< uint32_t, 50 > statParams{};
std::fill( std::begin( statParams ), std::end( statParams ), 0 );
@ -67,13 +69,13 @@ void Util::Player::sendBaseParams( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), statPacket );
}
void Util::Player::sendHudParam( Entity::Player& player )
void Util::Packet::sendHudParam( Entity::Player& player )
{
auto hudParamPacket = makeHudParam( player );
server().queueForPlayer( player.getCharacterId(), hudParamPacket );
}
void Util::Player::sendStatusUpdate( Entity::Player& player )
void Util::Packet::sendStatusUpdate( Entity::Player& player )
{
auto playerStatusUpdate = makeZonePacket< FFXIVIpcPlayerStatusUpdate >( player.getId() );
playerStatusUpdate->data().ClassJob = static_cast< uint8_t >( player.getClass() );
@ -85,7 +87,7 @@ void Util::Player::sendStatusUpdate( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), playerStatusUpdate );
}
void Util::Player::sendHuntingLog( Entity::Player& player )
void Util::Packet::sendHuntingLog( Entity::Player& player )
{
auto& exdData = Common::Service< Data::ExdData >::ref();
for( auto entryCount = 0; entryCount < Common::ARRSIZE_MONSTERNOTE; ++entryCount )
@ -128,37 +130,49 @@ void Util::Player::sendHuntingLog( Entity::Player& player )
}
}
void Util::Player::sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3,
void Util::Packet::sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3,
uint32_t param4, uint32_t param5 )
{
server().queueForPlayer( player.getCharacterId(), makeActorControlSelf( player.getId(), category, param1, param2, param3, param4, param5 ) );
}
void Util::Player::sendActorControlSelf( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
void Util::Packet::sendActorControlSelf( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
uint32_t param2, uint32_t param3, uint32_t param4, uint32_t param5 )
{
server().queueForPlayers( characterIds, makeActorControlSelf( player.getId(), category, param1, param2, param3, param4, param5 ) );
}
void Util::Player::sendActorControl( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4 )
void Util::Packet::sendActorControl( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4 )
{
server().queueForPlayer( player.getCharacterId(), makeActorControl( player.getId(), category, param1, param2, param3, param4 ) );
}
void Util::Player::sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
void Util::Packet::sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
uint32_t param2, uint32_t param3, uint32_t param4 )
{
server().queueForPlayers( characterIds, makeActorControl( player.getId(), category, param1, param2, param3, param4 ) );
}
void Util::Player::sendTitleList( Entity::Player& player )
void Util::Packet::sendActorControlTarget( Entity::Player& player, uint16_t category, uint32_t param1, uint32_t param2, uint32_t param3,
uint32_t param4, uint32_t param5, uint32_t param6 )
{
server().queueForPlayer( player.getCharacterId(), makeActorControlTarget( player.getId(), category, param1, param2, param3, param4, param5, param6 ) );
}
void Util::Packet::sendActorControlTarget( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1,
uint32_t param2, uint32_t param3, uint32_t param4, uint32_t param5, uint32_t param6 )
{
server().queueForPlayers( characterIds, makeActorControlTarget( player.getId(), category, param1, param2, param3, param4, param5, param6 ) );
}
void Util::Packet::sendTitleList( Entity::Player& player )
{
auto titleListPacket = makeZonePacket< FFXIVIpcTitleList >( player.getId() );
memcpy( titleListPacket->data().TitleFlagsArray, player.getTitleList().data(), sizeof( titleListPacket->data().TitleFlagsArray ) );
server().queueForPlayer( player.getCharacterId(), titleListPacket );
}
void Util::Player::sendGrandCompany( Entity::Player& player )
void Util::Packet::sendGrandCompany( Entity::Player& player )
{
auto gcAffPacket = makeZonePacket< FFXIVIpcGrandCompany >( player.getId() );
gcAffPacket->data().ActiveCompanyId = player.getGc();
@ -168,7 +182,7 @@ void Util::Player::sendGrandCompany( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), gcAffPacket );
}
void Util::Player::sendDeletePlayer( Entity::Player& player, uint32_t actorId, uint8_t spawnIndex )
void Util::Packet::sendDeletePlayer( Entity::Player& player, uint32_t actorId, uint8_t spawnIndex )
{
auto freeActorSpawnPacket = makeZonePacket< FFXIVIpcActorFreeSpawn >( player.getId() );
freeActorSpawnPacket->data().actorId = actorId;
@ -176,14 +190,14 @@ void Util::Player::sendDeletePlayer( Entity::Player& player, uint32_t actorId, u
server().queueForPlayer( player.getCharacterId(), freeActorSpawnPacket );
}
void Util::Player::sendDeleteObject( Entity::Player& player, uint8_t spawnIndex )
void Util::Packet::sendDeleteObject( Entity::Player& player, uint8_t spawnIndex )
{
auto freeObjectSpawnPacket = makeZonePacket< FFXIVIpcDeleteObject >( player.getId() );
freeObjectSpawnPacket->data().Index = spawnIndex;
server().queueForPlayer( player.getCharacterId(), freeObjectSpawnPacket );
}
void Util::Player::sendHateList( Entity::Player& player )
void Util::Packet::sendHateList( Entity::Player& player )
{
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
@ -211,7 +225,7 @@ void Util::Player::sendHateList( Entity::Player& player )
if( hateValue == 0 )
continue;
auto hatePercent = ( hateValue / static_cast< float >( pBNpc->hateListGetHighestValue() ) ) * 100.f;
auto hatePercent = ( static_cast< float >( hateValue ) / static_cast< float >( pBNpc->hateListGetHighestValue() ) ) * 100.f;
hateListPacket->data().List[ i ].Id = player.getId();
hateListPacket->data().List[ i ].Value = hateValue;
@ -223,36 +237,36 @@ void Util::Player::sendHateList( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), { hateListPacket, hateRankPacket } );
}
void Util::Player::sendMount( Entity::Player& player )
void Util::Packet::sendMount( Entity::Player& player )
{
auto mountId = player.getCurrentMount();
auto inRangePlayerIds = player.getInRangePlayerIds( true );
if( mountId != 0 )
{
Network::Util::Player::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Mounted ) );
Network::Util::Player::sendActorControlSelf( inRangePlayerIds, player, 0x39e, 12 );
Network::Util::Packet::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Mounted ) );
Network::Util::Packet::sendActorControlSelf( inRangePlayerIds, player, 0x39e, 12 );
}
else
{
Network::Util::Player::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) );
Network::Util::Player::sendActorControlSelf( inRangePlayerIds, player, Dismount, 1 );
Network::Util::Packet::sendActorControl( inRangePlayerIds, player, SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) );
Network::Util::Packet::sendActorControlSelf( inRangePlayerIds, player, Dismount, 1 );
}
auto mountPacket = makeZonePacket< FFXIVIpcMount >( player.getId() );
mountPacket->data().id = mountId;
server().queueForPlayers( inRangePlayerIds, mountPacket );
}
void Util::Player::sendEquip( Entity::Player& player )
void Util::Packet::sendEquip( Entity::Player& player )
{
server().queueForPlayers( player.getInRangePlayerIds( true ), std::make_shared< ModelEquipPacket >( player ) );
}
void Util::Player::sendCondition( Entity::Player& player )
void Util::Packet::sendCondition( Entity::Player& player )
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ConditionPacket >( player ) );
}
void Util::Player::sendRecastGroups( Entity::Player& player )
void Util::Packet::sendRecastGroups( Entity::Player& player )
{
const auto& recastGroups = player.getRecastGroups();
const auto& recastGroupsMax = player.getRecastGroupsMax();
@ -262,7 +276,7 @@ void Util::Player::sendRecastGroups( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), recastGroupPaket );
}
void Util::Player::sendAchievementList( Entity::Player& player )
void Util::Packet::sendAchievementList( Entity::Player& player )
{
auto achvData = player.getAchievementData();
auto achvPacket = makeZonePacket< FFXIVIpcAchievement >( player.getId() );
@ -271,24 +285,24 @@ void Util::Player::sendAchievementList( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), achvPacket );
}
void Util::Player::sendRestingUpdate( Entity::Player& player )
void Util::Packet::sendRestingUpdate( Entity::Player& player )
{
server().queueForPlayers( player.getInRangePlayerIds( true ), std::make_shared< RestingPacket >( player ) );
}
void Util::Player::sendLogin( Entity::Player& player )
void Util::Packet::sendLogin( Entity::Player& player )
{
auto initPacket = makeZonePacket< FFXIVIpcLogin >( player.getId() );
initPacket->data().playerActorId = player.getId();
server().queueForPlayer( player.getCharacterId(), initPacket );
}
void Util::Player::sendPlayerSetup( Entity::Player& player )
void Util::Packet::sendPlayerSetup( Entity::Player& player )
{
server().queueForPlayer( player.getCharacterId(), makePlayerSetup( player ) );
}
void Util::Player::sendChangeClass( Entity::Player& player )
void Util::Packet::sendChangeClass( Entity::Player& player )
{
auto classInfo = makeZonePacket< FFXIVIpcChangeClass >( player.getId() );
classInfo->data().ClassJob = static_cast< uint8_t >( player.getClass() );
@ -298,7 +312,7 @@ void Util::Player::sendChangeClass( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), classInfo );
}
void Util::Player::sendContentAttainFlags( Entity::Player& player )
void Util::Packet::sendContentAttainFlags( Entity::Player& player )
{
// todo - fill with actual data from player
auto contentFinderList = makeZonePacket< FFXIVIpcContentAttainFlags >( player.getId() );
@ -306,7 +320,7 @@ void Util::Player::sendContentAttainFlags( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), contentFinderList );
}
void Util::Player::sendInitZone( Entity::Player& player )
void Util::Packet::sendInitZone( Entity::Player& player )
{
auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref();
auto pZone = teriMgr.getTerritoryByGuId( player.getTerritoryId() );
@ -319,12 +333,22 @@ void Util::Player::sendInitZone( Entity::Player& player )
server().queueForPlayer( player.getCharacterId(), makeInitZone( player, teri ) );
}
void Util::Player::sendDailyQuests( Entity::Player& player )
void Util::Packet::sendDailyQuests( Entity::Player& player )
{
server().queueForPlayer( player.getCharacterId(), makeZonePacket< FFXIVIpcDailyQuests >( player.getId() ) );
}
void Util::Player::sendQuestRepeatFlags( Entity::Player& player )
void Util::Packet::sendQuestRepeatFlags( Entity::Player& player )
{
server().queueForPlayer( player.getCharacterId(), makeZonePacket< FFXIVIpcQuestRepeatFlags >( player.getId() ) );
}
void Util::Packet::sendServerNotice( Entity::Player& player, const std::string& message )
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ServerNoticePacket >( player.getId(), message ) );
}
void Util::Packet::sendChat( Entity::Player& player, Common::ChatType chatType, const std::string& message )
{
server().queueForPlayer( player.getCharacterId(), std::make_shared< ChatPacket >( player, chatType, message ) );
}

View file

@ -5,7 +5,7 @@
#include <Actor/Player.h>
#include "Forwards.h"
namespace Sapphire::Network::Util::Player
namespace Sapphire::Network::Util::Packet
{
void sendConfigFlags( Entity::Player& player );
void sendOnlineStatus( Entity::Player& player );
@ -48,6 +48,10 @@ namespace Sapphire::Network::Util::Player
void sendDailyQuests( Entity::Player& player );
void sendQuestRepeatFlags( Entity::Player& player );
void sendServerNotice( Entity::Player& player, const std::string& message );
void sendChat( Entity::Player& player, Common::ChatType chatType, const std::string& message );
void sendActorControlSelf( Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0, uint32_t param3 = 0,
uint32_t param4 = 0, uint32_t param5 = 0 );
@ -59,4 +63,9 @@ namespace Sapphire::Network::Util::Player
void sendActorControl( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0,
uint32_t param3 = 0, uint32_t param4 = 0 );
void sendActorControlTarget( Entity::Player& player, uint16_t category, uint32_t param1 = 0, uint32_t param2 = 0, uint32_t param3 = 0,
uint32_t param4 = 0, uint32_t param5 = 0, uint32_t param6 = 0 );
void sendActorControlTarget( const std::set< uint64_t >& characterIds, Entity::Player& player, uint16_t category, uint32_t param1 = 0,
uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, uint32_t param5 = 0, uint32_t param6 = 0 );
}