diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-04-29 00:06:02 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-04-29 00:06:02 +0200 |
| commit | cc9241784491198581a19f3f5502a42d048ea063 (patch) | |
| tree | 323d98827c0d81464cd767207e8d523448599351 /src/server/game/Server | |
| parent | 9dcc6c020763e5a79e9d73b364a73b00d63ce734 (diff) | |
Core/Items: Implemented packets setting up inventory cleanup parameters
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/ItemPackets.cpp | 29 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/ItemPackets.h | 55 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 10 |
4 files changed, 99 insertions, 5 deletions
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index ff26b92fd15..b4bb558bac6 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -373,3 +373,32 @@ void WorldPackets::Item::RemoveNewItem::Read() { _worldPacket >> ItemGuid; } + +void WorldPackets::Item::ChangeBagSlotFlag::Read() +{ + _worldPacket >> BagIndex; + FlagToChange = _worldPacket.read<BagSlotFlags, uint32>(); + On = _worldPacket.ReadBit(); +} + +void WorldPackets::Item::ChangeBankBagSlotFlag::Read() +{ + _worldPacket >> BagIndex; + FlagToChange = _worldPacket.read<BagSlotFlags, uint32>(); + On = _worldPacket.ReadBit(); +} + +void WorldPackets::Item::SetBackpackAutosortDisabled::Read() +{ + Disable = _worldPacket.ReadBit(); +} + +void WorldPackets::Item::SetBackpackSellJunkDisabled::Read() +{ + Disable = _worldPacket.ReadBit(); +} + +void WorldPackets::Item::SetBankAutosortDisabled::Read() +{ + Disable = _worldPacket.ReadBit(); +} diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h index b57417a5936..f0359be4575 100644 --- a/src/server/game/Server/Packets/ItemPackets.h +++ b/src/server/game/Server/Packets/ItemPackets.h @@ -28,6 +28,7 @@ #include <array> struct VoidStorageItem; +enum class BagSlotFlags : uint32; namespace WorldPackets { @@ -536,6 +537,60 @@ namespace WorldPackets WorldPacket const* Write() override { return &_worldPacket; } }; + + class ChangeBagSlotFlag final : public ClientPacket + { + public: + explicit ChangeBagSlotFlag(WorldPacket&& packet) : ClientPacket(CMSG_CHANGE_BAG_SLOT_FLAG, std::move(packet)) { } + + void Read() override; + + uint32 BagIndex = 0; + BagSlotFlags FlagToChange = { }; + bool On = false; + }; + + class ChangeBankBagSlotFlag final : public ClientPacket + { + public: + explicit ChangeBankBagSlotFlag(WorldPacket&& packet) : ClientPacket(CMSG_CHANGE_BANK_BAG_SLOT_FLAG, std::move(packet)) { } + + void Read() override; + + uint32 BagIndex = 0; + BagSlotFlags FlagToChange = { }; + bool On = false; + }; + + class SetBackpackAutosortDisabled final : public ClientPacket + { + public: + explicit SetBackpackAutosortDisabled(WorldPacket&& packet) : ClientPacket(CMSG_SET_BACKPACK_AUTOSORT_DISABLED, std::move(packet)) { } + + void Read() override; + + bool Disable = false; + }; + + class SetBackpackSellJunkDisabled final : public ClientPacket + { + public: + explicit SetBackpackSellJunkDisabled(WorldPacket&& packet) : ClientPacket(CMSG_SET_BACKPACK_SELL_JUNK_DISABLED, std::move(packet)) { } + + void Read() override; + + bool Disable = false; + }; + + class SetBankAutosortDisabled final : public ClientPacket + { + public: + explicit SetBankAutosortDisabled(WorldPacket&& packet) : ClientPacket(CMSG_SET_BANK_AUTOSORT_DISABLED, std::move(packet)) { } + + void Read() override; + + bool Disable = false; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 3a7141cb45a..e25b2ef6d74 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -274,8 +274,8 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CAST_SPELL, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleCastSpellOpcode); DEFINE_HANDLER(CMSG_CHALLENGE_MODE_REQUEST_LEADERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_CHANGE_BAG_SLOT_FLAG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_CHANGE_BANK_BAG_SLOT_FLAG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_CHANGE_BAG_SLOT_FLAG, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleChangeBagSlotFlag); + DEFINE_HANDLER(CMSG_CHANGE_BANK_BAG_SLOT_FLAG, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleChangeBankBagSlotFlag); DEFINE_HANDLER(CMSG_CHANGE_MONUMENT_APPEARANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CHANGE_REALM_TICKET, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlenetChangeRealmTicket); DEFINE_HANDLER(CMSG_CHANGE_SUB_GROUP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSubGroupOpcode); @@ -869,9 +869,9 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_SET_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode); DEFINE_HANDLER(CMSG_SET_ADVANCED_COMBAT_LOGGING, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetAdvancedCombatLogging); DEFINE_HANDLER(CMSG_SET_ASSISTANT_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetAssistantLeaderOpcode); - DEFINE_HANDLER(CMSG_SET_BACKPACK_AUTOSORT_DISABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_SET_BACKPACK_SELL_JUNK_DISABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_SET_BANK_AUTOSORT_DISABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_SET_BACKPACK_AUTOSORT_DISABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetBackpackAutosortDisabled); + DEFINE_HANDLER(CMSG_SET_BACKPACK_SELL_JUNK_DISABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetBackpackSellJunkDisabled); + DEFINE_HANDLER(CMSG_SET_BANK_AUTOSORT_DISABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetBankAutosortDisabled); DEFINE_HANDLER(CMSG_SET_CONTACT_NOTES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetContactNotesOpcode); DEFINE_HANDLER(CMSG_SET_CURRENCY_FLAGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_DIFFICULTY_ID, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 7b3c8567382..fe569b4a7b2 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -451,6 +451,11 @@ namespace WorldPackets class SortReagentBankBags; struct ItemInstance; class RemoveNewItem; + class ChangeBagSlotFlag; + class ChangeBankBagSlotFlag; + class SetBackpackAutosortDisabled; + class SetBackpackSellJunkDisabled; + class SetBankAutosortDisabled; } namespace LFG @@ -1499,6 +1504,11 @@ class TC_GAME_API WorldSession void HandleBuybackItem(WorldPackets::Item::BuyBackItem& packet); void HandleWrapItem(WorldPackets::Item::WrapItem& packet); void HandleUseCritterItem(WorldPackets::Item::UseCritterItem& packet); + void HandleChangeBagSlotFlag(WorldPackets::Item::ChangeBagSlotFlag const& changeBagSlotFlag); + void HandleChangeBankBagSlotFlag(WorldPackets::Item::ChangeBankBagSlotFlag const& changeBankBagSlotFlag); + void HandleSetBackpackAutosortDisabled(WorldPackets::Item::SetBackpackAutosortDisabled const& setBackpackAutosortDisabled); + void HandleSetBackpackSellJunkDisabled(WorldPackets::Item::SetBackpackSellJunkDisabled const& setBackpackSellJunkDisabled); + void HandleSetBankAutosortDisabled(WorldPackets::Item::SetBankAutosortDisabled const& setBankAutosortDisabled); void HandleAttackSwingOpcode(WorldPackets::Combat::AttackSwing& packet); void HandleAttackStopOpcode(WorldPackets::Combat::AttackStop& packet); |
