|
wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
|
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. | |
|
inline |
Append n raw bytes at p to out (a byte-copy primitive).
Definition at line 178 of file map_chunk.hpp.
Referenced by wowlib::formats::adt::detail::AlphaCodec::write(), wowlib::formats::adt::detail::LayerCodec::write(), wowlib::formats::adt::detail::NormalCodec::write(), wowlib::formats::adt::detail::ShadowCodec::write(), wowlib::formats::adt::detail::SoundEmitterCodec::write(), and wowlib::formats::adt::detail::MapChunk< V >::writeTo().
|
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().
|
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().
|
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().
The texel count of a decoded map (64 * 64 = 4096).
Definition at line 35 of file codec.hpp.
Referenced by wowlib::formats::adt::detail::ShadowMapCodec::decode(), wowlib::formats::adt::detail::AlphaMapCodec::decode4Bit(), wowlib::formats::adt::detail::AlphaMapCodec::decode8Bit(), wowlib::formats::adt::detail::AlphaMapCodec::decodeRle(), and wowlib::formats::adt::detail::MapChunk< canonicalVersion(V, MapChunkPivots, AdtVersions)>::validateExtra().
|
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().
|
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().