wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
wowlib::formats::adt::detail Namespace Reference

Classes

struct  ADT
 A terrain tile for one client version. More...
struct  ADTFlying
 The flying bounds (MFBO), BC+. More...
struct  ADTSplit
 Cataclysm+ split-file tile chunks (the tile now spans root/_tex0/_obj0/ _obj1/_lod files). More...
struct  ADTTexFdids
 The 8.1+ FileDataID texture tables (_tex0), which replace MTEX names on height-texturing maps. More...
struct  ADTWotlk
 WotLK+ tile chunks: the water (MH2O) and the texture flags (MTXF). More...
struct  AlphaCodec
 MCAL codec: decode/encode the per-layer 64x64 alpha maps through AlphaMapCodec, indexing the sibling layers' flags + offsetInMcal. More...
class  AlphaMapCodec
 The MCAL alpha-map codec. More...
struct  InFileSpec
 Stored form of an inFile annotation: a binary chunk's physical-file group. More...
struct  LayerCodec
 MCLY codec: the texture layers, plus sizing alphaMaps to the layer count (MCAL may be absent on Cata+ when empty, so alphaMaps must be sized here to keep it aligned with layers). More...
struct  MapChunk
 A terrain chunk (MCNK) for one client version. More...
struct  MapChunkCata
 Vertex lighting (MCLV) and terrain materials (MCMT), Cata+. More...
struct  MapChunkColor
 Vertex colors (MCCV), WotLK+. More...
struct  MapChunkLegacyLiquid
 Legacy liquid (MCLQ). More...
struct  MapChunkReadCtx
 Context a sub-chunk codec needs to read one MCNK sub-chunk: the (already parsed) header, the sibling texture layers (MCAL indexes them), the tile alpha bit depth and whether to repair the 63x63 "unfixed" edge form. More...
struct  MapChunkWriteCtx
 Context a sub-chunk codec needs to write one MCNK sub-chunk. More...
struct  NormalCodec
 MCNR codec: 145 XZY normal triples followed by 13 undeclared padding bytes (a near-constant client pattern preserved for the semantic round-trip). More...
struct  SerializerSpec
 Stored form of a serializedBy annotation: the reflection of a codec type handling a sub-chunk that a plain readValue/writeValue cannot (external length, a transform, or a companion member). More...
struct  ShadowCodec
 MCSH codec: the 64x64 shadow map through ShadowMapCodec. More...
class  ShadowMapCodec
 The MCSH shadow-map codec: a 512-byte 1-bit bitmap on disk, a 4096-texel 0/1 surface in memory. More...
struct  SoundEmitterCodec
 MCSE codec: typed emitter records — the era picks the entry (pre-WotLK 52-byte CWSoundEmitterVanilla, 28-byte CWSoundEmitter after; the member's value_type carries the choice). More...
class  TerrainMapCodec
 Shared geometry for the 64x64 terrain map codecs: the last-row/column repair the client applies to "unfixed" maps on load. More...

Functions

LiquidVertexFormat resolveVertexFormat (std::uint16_t stored, std::size_t totalBytes, std::size_t n)
 Resolve a liquid instance's vertex layout from its stored field and the span of its vertex-data block: the offset-multiplier method (wowdev), robust across every client.
void appendBytes (FileBuffer &out, const void *p, std::size_t n)
 Append n raw bytes at p to out (a byte-copy primitive).

Variables

constexpr std::size_t AlphaDim = 64
 The edge length of the decoded square edit surface (64).
constexpr std::size_t AlphaTexels = AlphaDim * AlphaDim
 The texel count of a decoded map (64 * 64 = 4096).
constexpr std::size_t Alpha4BitBytes = AlphaTexels / 2
 The on-disk size of a 4-bit alpha map (4096 / 2 = 2048 bytes).
constexpr std::size_t ShadowBytes = AlphaTexels / 8
 The on-disk size of a 1-bit shadow bitmap (4096 / 8 = 512 bytes).
constexpr std::size_t McvtCount = 145
 The 9x9 + 8x8 = 145 vertices of the MCVT height / MCNR normal grid.

Function Documentation

◆ appendBytes()

◆ resolveVertexFormat()

LiquidVertexFormat wowlib::formats::adt::detail::resolveVertexFormat ( std::uint16_t stored,
std::size_t totalBytes,
std::size_t n )
inline

Resolve a liquid instance's vertex layout from its stored field and the span of its vertex-data block: the offset-multiplier method (wowdev), robust across every client.

totalBytes is the vertex block's size, n the (width+1)*(height+1) vertex count.

Definition at line 181 of file liquid.hpp.

References wowlib::formats::adt::chunks::DepthOnly, wowlib::formats::adt::chunks::HeightDepth, wowlib::formats::adt::chunks::HeightUv, and wowlib::formats::adt::chunks::HeightUvDepth.

Referenced by wowlib::formats::adt::MH2OData::read().

Variable Documentation

◆ Alpha4BitBytes

std::size_t wowlib::formats::adt::detail::Alpha4BitBytes = AlphaTexels / 2
inlineconstexpr

The on-disk size of a 4-bit alpha map (4096 / 2 = 2048 bytes).

Definition at line 37 of file codec.hpp.

Referenced by wowlib::formats::adt::detail::AlphaMapCodec::decode4Bit(), and wowlib::formats::adt::detail::AlphaMapCodec::encode4Bit().

◆ AlphaDim

std::size_t wowlib::formats::adt::detail::AlphaDim = 64
inlineconstexpr

The edge length of the decoded square edit surface (64).

Definition at line 33 of file codec.hpp.

Referenced by wowlib::formats::adt::detail::TerrainMapCodec::_fixLastRowCol(), and wowlib::formats::adt::detail::AlphaMapCodec::encodeRle().

◆ AlphaTexels

◆ McvtCount

std::size_t wowlib::formats::adt::detail::McvtCount = 145
inlineconstexpr

The 9x9 + 8x8 = 145 vertices of the MCVT height / MCNR normal grid.

Definition at line 155 of file map_chunk.hpp.

Referenced by wowlib::formats::adt::detail::NormalCodec::read().

◆ ShadowBytes

std::size_t wowlib::formats::adt::detail::ShadowBytes = AlphaTexels / 8
inlineconstexpr

The on-disk size of a 1-bit shadow bitmap (4096 / 8 = 512 bytes).

Definition at line 39 of file codec.hpp.

Referenced by wowlib::formats::adt::detail::ShadowMapCodec::encode().