mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 09:33:51 +00:00
Handle missing WotLK packets: health/power updates, mirror timers, combo points, loot roll, titles, phase shift
- SMSG_HEALTH_UPDATE / SMSG_POWER_UPDATE: update entity HP/power via entityManager - SMSG_UPDATE_WORLD_STATE: single world state variable update (companion to INIT) - SMSG_UPDATE_COMBO_POINTS: store comboPoints_/comboTarget_ in GameHandler - SMSG_START_MIRROR_TIMER / SMSG_STOP_MIRROR_TIMER / SMSG_PAUSE_MIRROR_TIMER: breath/fatigue/feign timer state - MirrorTimer struct + getMirrorTimer() public getter; renderMirrorTimers() draws colored breath/fatigue bars above cast bar - SMSG_CAST_RESULT: WotLK extended cast result; clear cast bar and show reason on failure (result != 0) - SMSG_SPELL_FAILED_OTHER / SMSG_PROCRESIST: consume silently - SMSG_LOOT_START_ROLL: correct trigger for Need/Greed popup (replaces rollType=128 heuristic) - SMSG_STABLE_RESULT: show pet stable feedback in system chat (store/retrieve/buy slot/error) - SMSG_TITLE_EARNED: system chat notification for title earned/removed - SMSG_PLAYERBOUND / SMSG_BINDER_CONFIRM: hearthstone binding notification - SMSG_SET_PHASE_SHIFT: consume (WotLK phasing, no client action needed) - SMSG_TOGGLE_XP_GAIN: system chat notification
This commit is contained in:
parent
6df36f4588
commit
bd3bd1b5a6
4 changed files with 301 additions and 0 deletions
|
|
@ -865,6 +865,23 @@ public:
|
|||
uint32_t getWorldStateMapId() const { return worldStateMapId_; }
|
||||
uint32_t getWorldStateZoneId() const { return worldStateZoneId_; }
|
||||
|
||||
// Mirror timers (0=fatigue, 1=breath, 2=feigndeath)
|
||||
struct MirrorTimer {
|
||||
int32_t value = 0;
|
||||
int32_t maxValue = 0;
|
||||
int32_t scale = 0; // +1 = counting up, -1 = counting down
|
||||
bool paused = false;
|
||||
bool active = false;
|
||||
};
|
||||
const MirrorTimer& getMirrorTimer(int type) const {
|
||||
static MirrorTimer empty;
|
||||
return (type >= 0 && type < 3) ? mirrorTimers_[type] : empty;
|
||||
}
|
||||
|
||||
// Combo points
|
||||
uint8_t getComboPoints() const { return comboPoints_; }
|
||||
uint64_t getComboTarget() const { return comboTarget_; }
|
||||
|
||||
struct FactionStandingInit {
|
||||
uint8_t flags = 0;
|
||||
int32_t standing = 0;
|
||||
|
|
@ -1655,6 +1672,13 @@ private:
|
|||
uint32_t instanceDifficulty_ = 0;
|
||||
bool instanceIsHeroic_ = false;
|
||||
|
||||
// Mirror timers (0=fatigue, 1=breath, 2=feigndeath)
|
||||
MirrorTimer mirrorTimers_[3];
|
||||
|
||||
// Combo points (rogues/druids)
|
||||
uint8_t comboPoints_ = 0;
|
||||
uint64_t comboTarget_ = 0;
|
||||
|
||||
// Instance / raid lockouts
|
||||
std::vector<InstanceLockout> instanceLockouts_;
|
||||
|
||||
|
|
|
|||
|
|
@ -201,6 +201,7 @@ private:
|
|||
void renderBagBar(game::GameHandler& gameHandler);
|
||||
void renderXpBar(game::GameHandler& gameHandler);
|
||||
void renderCastBar(game::GameHandler& gameHandler);
|
||||
void renderMirrorTimers(game::GameHandler& gameHandler);
|
||||
void renderCombatText(game::GameHandler& gameHandler);
|
||||
void renderPartyFrames(game::GameHandler& gameHandler);
|
||||
void renderGroupInvitePopup(game::GameHandler& gameHandler);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue