mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
Merge pull request #15118 from Golrag/SpellClick
Core/PacketIO: CMSG_SPELL_CLICK
This commit is contained in:
@@ -484,13 +484,10 @@ void WorldSession::HandleSelfResOpcode(WorldPackets::Spells::SelfRes& /*packet*/
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandleSpellClick(WorldPacket& recvData)
|
||||
void WorldSession::HandleSpellClick(WorldPackets::Spells::SpellClick& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
recvData >> guid;
|
||||
|
||||
// this will get something not in world. crash
|
||||
Creature* unit = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, guid);
|
||||
Creature* unit = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, packet.SpellClickUnitGuid);
|
||||
|
||||
if (!unit)
|
||||
return;
|
||||
|
||||
@@ -739,3 +739,9 @@ WorldPacket const* WorldPackets::Spells::MirrorImageCreatureData::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Spells::SpellClick::Read()
|
||||
{
|
||||
_worldPacket >> SpellClickUnitGuid;
|
||||
TryAutoDismount = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
@@ -738,6 +738,17 @@ namespace WorldPackets
|
||||
ObjectGuid UnitGUID;
|
||||
uint32 DisplayID = 0;
|
||||
};
|
||||
|
||||
class SpellClick final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SpellClick(WorldPacket&& packet) : ClientPacket(CMSG_SPELL_CLICK, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid SpellClickUnitGuid;
|
||||
bool TryAutoDismount = false;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -755,7 +755,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SORT_BAGS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SORT_BANK_BAGS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SORT_REAGENT_BANK_BAGS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SPELL_CLICK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSpellClick );
|
||||
DEFINE_HANDLER(CMSG_SPELL_CLICK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Spells::SpellClick, &WorldSession::HandleSpellClick);
|
||||
DEFINE_HANDLER(CMSG_SPIRIT_HEALER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::SpiritHealerActivate, &WorldSession::HandleSpiritHealerActivate);
|
||||
DEFINE_HANDLER(CMSG_SPLIT_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Item::SplitItem, &WorldSession::HandleSplitItemOpcode);
|
||||
DEFINE_HANDLER(CMSG_STAND_STATE_CHANGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::StandStateChange, &WorldSession::HandleStandStateChangeOpcode);
|
||||
|
||||
@@ -500,6 +500,7 @@ namespace WorldPackets
|
||||
class UnlearnSkill;
|
||||
class SelfRes;
|
||||
class GetMirrorImageData;
|
||||
class SpellClick;
|
||||
}
|
||||
|
||||
namespace Talent
|
||||
@@ -1487,7 +1488,7 @@ class WorldSession
|
||||
void HandleTransmogrifyItems(WorldPacket& recvData);
|
||||
|
||||
// Miscellaneous
|
||||
void HandleSpellClick(WorldPacket& recvData);
|
||||
void HandleSpellClick(WorldPackets::Spells::SpellClick& packet);
|
||||
void HandleMirrorImageDataRequest(WorldPackets::Spells::GetMirrorImageData& packet);
|
||||
void HandleRemoveGlyph(WorldPacket& recvData);
|
||||
void HandleGuildSetFocusedAchievement(WorldPackets::Achievement::GuildSetFocusedAchievement& setFocusedAchievement);
|
||||
|
||||
Reference in New Issue
Block a user