Table of Contents

Class WDTParticulatesBfaPlus

Namespace
WoWLib.Formats.WDT.Mpv
Assembly
WoWLib.dll

A _mpv.wdt particulate-volume satellite for one client version (BfA 8.0.1+): weather particulate volumes as repeated PVMI/PVPD/PVBD groups — the i-th elements of the three lists belong together. Most maps ship it empty. See https://wowdev.wiki/WDT.

public class WDTParticulatesBfaPlus : WDTParticulates, IDisposable
Inheritance
WDTParticulatesBfaPlus
Implements
Inherited Members

Constructors

WDTParticulatesBfaPlus()

public WDTParticulatesBfaPlus()

WDTParticulatesBfaPlus(WDTParticulatesBfaPlus)

Copy-construct: a deep copy of other (the C++ copy constructor).

public WDTParticulatesBfaPlus(WDTParticulatesBfaPlus other)

Parameters

other WDTParticulatesBfaPlus

Properties

BoundGroups

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

public Vector<Vector<ParticulateBounds>> BoundGroups { get; }

Property Value

Vector<Vector<ParticulateBounds>>

Mver

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

public uint Mver { get; set; }

Property Value

uint

PointGroups

One PVPD point array per volume group.

public Vector<Vector<ParticulatePoint>> PointGroups { get; }

Property Value

Vector<Vector<ParticulatePoint>>

VolumeData

One PVMI payload per volume group. The record layout is keyed on the file's own version payload, not the client build, so it is kept opaque.

public Vector<ChunkBlob> VolumeData { get; set; }

Property Value

Vector<ChunkBlob>

Methods

Dispose()

Release the native object now. Optional: the finalizer releases it on collection anyway - dispose (or using) when you want native memory back promptly.

public override void Dispose()

EnsureValid()

Validate and raise on the first error instead of returning a report — the assert-style face of validate().

public void EnsureValid()

Read(byte[])

Deserialize file bytes into this entity, replacing its contents. Unmodeled chunks are preserved so an unmodified entity rewrites byte-for-byte.

public void Read(byte[] data)

Parameters

data byte[]

the file bytes

Validate()

Check the logical integrity contracts this file must satisfy to LOAD in the client — companion-chunk counts, index ranges, flag/presence coherence — which write() deliberately never enforces. Call it before writing when you want to know the result will load. A file read from a client and left unmodified reports no errors; warnings mark states real client files ship.

public ValidationReport Validate()

Returns

ValidationReport

every violated contract, in member order

Write()

Serialize this entity.

public byte[] Write()

Returns

byte[]

the file bytes