feat: send CMSG_SET_ACTION_BUTTON to server when action bar slot changes

Action bar changes (dragging spells/items) were only saved locally.
Now notifies the server via CMSG_SET_ACTION_BUTTON so the layout
persists across relogs. Supports Classic (5-byte) and TBC/WotLK
(packed uint32) wire formats.
This commit is contained in:
Kelsi 2026-03-13 04:25:05 -07:00
parent 8f08d75748
commit 4272491d56
3 changed files with 61 additions and 0 deletions

View file

@ -947,6 +947,21 @@ public:
static network::Packet build(uint8_t state);
};
// ============================================================
// Action Bar
// ============================================================
/** CMSG_SET_ACTION_BUTTON packet builder */
class SetActionButtonPacket {
public:
// button: 0-based slot index
// type: ActionBarSlot::Type (SPELL=0, ITEM=1, MACRO=2, EMPTY=0)
// id: spellId, itemId, or macroId (0 to clear)
// isClassic: true for Vanilla/Turtle format (5-byte payload),
// false for TBC/WotLK (5-byte packed uint32)
static network::Packet build(uint8_t button, uint8_t type, uint32_t id, bool isClassic);
};
// ============================================================
// Display Toggles
// ============================================================