diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-09-16 17:06:24 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-09-16 17:06:24 +0200 |
| commit | 225bbe7f72ed896668e367d416975cdd1f146228 (patch) | |
| tree | 738cfa2b054100fd67d20b6edec540f6044fa21a /src/server/game/Server | |
| parent | 351e93078cf868dbd0887e5f937c176da384221f (diff) | |
Core/PacketIO: Implemented correct opcode for GameObject animkit changes and enabled all animkit related opcodes
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/GameObjectPackets.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/GameObjectPackets.h | 12 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/GarrisonPackets.h | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 22 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 10 |
6 files changed, 68 insertions, 8 deletions
diff --git a/src/server/game/Server/Packets/GameObjectPackets.cpp b/src/server/game/Server/Packets/GameObjectPackets.cpp index c52a1974635..56498e44690 100644 --- a/src/server/game/Server/Packets/GameObjectPackets.cpp +++ b/src/server/game/Server/Packets/GameObjectPackets.cpp @@ -38,3 +38,13 @@ WorldPacket const* WorldPackets::GameObject::PageText::Write() _worldPacket << GameObjectGUID; return &_worldPacket; } + +WorldPacket const* WorldPackets::GameObject::GameObjectActivateAnimKit::Write() +{ + _worldPacket << ObjectGUID; + _worldPacket << uint32(AnimKitID); + _worldPacket.WriteBit(Maintain); + _worldPacket.FlushBits(); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/GameObjectPackets.h b/src/server/game/Server/Packets/GameObjectPackets.h index 6478293a9b7..5e0207190df 100644 --- a/src/server/game/Server/Packets/GameObjectPackets.h +++ b/src/server/game/Server/Packets/GameObjectPackets.h @@ -66,6 +66,18 @@ namespace WorldPackets ObjectGuid GameObjectGUID; }; + + class GameObjectActivateAnimKit final : public ServerPacket + { + public: + GameObjectActivateAnimKit() : ServerPacket(SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT, 16 + 4 + 1) { } + + WorldPacket const* Write() override; + + ObjectGuid ObjectGUID; + int32 AnimKitID = 0; + bool Maintain = false; + }; } } #endif // GOPackets_h__ diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h index 7f5c4da424b..c678d89aaeb 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.h +++ b/src/server/game/Server/Packets/GarrisonPackets.h @@ -87,7 +87,7 @@ namespace WorldPackets uint32 CurrentBuildingID = 0; uint32 CurrentMissionID = 0; std::list<GarrAbilityEntry const*> AbilityID; - uint32 FollowerStatus; + uint32 FollowerStatus = 0; std::string CustomName; }; @@ -105,8 +105,8 @@ namespace WorldPackets struct GarrisonMissionAreaBonus { - uint32 GarrMssnBonusAbilityID; - time_t StartTime; + uint32 GarrMssnBonusAbilityID = 0; + time_t StartTime = time_t(0); }; class GetGarrisonInfoResult final : public ServerPacket diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index b1799a1aa64..8617e56a841 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -532,6 +532,22 @@ WorldPacket const* WorldPackets::Misc::SetAIAnimKit::Write() return &_worldPacket; } +WorldPacket const* WorldPackets::Misc::SetMovementAnimKit::Write() +{ + _worldPacket << Unit; + _worldPacket << uint16(AnimKitID); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::SetMeleeAnimKit::Write() +{ + _worldPacket << Unit; + _worldPacket << uint16(AnimKitID); + + return &_worldPacket; +} + WorldPacket const* WorldPackets::Misc::SetPlayHoverAnim::Write() { _worldPacket << UnitGUID; diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 749b9516e82..423a6ccbc8d 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -676,6 +676,28 @@ namespace WorldPackets uint16 AnimKitID = 0; }; + class SetMovementAnimKit final : public ServerPacket + { + public: + SetMovementAnimKit() : ServerPacket(SMSG_SET_MOVEMENT_ANIM_KIT, 16 + 2) { } + + WorldPacket const* Write() override; + + ObjectGuid Unit; + uint16 AnimKitID = 0; + }; + + class SetMeleeAnimKit final : public ServerPacket + { + public: + SetMeleeAnimKit() : ServerPacket(SMSG_SET_MELEE_ANIM_KIT, 16 + 2) { } + + WorldPacket const* Write() override; + + ObjectGuid Unit; + uint16 AnimKitID = 0; + }; + class SetPlayHoverAnim final : public ServerPacket { public: diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index a214fd44556..f5f7e3c4abf 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1100,7 +1100,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_ANIM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FORCE_OBJECT_RELINK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); 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_ACTIVATE_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_CUSTOM_ANIM, 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); @@ -1602,7 +1602,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SERVER_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_RESEARCH_HISTORY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_AI_ANIM_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_AI_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ALL_TASK_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ANIM_TIER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -1617,12 +1617,12 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ITEM_PURCHASE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_LOOT_METHOD_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MAX_WEEKLY_QUANTITY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MELEE_ANIM_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MOVEMENT_ANIM_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MELEE_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_MOVEMENT_ANIM_KIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PET_SPECIALIZATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TASK_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); |
