wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
wowlib::formats::wdt::mpv::detail::WDTParticulates< V > Struct Template Reference

A _mpv.wdt particulate-volume satellite for one client version (BfA 8.0.1+). More...

#include <wowlib/formats/wdt/mpv/mpv.hpp>

Inheritance diagram for wowlib::formats::wdt::mpv::detail::WDTParticulates< V >:

Public Attributes

std::uint32_t mver = 4
 The _mpv format version, 1 to 4; the PVMI record size is keyed on it (0xF5C / 0xFE8 / 0x10D8).
std::vector< ChunkBlob > volumeData
std::vector< std::vector< ParticulatePoint > > pointGroups
 One PVPD point array per volume group.
std::vector< std::vector< ParticulateBounds > > boundGroups
 One PVBD bounds array per volume group; reading a PVBD finalizes the group.
Public Attributes inherited from wowlib::formats::ChunkExtras
std::vector< JournalEntry > journal
std::vector< UnknownChunk > unknown
std::vector< std::byte > trailing

Static Public Attributes

static constexpr ClientVersion Version = V
static constexpr std::array ChunkOrder = {fourcc("MVER"), fourcc("PVMI"), fourcc("PVPD"), fourcc("PVBD"),}
 The canonical chunk-stream order the serializer emits a fresh entity in (see writeOrder).

Additional Inherited Members

Public Member Functions inherited from wowlib::formats::ChunkedFile< WDTParticulates< V > >
Result< void > read (std::span< const std::byte > data)
 Deserialize file bytes into this entity, replacing its contents.
Result< FileBuffer > write () const
 Serialize this entity.
ValidationReport validate () const
Result< void > ensureValid () const
 Validate and raise on the first error instead of returning a report — the assert-style face of validate().
bool operator== (const ChunkedFile &) const=default
Public Member Functions inherited from wowlib::formats::ChunkExtras
bool operator== (const ChunkExtras &) const =default

Detailed Description

template<ClientVersion V>
struct wowlib::formats::wdt::mpv::detail::WDTParticulates< V >

A _mpv.wdt particulate-volume satellite for one client version (BfA 8.0.1+).

The i-th elements of volumeData / pointGroups / boundGroups belong together; the on-disk group interleave (PVMI, PVPD, PVBD, PVMI, ...) round-trips through the journal. Instantiate through the canonicalizing wdt::mpv::WDTParticulates alias, never directly.

Template Parameters
Vthe client version this layout targets.
See also
https://wowdev.wiki/WDT#mpv

Definition at line 44 of file mpv.hpp.

Member Data Documentation

◆ boundGroups

template<ClientVersion V>
std::vector<std::vector<ParticulateBounds> > wowlib::formats::wdt::mpv::detail::WDTParticulates< V >::boundGroups

One PVBD bounds array per volume group; reading a PVBD finalizes the group.

Definition at line 61 of file mpv.hpp.

◆ ChunkOrder

template<ClientVersion V>
std::array wowlib::formats::wdt::mpv::detail::WDTParticulates< V >::ChunkOrder = {fourcc("MVER"), fourcc("PVMI"), fourcc("PVPD"), fourcc("PVBD"),}
staticconstexpr

The canonical chunk-stream order the serializer emits a fresh entity in (see writeOrder).

Lists every chunk member exactly once; note a fresh MULTI-group entity emits each member's elements consecutively rather than the client's per-group interleave — entities read from a file replay their journal and keep it.

Definition at line 68 of file mpv.hpp.

◆ mver

template<ClientVersion V>
std::uint32_t wowlib::formats::wdt::mpv::detail::WDTParticulates< V >::mver = 4

The _mpv format version, 1 to 4; the PVMI record size is keyed on it (0xF5C / 0xFE8 / 0x10D8).

Definition at line 50 of file mpv.hpp.

◆ pointGroups

template<ClientVersion V>
std::vector<std::vector<ParticulatePoint> > wowlib::formats::wdt::mpv::detail::WDTParticulates< V >::pointGroups

One PVPD point array per volume group.

Definition at line 57 of file mpv.hpp.

◆ Version

Definition at line 46 of file mpv.hpp.

◆ volumeData

Definition at line 53 of file mpv.hpp.


The documentation for this struct was generated from the following file:
  • src/wowlib/formats/wdt/mpv/mpv.hpp