mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Add M2 global sequence animation, smoke UV scroll, and fix WMO floor detection
- Parse global sequence durations from M2 binary and use them in bone interpolation so torches, candles, and other env doodads animate. - Add UV scroll shader effect for smoke models (HouseSmoke, SmokeStack) as a workaround for unimplemented M2 particle emitters. - Tighten WMO floor probe heights to prevent multi-story buildings from returning the wrong floor, fixing player clipping through inn floors and camera locking onto the second floor. - Use player ground level as reference for camera orbit floor collision so the camera doesn't fight upper floors in buildings.
This commit is contained in:
parent
6ca9e9024a
commit
11a4958e84
5 changed files with 114 additions and 38 deletions
|
|
@ -56,7 +56,9 @@ struct M2ModelGPU {
|
|||
// Skeletal animation data (kept from M2Model for bone computation)
|
||||
std::vector<pipeline::M2Bone> bones;
|
||||
std::vector<pipeline::M2Sequence> sequences;
|
||||
std::vector<uint32_t> globalSequenceDurations; // Loop durations for global sequence tracks
|
||||
bool hasAnimation = false; // True if any bone has keyframes
|
||||
bool isSmoke = false; // True for smoke models (UV scroll animation)
|
||||
std::vector<int> idleVariationIndices; // Sequence indices for idle variations (animId 0)
|
||||
|
||||
bool isValid() const { return vao != 0 && indexCount > 0; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue