wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
sequence.hpp File Reference

M2 animation-sequence records (namespace wowlib::formats::m2::root::record): M2Sequence across its three layout eras, the sequence flags, and the pre-WotLK playable-animation fallback entry. More...

#include <cstdint>
#include <utility>
#include <welder/vocabulary.hpp>
#include <wowlib/core/lang.hpp>
#include <wowlib/core/client_version.hpp>
#include <wowlib/formats/common/flags.hpp>
#include <wowlib/formats/m2/boundaries.hpp>
#include <wowlib/formats/m2/root/record/track.hpp>
Include dependency graph for sequence.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wowlib::formats::m2::root::record::M2SequenceBase
 The version-agnostic base of every M2Sequence<V> (welded as "M2Sequence"). More...
struct  wowlib::formats::m2::root::record::detail::M2Sequence< V >
 An animation sequence, pre-WotLK layout: global start/end timestamps, one u32 blend time. More...
struct  wowlib::formats::m2::root::record::M2SequenceFallback
 A pre-WotLK playable-animation fallback: the substitute animation id plus how to play it (0 normal, 1 backwards, 2 frame-by-frame, 3 freeze). More...

Namespaces

namespace  wowlib
namespace  wowlib::formats
namespace  wowlib::formats::m2
namespace  wowlib::formats::m2::root
 The MD20 model body (M2Root) with its per-version classes.
namespace  wowlib::formats::m2::root::record
 M2 body record structs (sequences, bones, tracks, textures, cameras, emitters) and their flag enums.
namespace  wowlib::formats::m2::root::record::detail

Typedefs

template<ClientVersion V>
using wowlib::formats::m2::root::record::M2Sequence = detail::M2Sequence<canonicalVersion(V, M2SequencePivots, M2Versions)>
 An animation sequence — the canonicalizing face of detail::M2Sequence: every client version maps to its range's first grid version (M2SequencePivots: WotLK's duration layout, WoD's split blend times), so one instantiation serves the whole range.

Enumerations

enum class  wowlib::formats::m2::root::record::SequenceFlags : std::uint32_t {
  wowlib::formats::m2::root::record::SetsRuntimeBlend = 0x1 , wowlib::formats::m2::root::record::TiltIn = 0x2 , wowlib::formats::m2::root::record::TiltOut = 0x4 , wowlib::formats::m2::root::record::TiltFixed = 0x8 ,
  wowlib::formats::m2::root::record::LoadedLowPriority = 0x10 , wowlib::formats::m2::root::record::DataInM2 = 0x20 , wowlib::formats::m2::root::record::Alias = 0x40 , wowlib::formats::m2::root::record::Blended = 0x80 ,
  wowlib::formats::m2::root::record::StoredInModel = 0x100 , wowlib::formats::m2::root::record::SplitBlendTimes = 0x200 , wowlib::formats::m2::root::record::Legion0x800 = 0x800
}
 M2Sequence flags — the 0x20/0x40/0x130 combination decides where the sequence's track data lives (.m2 vs .anim file). More...

Functions

constexpr bool wowlib::formats::m2::root::record::sequenceDataExternal (std::uint32_t flags)
 Whether a WotLK+ sequence keeps its track data in an external .anim file — the client loads one iff none of 0x10/0x20/0x100 are set.

Detailed Description

M2 animation-sequence records (namespace wowlib::formats::m2::root::record): M2Sequence across its three layout eras, the sequence flags, and the pre-WotLK playable-animation fallback entry.

All trivially copyable — they memcpy straight out of their blocks.

Definition in file sequence.hpp.