feat: add title selection window with CMSG_SET_TITLE support

Track player titles from SMSG_TITLE_EARNED into knownTitleBits_ set,
read active title from PLAYER_CHOSEN_TITLE update field (WotLK index
1349), expose via getFormattedTitle()/sendSetTitle() on GameHandler.

Add SetTitlePacket builder (CMSG_SET_TITLE: int32 titleBit, -1=clear).

Titles window (H key) lists all earned titles from CharTitles.dbc,
highlights the active one in gold, and lets the player click to equip
or unequip a title with a single server round-trip.
This commit is contained in:
Kelsi 2026-03-12 20:23:36 -07:00
parent a87d62abf8
commit 1bf4c2442a
8 changed files with 155 additions and 1 deletions

View file

@ -2727,5 +2727,13 @@ public:
static network::Packet build(uint64_t petGuid, const std::string& name, uint8_t isDeclined = 0);
};
/** CMSG_SET_TITLE packet builder.
* titleBit >= 0: activate the title with that bit index.
* titleBit == -1: clear the current title (show no title). */
class SetTitlePacket {
public:
static network::Packet build(int32_t titleBit);
};
} // namespace game
} // namespace wowee