mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
anim: fix creature animation not updating on swim/fly state transitions
Previously, the animation update for other entities (creatures, players) was only triggered when the moving/idle state changed. This meant a creature landing while still moving would stay in FlyForward instead of switching to Run, and a flying-idle creature touching down would keep the FlyIdle animation instead of returning to Stand. Fix: track creatureWasSwimming_ and creatureWasFlying_ alongside creatureWasMoving_, and fire the animation update whenever any of the three locomotion flags change. Clean up the new maps on world reset and on per-creature despawn.
This commit is contained in:
parent
8a20ccb69d
commit
2717018631
2 changed files with 23 additions and 4 deletions
|
|
@ -187,7 +187,9 @@ private:
|
|||
std::unordered_map<uint64_t, uint32_t> creatureInstances_; // guid → render instanceId
|
||||
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> creatureWasMoving_; // guid -> previous-frame movement state
|
||||
std::unordered_map<uint64_t, bool> creatureWasSwimming_; // guid -> previous-frame swim state (for anim transition detection)
|
||||
std::unordered_map<uint64_t, bool> creatureWasFlying_; // guid -> previous-frame flying state (for anim transition detection)
|
||||
std::unordered_map<uint64_t, bool> creatureSwimmingState_; // guid -> currently in swim mode (SWIMMING flag)
|
||||
std::unordered_map<uint64_t, bool> creatureWalkingState_; // guid -> walking (WALKING flag, selects Walk(4) vs Run(5))
|
||||
std::unordered_map<uint64_t, bool> creatureFlyingState_; // guid -> currently flying (FLYING flag)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue