From abbf5c11fce4d9956ef67697291861e21ce3876b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 11 Jul 2018 20:42:49 +1000 Subject: [PATCH] sit now works correctly when doing /sit while sitting --- src/common/Exd/ExdDataGenerated.cpp | 1 + src/common/Exd/ExdDataGenerated.h | 1 + .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index c891d997..2f7b3af1 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -1426,6 +1426,7 @@ Core::Data::Emote::Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData name = exdData->getField< std::string >( row, 0 ); emoteCategory = exdData->getField< uint8_t >( row, 11 ); emoteMode = exdData->getField< uint8_t >( row, 12 ); + hasCancelEmote = exdData->getField< bool >( row, 15 ); textCommand = exdData->getField< int32_t >( row, 18 ); icon = exdData->getField< uint16_t >( row, 19 ); logMessageTargeted = exdData->getField< uint16_t >( row, 20 ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 41453f3a..a4a516bc 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -1604,6 +1604,7 @@ struct Emote uint16_t logMessageTargeted; uint16_t logMessageUntargeted; uint8_t emoteMode; + bool hasCancelEmote; Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 52aefcdf..4c5fae88 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -158,9 +158,10 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR player.setAutoattack( false ); player.setPersistentEmote( emoteData->emoteMode ); player.setStatus( Entity::Chara::ActorStatus::EmoteMode ); + player.sendToInRangeSet( boost::make_shared< ActorControlPacket142 >( player.getId(), ActorControlType::SetStatus, - static_cast< uint8_t >( Entity::Chara::ActorStatus::EmoteMode ) ), true ); + static_cast< uint8_t >( Entity::Chara::ActorStatus::EmoteMode ), emoteData->hasCancelEmote ? 1 : 0 ), true ); } player.emote( emoteId, targetId, isSilent );