Namespace WoWLib.Formats.WDL.Chunks
Classes
- LodDoodadFade
A fade-distance range for one low-resolution M2 placement (an MLDF record, BfA): undocumented on wowdev; layout established by surveying every 8.3.7 WDL carrying the chunk (33 files) — always exactly one 8-byte record per MLDD entry, holding a pair of ascending distances drawn from clean round values ((500, 3500), (3500, 4000), (5000, 5050), (10000, 10050)).
- LodExtent
Visibility extents for one low-resolution placement (an MLDX/MLMX record, Legion+): the transformed model's bounding box and a radius, in server coordinates. Same count and order as the placement list it accompanies.
- LodMapObjDef
A low-resolution WMO placement (an MLMD record, Legion+): an SMMapObjDef without the extents — those live in the parallel MLMX record. name_id is always a FileDataID here (the WDL has no name table).
- SceneLivingDef
One scene-living (world) definition (an MSLD record, The War Within+): a time-windowed scene schedule.
- SkyScene
One sky scene (an MSSN record, Shadowlands+), tying a SkySceneID to its condition and object ranges.
- SkySceneCondition
One sky-scene condition (an MSSC record, Shadowlands+).
- SkySceneObject
One sky-scene object (an MSSO record, Shadowlands+): a placed distant M2.
- SkySceneObjectParams
One sky-scene object params record (an MSSF record; documented as Dragonflight+ but observed in 9.2.7 files).
- TileHeights
One tile's low-resolution heightmap (a MARE payload): a 17x17 grid of int16 heights with a 16x16 grid of midpoints, on the same scale as the full-resolution ADT heights. The background mountain silhouettes are drawn from these.
- TileHoles
One tile's hole mask (a MAHO payload, TBC+): 16 row bitmasks, one per chunk row (y), one bit per chunk column (x) — a set bit is a hole. Blizzard sets a bit when all 16 holes of the ADT chunk are set; an all-zero mask is always written anyway.
- TileOcean
One tile's ocean mask (a MAOE payload, Legion+): a 32-byte mask selecting the ocean alpha texture — 0xFF bytes mean water everywhere, 0x00 none. Emitted before the tile's hole mask.
Structs
- LodDoodadFade.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- LodExtent.Data
A blittable value twin of the NATIVE layout (size 28): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- LodMapObjDef.Data
A blittable value twin of the NATIVE layout (size 40): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SceneLivingDef.Data
A blittable value twin of the NATIVE layout (size 32): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SkyScene.Data
A blittable value twin of the NATIVE layout (size 32): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SkySceneCondition.Data
A blittable value twin of the NATIVE layout (size 28): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SkySceneObject.Data
A blittable value twin of the NATIVE layout (size 48): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SkySceneObjectParams.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- TileHeights.Data
A blittable value twin of the NATIVE layout (size 1090): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- TileHoles.Data
A blittable value twin of the NATIVE layout (size 32): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- TileOcean.Data
A blittable value twin of the NATIVE layout (size 32): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.