diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Server/Packets/GameObjectPackets.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Packets/GameObjectPackets.h | 10 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
4 files changed, 21 insertions, 4 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 99a8e7107fe..925c0bf76fe 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -52,6 +52,7 @@ #include "BattlefieldMgr.h" #include "Battleground.h" #include "Chat.h" +#include "GameObjectPackets.h" Object::Object() { @@ -2358,9 +2359,9 @@ void WorldObject::SendMessageToSet(WorldPacket const* data, Player const* skippe void WorldObject::SendObjectDeSpawnAnim(ObjectGuid guid) { - WorldPacket data(SMSG_GAME_OBJECT_DESPAWN, 8); - data << guid; - SendMessageToSet(&data, true); + WorldPackets::GameObject::GameObjectDespawn packet; + packet.ObjectGUID = guid; + SendMessageToSet(packet.Write(), true); } void WorldObject::SetMap(Map* map) diff --git a/src/server/game/Server/Packets/GameObjectPackets.cpp b/src/server/game/Server/Packets/GameObjectPackets.cpp index 231b977a63c..a4e8ea5d8bd 100644 --- a/src/server/game/Server/Packets/GameObjectPackets.cpp +++ b/src/server/game/Server/Packets/GameObjectPackets.cpp @@ -26,3 +26,9 @@ void WorldPackets::GameObject::GameObjReportUse::Read() { _worldPacket >> Guid; } + +WorldPacket const* WorldPackets::GameObject::GameObjectDespawn::Write() +{ + _worldPacket << ObjectGUID; + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/GameObjectPackets.h b/src/server/game/Server/Packets/GameObjectPackets.h index a18552052a2..79ae024b49e 100644 --- a/src/server/game/Server/Packets/GameObjectPackets.h +++ b/src/server/game/Server/Packets/GameObjectPackets.h @@ -46,6 +46,16 @@ namespace WorldPackets ObjectGuid Guid; }; + + class GameObjectDespawn final : public ServerPacket + { + public: + GameObjectDespawn() : ServerPacket(SMSG_GAME_OBJECT_DESPAWN, 16) { } + + WorldPacket const* Write() override; + + ObjectGuid ObjectGUID; + }; } } #endif // GOPackets_h__ diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 25755dbaf8e..72ff0ba35ac 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1098,7 +1098,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_FRIEND_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_CUSTOM_ANIM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_DESPAWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_DESPAWN, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_RESET_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); |