mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 14:57:44 +00:00
minor cleanup of actionResultBuilder
This commit is contained in:
parent
f1cd218e85
commit
658d2fa7aa
3 changed files with 21 additions and 14 deletions
|
@ -124,19 +124,17 @@ std::shared_ptr< FFXIVPacketBase > ActionResultBuilder::createActionResultPacket
|
||||||
|
|
||||||
if( targetCount > 1 ) // use AoeEffect packets
|
if( targetCount > 1 ) // use AoeEffect packets
|
||||||
{
|
{
|
||||||
auto actionResult = std::make_shared< EffectPacket >( m_sourceChara->getId(), targetList[ 0 ]->getId(), m_actionId );
|
auto actionResult = makeEffectPacket( m_sourceChara->getId(), targetList[ 0 ]->getId(), m_actionId );
|
||||||
actionResult->setRotation( Common::Util::floatToUInt16Rot( m_sourceChara->getRot() ) );
|
actionResult->setRotation( Common::Util::floatToUInt16Rot( m_sourceChara->getRot() ) );
|
||||||
actionResult->setRequestId( m_requestId );
|
actionResult->setRequestId( m_requestId );
|
||||||
actionResult->setResultId( m_resultId );
|
actionResult->setResultId( m_resultId );
|
||||||
|
|
||||||
uint8_t targetIndex = 0;
|
uint8_t targetIndex = 0;
|
||||||
for( auto it = m_actorResultsMap.begin(); it != m_actorResultsMap.end(); ++it )
|
for( auto& [ actor, actorResultList ] : m_actorResultsMap )
|
||||||
{
|
{
|
||||||
// get all effect results for an actor
|
|
||||||
auto actorResultList = it->second;
|
|
||||||
|
|
||||||
if( it->first )
|
if( actor )
|
||||||
taskMgr.queueTask( World::makeActionIntegrityTask( m_resultId, it->first, actorResultList, 300 ) );
|
taskMgr.queueTask( World::makeActionIntegrityTask( m_resultId, actor, actorResultList, 300 ) );
|
||||||
|
|
||||||
for( auto& result : actorResultList )
|
for( auto& result : actorResultList )
|
||||||
{
|
{
|
||||||
|
@ -157,23 +155,21 @@ std::shared_ptr< FFXIVPacketBase > ActionResultBuilder::createActionResultPacket
|
||||||
else // use Effect for single target
|
else // use Effect for single target
|
||||||
{
|
{
|
||||||
uint32_t mainTargetId = targetList.empty() ? m_sourceChara->getId() : targetList[ 0 ]->getId();
|
uint32_t mainTargetId = targetList.empty() ? m_sourceChara->getId() : targetList[ 0 ]->getId();
|
||||||
auto actionResult = std::make_shared< EffectPacket1 >( m_sourceChara->getId(), mainTargetId, m_actionId );
|
auto actionResult = makeEffectPacket1( m_sourceChara->getId(), mainTargetId, m_actionId );
|
||||||
actionResult->setRotation( Common::Util::floatToUInt16Rot( m_sourceChara->getRot() ) );
|
actionResult->setRotation( Common::Util::floatToUInt16Rot( m_sourceChara->getRot() ) );
|
||||||
actionResult->setRequestId( m_requestId );
|
actionResult->setRequestId( m_requestId );
|
||||||
actionResult->setResultId( m_resultId );
|
actionResult->setResultId( m_resultId );
|
||||||
|
|
||||||
for( auto it = m_actorResultsMap.begin(); it != m_actorResultsMap.end(); ++it )
|
for( auto& [ actor, actorResultList ] : m_actorResultsMap )
|
||||||
{
|
{
|
||||||
// get all effect results for an actor
|
if( actor )
|
||||||
auto actorResultList = it->second;
|
taskMgr.queueTask( World::makeActionIntegrityTask( m_resultId, actor, actorResultList, 300 ) );
|
||||||
|
|
||||||
if( it->first )
|
|
||||||
taskMgr.queueTask( World::makeActionIntegrityTask( m_resultId, it->first, actorResultList, 300 ) );
|
|
||||||
|
|
||||||
for( auto& result : actorResultList )
|
for( auto& result : actorResultList )
|
||||||
{
|
{
|
||||||
auto effect = result->getCalcResultParam();
|
auto effect = result->getCalcResultParam();
|
||||||
if( result->getTarget() == m_sourceChara && result->getCalcResultParam().Type != Common::ActionEffectType::CALC_RESULT_TYPE_SET_STATUS_ME )
|
if( result->getTarget() == m_sourceChara &&
|
||||||
|
result->getCalcResultParam().Type != Common::ActionEffectType::CALC_RESULT_TYPE_SET_STATUS_ME )
|
||||||
actionResult->addSourceEffect( effect );
|
actionResult->addSourceEffect( effect );
|
||||||
else
|
else
|
||||||
actionResult->addTargetEffect( effect );
|
actionResult->addTargetEffect( effect );
|
||||||
|
|
|
@ -92,4 +92,10 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
|
||||||
uint8_t m_sourceEffectCount{ 0 };
|
uint8_t m_sourceEffectCount{ 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template< typename... Args >
|
||||||
|
std::shared_ptr< EffectPacket > makeEffectPacket( Args... args )
|
||||||
|
{
|
||||||
|
return std::make_shared< EffectPacket >( args... );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -83,5 +83,10 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
|
||||||
uint8_t m_sourceEffectCount{ 0 };
|
uint8_t m_sourceEffectCount{ 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template< typename... Args >
|
||||||
|
std::shared_ptr< EffectPacket1 > makeEffectPacket1( Args... args )
|
||||||
|
{
|
||||||
|
return std::make_shared< EffectPacket1 >( args... );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue