1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-24 18:47:45 +00:00

[wip] Implement persistent emote cancelling

(cherry picked from commit 53bfb43a532d98f7167596fb519038c72378e70c)
This commit is contained in:
Lucy 2023-01-21 02:12:00 +01:00
parent e768442f00
commit 144911d7c7
2 changed files with 17 additions and 8 deletions

View file

@ -148,6 +148,8 @@ namespace Sapphire::Network::ActorControl
Emote = 0x122, Emote = 0x122,
EmoteInterrupt = 0x123, EmoteInterrupt = 0x123,
EmoteModeInterrupt = 0x124,
EmoteModeInterruptNonImmediate = 0x125,
SetPose = 0x127, SetPose = 0x127,

View file

@ -15,6 +15,7 @@
#include "Network/PacketWrappers/InspectPacket.h" #include "Network/PacketWrappers/InspectPacket.h"
#include "Network/PacketWrappers/ActorControlPacket.h" #include "Network/PacketWrappers/ActorControlPacket.h"
#include "Network/PacketWrappers/ActorControlTargetPacket.h" #include "Network/PacketWrappers/ActorControlTargetPacket.h"
#include "Network/PacketWrappers/MoveActorPacket.h"
#include "Action/Action.h" #include "Action/Action.h"
@ -548,15 +549,21 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
player.sendToInRangeSet( makeActorControl( player.getId(), ActorControlType::EmoteInterrupt ) ); player.sendToInRangeSet( makeActorControl( player.getId(), ActorControlType::EmoteInterrupt ) );
break; break;
} }
/* case PacketCommand::PersistentEmoteCancel: // cancel persistent emote case PacketCommand::EMOTE_MODE_CANCEL:
{ {
if( player.getPersistentEmote() > 0 )
{
auto movePacket = std::make_shared< MoveActorPacket >( player, player.getRot(), 2, 0, 0, 0x5A / 4 );
player.sendToInRangeSet( movePacket );
player.setPersistentEmote( 0 ); player.setPersistentEmote( 0 );
player.emoteInterrupt(); player.sendToInRangeSet( makeActorControl( player.getId(), ActorControlType::EmoteModeInterrupt ) );
player.setStatus( ActorStatus::Idle ); player.setStatus( ActorStatus::Idle );
auto pSetStatusPacket = makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) );
player.sendToInRangeSet( pSetStatusPacket ); player.sendToInRangeSet( makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( ActorStatus::Idle ) ) );
}
break; break;
}*/ }
case PacketCommand::POSE_EMOTE_CONFIG: // change pose case PacketCommand::POSE_EMOTE_CONFIG: // change pose
case PacketCommand::POSE_EMOTE_WORK: // reapply pose case PacketCommand::POSE_EMOTE_WORK: // reapply pose
{ {