Fix character appearance, previews, mount seat, and online unequip

This commit is contained in:
Kelsi 2026-02-12 14:55:27 -08:00
parent 930ee76789
commit 0ff0f2f995
19 changed files with 743 additions and 113 deletions

View file

@ -236,6 +236,7 @@ public:
Inventory& getInventory() { return inventory; }
const Inventory& getInventory() const { return inventory; }
bool consumeOnlineEquipmentDirty() { bool d = onlineEquipDirty_; onlineEquipDirty_ = false; return d; }
void unequipToBackpack(EquipSlot equipSlot);
// Targeting
void setTarget(uint64_t guid);

View file

@ -261,6 +261,8 @@ enum class Opcode : uint16_t {
SMSG_ITEM_QUERY_SINGLE_RESPONSE = 0x058,
CMSG_USE_ITEM = 0x00AB,
CMSG_AUTOEQUIP_ITEM = 0x10A,
CMSG_SWAP_ITEM = 0x10C,
CMSG_SWAP_INV_ITEM = 0x10D,
SMSG_INVENTORY_CHANGE_FAILURE = 0x112,
CMSG_INSPECT = 0x114,
SMSG_INSPECT_RESULTS = 0x115,

View file

@ -1495,6 +1495,21 @@ public:
static network::Packet build(uint8_t srcBag, uint8_t srcSlot);
};
/** CMSG_SWAP_ITEM packet builder */
class SwapItemPacket {
public:
// Order matches AzerothCore handler: destBag, destSlot, srcBag, srcSlot.
static network::Packet build(uint8_t dstBag, uint8_t dstSlot, uint8_t srcBag, uint8_t srcSlot);
};
/** CMSG_SWAP_INV_ITEM packet builder */
class SwapInvItemPacket {
public:
// WoW inventory: slots are in the "inventory" range (equipment 0-18, bags 19-22, backpack 23-38).
// This swaps two inventory slots directly.
static network::Packet build(uint8_t srcSlot, uint8_t dstSlot);
};
/** CMSG_LOOT_MONEY packet builder (empty body) */
class LootMoneyPacket {
public: