mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-24 00:00:13 +00:00
feat: show estimated BG wait time in queue indicator
This commit is contained in:
parent
c31ab8c8b6
commit
792d8e1cf5
3 changed files with 18 additions and 4 deletions
|
|
@ -14537,11 +14537,12 @@ void GameHandler::handleBattlefieldStatus(network::Packet& packet) {
|
|||
|
||||
// Parse status-specific fields
|
||||
uint32_t inviteTimeout = 80; // default WoW BG invite window (seconds)
|
||||
uint32_t avgWaitSec = 0, timeInQueueSec = 0;
|
||||
if (statusId == 1) {
|
||||
// STATUS_WAIT_QUEUE: avgWaitTime(4) + timeInQueue(4)
|
||||
if (packet.getSize() - packet.getReadPos() >= 8) {
|
||||
/*uint32_t avgWait =*/ packet.readUInt32();
|
||||
/*uint32_t inQueue =*/ packet.readUInt32();
|
||||
avgWaitSec = packet.readUInt32() / 1000; // ms → seconds
|
||||
timeInQueueSec = packet.readUInt32() / 1000;
|
||||
}
|
||||
} else if (statusId == 2) {
|
||||
// STATUS_WAIT_JOIN: timeout(4) + mapId(4)
|
||||
|
|
@ -14566,6 +14567,10 @@ void GameHandler::handleBattlefieldStatus(network::Packet& packet) {
|
|||
bgQueues_[queueSlot].bgTypeId = bgTypeId;
|
||||
bgQueues_[queueSlot].arenaType = arenaType;
|
||||
bgQueues_[queueSlot].statusId = statusId;
|
||||
if (statusId == 1) {
|
||||
bgQueues_[queueSlot].avgWaitTimeSec = avgWaitSec;
|
||||
bgQueues_[queueSlot].timeInQueueSec = timeInQueueSec;
|
||||
}
|
||||
if (statusId == 2 && !wasInvite) {
|
||||
bgQueues_[queueSlot].inviteTimeout = inviteTimeout;
|
||||
bgQueues_[queueSlot].inviteReceivedTime = std::chrono::steady_clock::now();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue