Improve auction house UI with search filters, pagination, sell picker, and tooltips

- Add item class/subclass category filters (Weapon, Armor, etc.) with correct WoW 3.3.5a IDs
- Add sell item picker dropdown with icons and Create Auction button
- Add pagination (Prev/Next) for browse results with filter preservation
- Add Buy/Bid action buttons to Bids tab
- Add item icons and stat tooltips on hover across all three tabs
- Add Enter-to-search from name field and search delay countdown
- Parse SMSG_AUCTION_OWNER/BIDDER_NOTIFICATION into chat messages
- Auto-refresh browse results after bid/buyout using saved search params
- Clamp level range inputs to 0-80
This commit is contained in:
Kelsi 2026-02-25 14:44:44 -08:00
parent 9906269671
commit 1ae5fe867c
6 changed files with 945 additions and 157 deletions

View file

@ -1050,6 +1050,60 @@ public:
static network::Packet build();
};
/** CMSG_GUILD_CREATE packet builder */
class GuildCreatePacket {
public:
static network::Packet build(const std::string& guildName);
};
/** CMSG_GUILD_ADD_RANK packet builder */
class GuildAddRankPacket {
public:
static network::Packet build(const std::string& rankName);
};
/** CMSG_GUILD_DEL_RANK packet builder (empty body) */
class GuildDelRankPacket {
public:
static network::Packet build();
};
/** CMSG_PETITION_SHOWLIST packet builder */
class PetitionShowlistPacket {
public:
static network::Packet build(uint64_t npcGuid);
};
/** CMSG_PETITION_BUY packet builder */
class PetitionBuyPacket {
public:
static network::Packet build(uint64_t npcGuid, const std::string& guildName);
};
/** SMSG_PETITION_SHOWLIST data */
struct PetitionShowlistData {
uint64_t npcGuid = 0;
uint32_t itemId = 0;
uint32_t displayId = 0;
uint32_t cost = 0;
uint32_t charterType = 0;
uint32_t requiredSigs = 0;
bool isValid() const { return npcGuid != 0; }
};
/** SMSG_PETITION_SHOWLIST parser */
class PetitionShowlistParser {
public:
static bool parse(network::Packet& packet, PetitionShowlistData& data);
};
/** SMSG_TURN_IN_PETITION_RESULTS parser */
class TurnInPetitionResultsParser {
public:
static bool parse(network::Packet& packet, uint32_t& result);
};
// Guild event type constants
namespace GuildEvent {
constexpr uint8_t PROMOTION = 0;