|
wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
|
The .skel skeleton entity (namespace wowlib::formats::m2), 7.3+: a FIRST-CLASS entity with its own filesystem read/write — skeletons are SHARED between models (SKPD parent links), so an M2 references its skeleton rather than owning it exclusively. More...
#include <array>#include <cstdint>#include <format>#include <optional>#include <set>#include <span>#include <string>#include <vector>#include <welder/vocabulary.hpp>#include <wowlib/core/client_version.hpp>#include <wowlib/core/error.hpp>#include <wowlib/core/file_key.hpp>#include <wowlib/core/lang.hpp>#include <wowlib/formats/common/file_entity.hpp>#include <wowlib/formats/common/chunked_file.hpp>#include <wowlib/formats/m2/offset_block.hpp>#include <wowlib/formats/m2/boundaries.hpp>#include <wowlib/formats/m2/root/record/bone.hpp>#include <wowlib/formats/m2/root/record/scene.hpp>#include <wowlib/formats/m2/root/record/sequence.hpp>#include <wowlib/formats/m2/chunked/records.hpp>#include <wowlib/formats/m2/satellites.hpp>#include <wowlib/fs/filesystem.hpp>#include <wowlib/formats/m2/root/record/track.hpp>Go to the source code of this file.
Classes | |
| struct | wowlib::formats::m2::detail::SkelHeader< V > |
| The SKL1 payload: the skeleton's identity. More... | |
| struct | wowlib::formats::m2::detail::SkelSequences< V > |
| The SKS1 payload: the sequence set that moved out of the model. More... | |
| struct | wowlib::formats::m2::detail::SkelBones< V > |
| The SKB1 payload: the bones that moved out of the model (external sequences' track data lives in the .anim AFSB chunks). More... | |
| struct | wowlib::formats::m2::detail::SkelAttachments< V > |
| The SKA1 payload: the attachments that moved out of the model (external sequences' track data lives in the .anim AFSA chunks). More... | |
| struct | wowlib::formats::m2::SkelParentData |
| The SKPD payload: the parent-skeleton link used for de-duplication (e.g. More... | |
| struct | wowlib::formats::m2::SkeletonBase |
| The version-agnostic base of every Skeleton<V> (welded as "Skeleton"). More... | |
| struct | wowlib::formats::m2::detail::Skeleton< V > |
Namespaces | |
| namespace | wowlib |
| namespace | wowlib::formats |
| namespace | wowlib::formats::m2 |
| namespace | wowlib::formats::m2::detail |
| A shared model skeleton (.skel, 7.3+): the bones, attachments and sequences a skel-based model moved out of its MD20 image, plus the satellite ids. | |
The .skel skeleton entity (namespace wowlib::formats::m2), 7.3+: a FIRST-CLASS entity with its own filesystem read/write — skeletons are SHARED between models (SKPD parent links), so an M2 references its skeleton rather than owning it exclusively.
A .skel is a chunked file (forward fourccs): SKL1 identity, SKS1 sequences, SKB1 bones and SKA1 attachments (offset headers into the chunk), SKPD parent link, AFID/BFID satellite ids. SKB1/SKA1 reference external per-sequence track data in the .anim files' AFSB/AFSA chunks, so they travel as verbatim blobs at chunk level and decode into the typed boneBlock/attachmentBlock once the .anim resolution is in hand (read(fs, key) does both).
The SK*1 chunk payload records live here beside the entity: each is a small offset-addressed header whose M2Arrays resolve against the chunk's own payload (padding included), reusing the body's record types.
Definition in file skeleton.hpp.