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

WMO version pivots that change a binary-struct layout (not just chunk presence). More...

#include <array>
#include <cstdint>
#include <wowlib/core/client_builds.hpp>
#include <wowlib/core/client_version.hpp>
#include <wowlib/formats/common/version_range.hpp>
Include dependency graph for boundaries.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  wowlib
namespace  wowlib::formats
namespace  wowlib::formats::wmo

Variables

constexpr std::uint32_t wowlib::formats::wmo::WmoVersionV17 = 17
 The WMO format version every supported client uses (MVER payload).
constexpr ClientVersion wowlib::formats::wmo::WmoBatchLargeMaterial = builds::Legion_Alpha
 legion 7.0.1.20740: SMOBatch's culling-box prelude gives way to a large (uint16) material id.
constexpr ClientVersion wowlib::formats::wmo::WmoSplitGroups = builds::SL_EternitysEnd
 9.2.0.42423: the unused u32 at MOGP+0x40 becomes the two split-group indices.
constexpr std::array wowlib::formats::wmo::WmoVersions
 The versions WMO is instantiated (and welded) for: every targeted last-minor-of-major release, in release order.
constexpr std::array wowlib::formats::wmo::WmoBatchPivots {WmoBatchLargeMaterial}
 SMOBatch: the culling-box prelude gives way to the large material id.
constexpr std::array wowlib::formats::wmo::WmoGroupHeaderPivots {WmoSplitGroups}
 SMOGroupHeader: the split-group indices replacing the unused u32.
constexpr std::array wowlib::formats::wmo::WmoRootPivots
 WMORoot: every trait-slot boundary and chunk-introduction build the root file carries (GFID/MOUV/MOSI/MODI/the volume family/new lights/ M3 materials).
constexpr std::array wowlib::formats::wmo::WmoGroupPivots
 WMOGroupBody / WMOGroup: every trait-slot boundary and chunk build the group files carry, plus the two binary-layout pivots above.
constexpr std::array wowlib::formats::wmo::WmoAssemblyPivots
 The WMO assembly: the union of the root and group pivots.

Detailed Description

WMO version pivots that change a binary-struct layout (not just chunk presence).

These name the client version at which a struct's field set flips, so the binary structs (the group/chunks headers) can select a constrained partial specialization with requires (V < pivot) / requires (V >= pivot).

Chunk presence boundaries are no longer named here: each chunk member's since()/until() annotation now carries its own exact client version inline (as wowdev.wiki documents it), instead of grouping chunks under a shared, guessed-at "feature set" constant.

Definition in file boundaries.hpp.