mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
rendering/game: track per-entity swim state for correct water animations
- Add creatureSwimmingState_ map to track which units are swimming - unitAnimHintCallback with animId=42 (Swim): marks entity as swimming - unitAnimHintCallback with animId=0 (MSG_MOVE_STOP_SWIM): clears swim state - Per-frame sync: uses Swim(42)/SwimIdle(41) when swimming, Run(5)/Stand(0) otherwise — creatures/players now show SwimIdle when standing still in water - Clear creatureSwimmingState_ on creature/player despawn and world reset
This commit is contained in:
parent
14c2bc97b1
commit
333ada8eb6
3 changed files with 31 additions and 9 deletions
|
|
@ -188,6 +188,7 @@ private:
|
|||
std::unordered_map<uint64_t, uint32_t> creatureModelIds_; // guid → loaded modelId
|
||||
std::unordered_map<uint64_t, glm::vec3> creatureRenderPosCache_; // guid -> last synced render position
|
||||
std::unordered_map<uint64_t, bool> creatureWasMoving_; // guid -> previous-frame movement state
|
||||
std::unordered_map<uint64_t, bool> creatureSwimmingState_; // guid -> currently in swim mode
|
||||
std::unordered_set<uint64_t> creatureWeaponsAttached_; // guid set when NPC virtual weapons attached
|
||||
std::unordered_map<uint64_t, uint8_t> creatureWeaponAttachAttempts_; // guid -> attach attempts
|
||||
std::unordered_map<uint32_t, bool> modelIdIsWolfLike_; // modelId → cached wolf/worg check
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue