mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
feat: implement SMSG_BATTLEFIELD_LIST handler
Parse the battleground availability list sent by the server when the player opens the BG finder. Handles all three expansion wire formats: - Classic: bgTypeId + isRegistered + count + instanceIds - TBC: adds isHoliday byte - WotLK: adds minLevel/maxLevel for bracket display Stores results in availableBgs_ (public via getAvailableBgs()) so the UI can show available battlegrounds and running instance counts without an additional server round-trip.
This commit is contained in:
parent
793c2b5611
commit
f8f57411f2
2 changed files with 90 additions and 1 deletions
|
|
@ -405,11 +405,22 @@ public:
|
|||
std::chrono::steady_clock::time_point inviteReceivedTime{};
|
||||
};
|
||||
|
||||
// Available BG list (populated by SMSG_BATTLEFIELD_LIST)
|
||||
struct AvailableBgInfo {
|
||||
uint32_t bgTypeId = 0;
|
||||
bool isRegistered = false;
|
||||
bool isHoliday = false;
|
||||
uint32_t minLevel = 0;
|
||||
uint32_t maxLevel = 0;
|
||||
std::vector<uint32_t> instanceIds;
|
||||
};
|
||||
|
||||
// Battleground
|
||||
bool hasPendingBgInvite() const;
|
||||
void acceptBattlefield(uint32_t queueSlot = 0xFFFFFFFF);
|
||||
void declineBattlefield(uint32_t queueSlot = 0xFFFFFFFF);
|
||||
const std::array<BgQueueSlot, 3>& getBgQueues() const { return bgQueues_; }
|
||||
const std::vector<AvailableBgInfo>& getAvailableBgs() const { return availableBgs_; }
|
||||
|
||||
// BG scoreboard (MSG_PVP_LOG_DATA)
|
||||
struct BgPlayerScore {
|
||||
|
|
@ -2475,6 +2486,10 @@ private:
|
|||
// ---- Battleground queue state ----
|
||||
std::array<BgQueueSlot, 3> bgQueues_{};
|
||||
|
||||
// ---- Available battleground list (SMSG_BATTLEFIELD_LIST) ----
|
||||
std::vector<AvailableBgInfo> availableBgs_;
|
||||
void handleBattlefieldList(network::Packet& packet);
|
||||
|
||||
// Instance difficulty
|
||||
uint32_t instanceDifficulty_ = 0;
|
||||
bool instanceIsHeroic_ = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue