mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Implement SMSG_RESUME_CAST_BAR, SMSG_THREAT_UPDATE, SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT
- SMSG_RESUME_CAST_BAR: parse packed_guid caster/target + spellId + remainingMs + totalMs; restores cast bar state when server re-syncs a cast in progress - SMSG_THREAT_UPDATE: properly consume packed_guid host/target + threat entries to suppress unhandled packet warnings - SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT: track up to 5 boss encounter unit guids per slot; expose via getEncounterUnitGuid(slot); clear on world transfer These guids identify active boss units for raid/boss frame display.
This commit is contained in:
parent
9f340ef456
commit
b6dfa8b747
2 changed files with 64 additions and 3 deletions
|
|
@ -772,6 +772,10 @@ public:
|
|||
bool extended = false;
|
||||
};
|
||||
const std::vector<InstanceLockout>& getInstanceLockouts() const { return instanceLockouts_; }
|
||||
// Returns boss unit guid for the given encounter slot (0 if none)
|
||||
uint64_t getEncounterUnitGuid(uint32_t slot) const {
|
||||
return (slot < kMaxEncounterSlots) ? encounterUnitGuids_[slot] : 0;
|
||||
}
|
||||
|
||||
// ---- LFG / Dungeon Finder ----
|
||||
enum class LfgState : uint8_t {
|
||||
|
|
@ -1738,6 +1742,10 @@ private:
|
|||
// Instance / raid lockouts
|
||||
std::vector<InstanceLockout> instanceLockouts_;
|
||||
|
||||
// Instance encounter boss units (slots 0-4 from SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT)
|
||||
static constexpr uint32_t kMaxEncounterSlots = 5;
|
||||
std::array<uint64_t, kMaxEncounterSlots> encounterUnitGuids_ = {}; // 0 = empty slot
|
||||
|
||||
// LFG / Dungeon Finder state
|
||||
LfgState lfgState_ = LfgState::None;
|
||||
uint32_t lfgDungeonId_ = 0; // current dungeon entry
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue