|
wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
|
| Nstd | STL namespace |
| Chash< wowlib::FileDataID > | |
| Nwowlib | |
| Naudit | |
| Ndetail | |
| CFormatDrivers | The per-format round-trip drivers behind Auditor::roundtrip |
| CRoundtripReport | |
| CAuditor | |
| Ndb | |
| Nblob | |
| CTableEntry | One table's directory entry, decoded |
| CRangeEntry | One schema range: a run of columns valid for the eras in the mask |
| CColumnEntry | One column, decoded to the raw blob facts (the catalog turns this into a wowlib::db::Column with an interned name) |
| CView | A structural view over one WDBS blob |
| Ndetail | |
| CColumnAccess | Everything the erased core needs to touch one column of a record: where it lives, what it is, and how its array elements stride |
| CColumnRows | The column-store row storage: one exact-width POD buffer per numeric column, one string vector per string-bearing column, one flags vector per LocString column — implementing both codec interfaces over them |
| CFacts | The per-column access facts, derived from the schema at bind |
| CElementTraits | Trait: the element type / extent of a member — unwraps std::array |
| CElementTraits< std::array< T, N > > | |
| CFixedString | A compile-time string NTTP (the column<"id">() spelling) |
| CIdSpec | Stored form of id: the member is the table's primary key ($id$) |
| CLocstringTraits | Trait: is T a LocString<N>? |
| CLocstringTraits< LocString< N > > | |
| CNoninlineSpec | Stored form of noninline: the member holds no bytes inside the record image — its values come from a satellite block (the WDC id list for ids, the relationship block for relations) |
| CRecordOps | The one thing that stays per-record: a table of thunks over the record VECTOR (only they know sizeof(Record)) plus the access table above |
| CRelationSpec | Stored form of relation: the member is a relationship key referencing the parent table's id ($relation$) |
| CStringPool | A writable string block resolving values to byte-perfect offsets: the journaled original offset while the value still matches, else an equal existing entry, else a fresh append |
| CTypedMismatch | The consteval-validation failure carrier: throwing it inside constant evaluation aborts compilation with the message in the diagnostic |
| Nwdc | |
| CBitReader | A bounds-guarded little-endian bit reader over a record's byte span |
| CBitWriter | A little-endian bit writer over a record buffer — the encode counterpart of BitReader |
| CWdc1Header | The 84-byte WDC1 top header |
| CWdc3Header | The 72-byte WDC3 top header (WDC4 reuses it verbatim; WDC5 prepends Wdc5HeaderPrefix in front of the fields after magic) |
| CWdc3SectionHeader | The 40-byte per-section header of WDC3/WDC4/WDC5 |
| CWdc5HeaderPrefix | The 132 bytes WDC5 splices between magic and recordCount: a numeric schema version and a zero-padded schema-name string (e.g |
| CWdcFieldStorage | The 24-byte field_storage_info entry: how one column is stored |
| CWdcFieldStructure | The 4-byte fieldStructure entry: (32 - size) / 8 is the field's storage byte width, position its byte offset in a record |
| CWdcImage | A parsed WDC-family file: the (normalized) header, shared tables, and located sections |
| CWdcSection | A located, structurally-validated section |
| CColumn | One column of a record schema, derived from a record member by reflection (typed records) or from the schema catalog (the generic table) |
| CColumnAccess | Everything the erased core needs to touch one column of a record: where it lives, what it is, and how its array elements stride |
| CDynTable | The generic client-database table: schema resolved at runtime from the schema catalog, rows in a column store, format engine and preserved decode state inherited from TableBase (read/write/validate/strings/ encryptedSections all bind once, there) |
| CEncryptedSection | One WDC section whose records could not be decoded because they are encrypted under a TACT key wowlib does not hold |
| CErasedRecordSink | RecordSink over a live std::vector<Record>& — the decode target |
| CErasedRecordSource | RecordSource over a const std::vector<Record>& — the encode source |
| CLocString | A decoded pre-Cataclysm localized string column: Langs language slots (8 before TBC 2.1.0.6692 added ruRU, 16 after) plus the trailing locale flags field |
| CPodColumnView | A scalar column's whole storage, for zero-copy array views: the raw exact-width buffer plus the facts to type it (rows x elements_per_row matrix, row-major) |
| CRecordOps | The one thing that stays per-record: a table of thunks over the record VECTOR (only they know sizeof(Record)) plus the access table above |
| CRecordSink | The decode target: the codecs build the record vector through this, one field at a time |
| CRecordSource | The encode source: the codecs read the record vector through this |
| CSchemaCatalog | The parsed, materialized form of one WDBS schema blob |
| CTable | A client database table: the typed records of one DBFilesClient file |
| CTableBase | The welded supertype of every generated table class: the whole table surface — decode, encode, validation, the preserved-state getters — bound ONCE and inherited, in every language, by all ~4200 generated (table x era) classes |
| CTableCore | The erased engine of one table: identity + records access + preserved decode state, with every operation's body compiled once |
| CTableInfo | The per-table identity a codec needs beyond the record data: the client version (format selection, diagnostics), the WoWDBDefs table name (diagnostics), and the runtime schema |
| CTableSchema | One resolved (table, client version) schema: what SchemaCatalog::lookup hands the engine |
| CTableState | The preserved decode state a table carries between read() and write() so a WDBC/WDB2 write is byte-perfect and a WDC write reproduces the original compression |
| CTypedTable | A typed, consteval-validated face over one DynTable: the table itself stays fully generic (every column decodes, byte-perfect round-trip holds); this projects rows into Record values, copies edits back, and hands out zero-copy typed column spans |
| CWdb2Header | The 48-byte WDB2 header (wowdev.wiki/DB2) |
| CWdbcHeader | The 20-byte WDBC header (wowdev.wiki/DBC) |
| Ndetail | |
| CEngineGeneration | One retail engine generation on the global build counter: the build at which that major became the live/PTR client — the point from which concurrently built Classic clients fork off it — and the release wowlib models the generation with |
| Nformats | |
| Nadt | |
| Nchunks | ADT chunk binary structs (the MCNK cell header, texture layers, liquid records, flying bounds) and their flag enums |
| CCWSoundEmitter | One sound emitter (MCSE, 28 bytes): the client reads 0x1C bytes per entry — a sound-entry id and a position/size pair |
| CCWSoundEmitterVanilla | One pre-WotLK sound emitter (MCSE, 52 bytes): the full inline emitter parameters later folded into SoundEntriesAdvanced |
| CMCNREntry | One MCNR normal (3 signed bytes, x Z Y; 127 == 1.0) |
| CMFBOPlanes | The flying bounding box (MFBO, BC+): two 3x3 grids of int16 heights — a maximum plane you fall through and a minimum plane below the world |
| CMHDRData | The tile header (MHDR, 64 bytes, root/monolithic) |
| CSLVert | One legacy liquid vertex (MCLQ, 8 bytes) |
| CSMChunk | The per-cell MCNK header — 128 bytes, memcpy'd verbatim |
| CSMDoodadSetRange | One Shadowlands doodad-set range (MWDR): a [begin, end] span into MWDS |
| CSMLayer | A per-cell texture layer (MCLY, 16 bytes) |
| CSMTerrainMaterial | One MCMT terrain-material record (Cata+): a TerrainMaterial id per layer |
| CSMTextureColorGrading | One MTCG color-grading record (Shadowlands+): the color-grading LUT FileDataIDs for the same-index diffuse texture |
| CSMTextureFlags | One MTXF texture-flags record (WotLK+): flags for the same-index MTEX texture |
| CSMTextureParams | One MTXP texture-parameter record (MoP+): the MTXF flags plus the _h height-texture scale/offset that drive height-based blending |
| CSMVert | The magma/slime reading of an MCLQ vertex (8 bytes): two u16 texcoords and the shared height |
| CSWFlowv | One legacy liquid flow vector (MCLQ SWFlowv, 40 bytes) |
| CUVMapEntry | One MH2O UV texture-coordinate entry (two u16, divided by 8 in shaders) |
| Ndetail | |
| CADT | A terrain tile for one client version |
| CADTFlying | The flying bounds (MFBO), BC+ |
| CADTSplit | Cataclysm+ split-file tile chunks (the tile now spans root/_tex0/_obj0/ _obj1/_lod files) |
| CADTTexFdids | The 8.1+ FileDataID texture tables (_tex0), which replace MTEX names on height-texturing maps |
| CADTWotlk | WotLK+ tile chunks: the water (MH2O) and the texture flags (MTXF) |
| CAlphaCodec | MCAL codec: decode/encode the per-layer 64x64 alpha maps through AlphaMapCodec, indexing the sibling layers' flags + offsetInMcal |
| CAlphaMapCodec | The MCAL alpha-map codec |
| CInFileSpec | Stored form of an inFile annotation: a binary chunk's physical-file group |
| CLayerCodec | 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) |
| CMapChunk | A terrain chunk (MCNK) for one client version |
| CMapChunkCata | Vertex lighting (MCLV) and terrain materials (MCMT), Cata+ |
| CMapChunkColor | Vertex colors (MCCV), WotLK+ |
| CMapChunkLegacyLiquid | Legacy liquid (MCLQ) |
| CMapChunkReadCtx | 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 |
| CMapChunkWriteCtx | Context a sub-chunk codec needs to write one MCNK sub-chunk |
| CNormalCodec | MCNR codec: 145 XZY normal triples followed by 13 undeclared padding bytes (a near-constant client pattern preserved for the semantic round-trip) |
| CSerializerSpec | 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) |
| CShadowCodec | MCSH codec: the 64x64 shadow map through ShadowMapCodec |
| CShadowMapCodec | The MCSH shadow-map codec: a 512-byte 1-bit bitmap on disk, a 4096-texel 0/1 surface in memory |
| CSoundEmitterCodec | 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) |
| CTerrainMapCodec | Shared geometry for the 64x64 terrain map codecs: the last-row/column repair the client applies to "unfixed" maps on load |
| CADTBase | The version-agnostic base of every ADT<V> (welded as "ADT"): the language bindings attach for_version/read/write/convert here |
| CLiquidInstance | One liquid layer of one terrain cell, fully decoded (an MH2O instance) |
| CMapChunkBase | The version-agnostic base of every MapChunk<V> (welded as "MapChunk"): the language bindings attach for_version here and give the per-version chunks a common welded supertype |
| CMapChunkLiquid | All liquid of one terrain cell: the attribute masks plus its layers |
| CMCLQData | The legacy per-chunk liquid (MCLQ, up to and including WotLK): a 9x9 vertex grid, an 8x8 tile-flag grid and up to two flow vectors, decoded |
| CMH2OData | The whole-tile MH2O chunk: liquid for each of the 256 cells, decoded |
| Nblp | |
| Ndetail | |
| CBLPHeader | The 148-byte BLP2 file header, exactly as on disk (the 1024-byte palette follows it) |
| CDxtCodec | The DXT/BC block codec |
| CMipmapScaler | The mip-chain downscaler: one box-filter halving step per call, the standard non-sRGB-aware average every BLP toolchain uses |
| CPaletteCodec | The palettized codec |
| CRawCodec | The uncompressed-BGRA codec (ColorEncoding::Bgra / BgraAlt): a pure channel swizzle |
| CStoredLayout | The on-disk placement a read recorded, replayed by write() while the payloads are unmodified so unusual files (inter-mip gaps, trailing bytes, non-contiguous or shared mip placement) still round-trip byte-perfectly |
| CRun | One run of file bytes covered by neither the header region nor any mip payload (an inter-mip gap or a trailing tail) |
| CImage | |
| CEncodeSettings | |
| CBLP | |
| Ncommon | |
| CC2IVector | A 2D integer vector |
| CC2Vector | A 2D float vector: texture coordinates, UV animation speeds |
| CC33Matrix | A 3x3 matrix as three column C3Vectors |
| CC34Matrix | A 3x4 matrix as four column C3Vectors |
| CC3IVector | A 3D integer vector |
| CC3Vector | A 3D float vector — the workhorse: positions, normals, rotations-as-Euler-degrees in placements |
| CC44Matrix | A 4x4 matrix as four column C4Vectors |
| CC4Plane | A plane as a normal and its signed distance from the origin |
| CC4Quaternion | |
| CC4Vector | A 4D float vector |
| CCAaBox | An axis-aligned bounding box: minimum and maximum corners |
| CCAaSphere | An axis-aligned sphere: position and radius |
| CCArgb | A color stored as r, g, b, a bytes |
| CCImVector | A color stored as b, g, r, a bytes — the client's immediate-mode vertex color layout (WMO MOCV, doodad colors) |
| CCRange | A float range: minimum and maximum |
| Cfixed16 | A signed 16-bit fixed-point value with an implicit 0x7FFF scale |
| CSMDoodadDef | |
| CSMMapObjDef | |
| Ndetail | |
| CChunkSpec | Stored form of a chunk annotation: the member's binary identity |
| CChunkWriter | Append-only chunk emission with size backpatching |
| CContainerSpec | Stored form of container: the chunk payload is itself a chunk stream; the member is a nested chunked entity read recursively |
| CCountExactlySpec | Stored form of countExactly: the member's element count is fixed by the format (an ADT map chunk's 145 height samples) |
| CCountMatchesSpec | Stored form of countMatches: when the member is engaged, its element count times scale must equal the named sibling member's count |
| CCountMultipleOfSpec | Stored form of countMultipleOf: the member's element count must be a multiple of divisor |
| CExpectedValueSpec | Stored form of expectedValue: the (integral) data member must hold exactly this value (format-version fields) |
| CGatedBySpec | Stored form of gatedBy (offset entities): the member occupies binary bytes only when the entity's globalFlags has any mask bit set |
| CHeaderSpec | Stored form of header: raw leading bytes of a container payload, memcpy'd before chunk scanning starts — not a chunk of its own |
| CIndexesInRootSpec | Stored form of indexesInRoot: every element of the (integral) vector member must be a valid index into the named member of the ASSEMBLY's root entity |
| CIndexesOptionalSpec | Stored form of indexesOptional: like indexes, but the client's "no reference" sentinel (a negative value, or the all-ones value of an unsigned element) is a legal element |
| CIndexesSpec | Stored form of indexes: every element of the (integral) vector member must be a valid index into the named sibling member |
| CNonemptySpec | Stored form of nonempty: the member must hold data for the file to be meaningful to the client, even though read() tolerates its absence |
| COffsetAfterSpec | Stored form of offsetAfter (offset entities): the trait-base member's positional layout position — right after the named own member of the entity |
| COptionalSpec | Stored form of optional: absence on read is not an error |
| CRepeatedTraits | Trait: is T a Repeated<U, N> (a repeats-annotated member)? |
| CRepeatedTraits< Repeated< U, N > > | |
| CRepeatingSpec | Stored form of repeating: the chunk appears once per element, any number of times (WDL MARE tiles, _mpv PVMI/PVPD/PVBD groups) |
| CRepeatsSpec | Stored form of repeats: the chunk may appear up to max times |
| CSequenceDataSpec | Stored form of SequenceData (offset entities): the member's nested per-element data may live in an external buffer (M2 .anim files) — the engine resolves each outer element's base span/sink through the I/O context instead of assuming the entity's own buffer |
| CSinceSpec | Stored form of since: member active for entity versions >= v |
| CUntilSpec | Stored form of until: member active for entity versions < v |
| Nm2 | |
| Nbone | The .bone facial-pose file entity (WoD+) |
| CBoneFilePrelude | The .bone raw prelude: a version marker, always 1 so far |
| CBoneFile | One .bone file: which bones get facial-pose offset matrices, and the matrices |
| Nchunked | The Legion+ chunked .m2 shell (M2ChunkedFile) with its per-version classes and the companion-chunk payload records (AFID entries, extended particles, parent-model overrides) |
| Nrecord | Companion-chunk payload records of the chunked .m2 shell |
| CAnimFileEntry | One AFID entry: which FileDataID serves a sequence's .anim data |
| CM2ExtendedParticleSimple | One EXPT record: the pre-EXP2 extended particle parameters (the client reconstructs EXP2 from these when EXP2 is absent) |
| CM2ExtendedParticle | An EXP2 record: the EXPT parameters plus the per-lifetime alpha-cutoff ramp |
| CM2LightDetail | One DETL record: per-light shadow/diffuse overrides (9.0+); the halves are raw IEEE half-floats |
| CExp2Data | The EXP2 chunk payload: extended particle records, one per particle emitter |
| CPabcData | The PABC chunk payload: the parent-model sequence-id blacklist ('BlacklistAnimData') |
| CPsbcData | The PSBC chunk payload: parent sequence bounds |
| CPgd1Data | The PGD1 chunk payload: per-particle-emitter geoset assignments |
| CM2ChunkedFileBase | The version-agnostic base of every M2ChunkedFile<V> (welded as "M2ChunkedFile") |
| CM2ChunkedFile | The chunked .m2 shell for one Legion+ client version |
| Ndetail | A shared model skeleton (.skel, 7.3+): the bones, attachments and sequences a skel-based model moved out of its MD20 image, plus the satellite ids |
| CAssemblyLegion | Legion+ assembly members: the chunk stream and the satellites it references |
| CAssemblyLegion< V > | |
| CAssemblySkins | WotLK+ assembly members: the external .skin LOD views baked in |
| CAssemblySkins< V > | |
| CM2 | A whole M2 model for one client version: the MD20 body plus every baked-in satellite |
| CSkelAttachments | The SKA1 payload: the attachments that moved out of the model (external sequences' track data lives in the .anim AFSA chunks) |
| CSkelBones | The SKB1 payload: the bones that moved out of the model (external sequences' track data lives in the .anim AFSB chunks) |
| CSkeleton | |
| CSkelHeader | The SKL1 payload: the skeleton's identity |
| CSkelSequences | The SKS1 payload: the sequence set that moved out of the model |
| Nroot | The MD20 model body (M2Root) with its per-version classes |
| Ndetail | |
| CDataPreWotlk | Pre-WotLK members: the embedded skin profiles and the vanilla/TBC-only lookup blocks |
| CDataWotlk | WotLK+ members: the external-skin count replacing the embedded profiles |
| CDataTbc | TBC+ members: the flag-gated combiner-combo tail |
| Nrecord | M2 body record structs (sequences, bones, tracks, textures, cameras, emitters) and their flag enums |
| Ndetail | |
| CM2Attachment | An attachment point (weapons, effects, name plates), relative to a bone |
| CM2Camera | |
| CM2Camera< V > | A camera, pre-Cata layout: a static diagonal FOV plus position/target/roll spline tracks |
| CM2Color | A vertex color + alpha animation pair, referenced from skin batches by color index |
| CM2CompBone | |
| CM2CompBone< V > | |
| CM2Event | A timed event ($DTH death thud, footsteps, sounds); every enabled-track key fires |
| CM2Light | A model light: type 0 directional (login screens only), 1 point |
| CM2Particle | |
| CM2Particle< V > | A particle emitter, vanilla layout: wide u16 blending/emitter header, static color/scale/UV ramps, a single spin value |
| CM2Ribbon | A ribbon (trail) emitter; the priority/color-index tail exists WotLK+ |
| CM2Sequence | |
| CM2Sequence< V > | An animation sequence, pre-WotLK layout: global start/end timestamps, one u32 blend time |
| CM2TextureFlipbook | A pre-WotLK texture flipbook slot; never observed engaged in files |
| CM2TextureTransform | A UV animation: translation/rotation/scaling keyframes for the texture matrix (rotation pivots at texture center 0.5, 0.5) |
| CM2TextureWeight | A global texture weight (transparency) track |
| CM2Track | An animation track for value type T, laid out for client version V |
| CM2Track< T, V > | An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges |
| CM2TrackBase | A timestamp-only track (event triggers: every key is an implicit "fire now") |
| CM2TrackBase< V > | |
| CFBlock | |
| CM2AttachmentBase | The version-agnostic base of every M2Attachment<V> (welded as "M2Attachment") |
| CM2Bounds | A bounding volume: axis-aligned extent plus sphere radius |
| CM2Box | A model-space box: minimum and maximum corner vectors |
| CM2CameraBase | The version-agnostic base of every M2Camera<V> (welded as "M2Camera") |
| CM2ColorBase | The version-agnostic base of every M2Color<V> (welded as "M2Color") |
| CM2CompBoneBase | The version-agnostic base of every M2CompBone<V> (welded as "M2CompBone") |
| CM2CompQuat | A quaternion compressed to i16 x, y, z, w (TBC+ bone rotations); decompress as (v < 0 ? |
| CM2EventBase | The version-agnostic base of every M2Event<V> (welded as "M2Event") |
| CM2EventTrackBase | The version-agnostic base of every M2EventTrack<V> (welded as "M2EventTrack") |
| CM2LightBase | The version-agnostic base of every M2Light<V> (welded as "M2Light") |
| CM2Loop | A global-loop entry: the timestamp a global sequence wraps at |
| CM2Material | An M2 material: render flags (see MaterialFlags) and the blending mode (see M2/Rendering M2BLEND) |
| CM2ParticleBase | The version-agnostic base of every M2Particle<V> (welded as "M2Particle") |
| CM2PartTrack | |
| CM2Range | An inclusive u32 range: pre-WotLK track interpolation ranges, sequence replay bounds |
| CM2RibbonBase | The version-agnostic base of every M2Ribbon<V> (welded as "M2Ribbon") |
| CM2SequenceBase | The version-agnostic base of every M2Sequence<V> (welded as "M2Sequence") |
| CM2SequenceFallback | A pre-WotLK playable-animation fallback: the substitute animation id plus how to play it (0 normal, 1 backwards, 2 frame-by-frame, 3 freeze) |
| CM2SplineKey | A spline keyframe: the value plus incoming/outgoing tangents (bezier/hermite camera tracks) |
| CM2Texture | A texture definition: type 0 references the filename (TXID FileDataIDs replace it in 8.0+); non-zero types are runtime component slots (skin, hair, monster skins, ...) |
| CM2TextureFlipbookBase | The version-agnostic base of every M2TextureFlipbook<V> (welded as "M2TextureFlipbook") |
| CM2TextureTransformBase | The version-agnostic base of every M2TextureTransform<V> (welded as "M2TextureTransform") |
| CM2TextureWeightBase | The version-agnostic base of every M2TextureWeight<V> (welded as "M2TextureWeight") |
| CM2TrackFamilyBase | The version-agnostic base of every M2Track<T, V> VALUE FAMILY, one base per value type T (welded per family as "M2TrackC3Vector", ... — see the alias tables in bindings/instantiations/m2_ranges.hpp) |
| CM2Vec2FP69 | A 2D vector of 6.9 fixed-point values (raw u16 storage) |
| CM2Vertex | An M2 vertex: position, 4-bone weights/indices, normal and two texture coordinate sets |
| CM2RootBase | The version-agnostic base of every M2Root<V> (welded as "M2Root") |
| CM2Root | The MD20 model body for one client version: header scalars plus every offset-addressed block, decoded into vectors |
| Nskin | The external LOD view entity (.skin file, WotLK+) and the skin profile records (submeshes, render batches) |
| Ndetail | One external LOD view of a model ("{model}0N.skin", or SFID FileDataIDs in Legion+) |
| CM2SkinProfile | One LOD view: local vertex/bone lookups into the model, submeshes and render batches; embedded in the model pre-WotLK, an own .skin file after |
| CM2SkinSection | |
| CM2SkinSection< V > | A skin submesh, vanilla layout (no sort data yet) |
| CSkin | |
| CM2Batch | An M2 skin render batch (texture unit): submesh + material + the lookup bases the shaders consume |
| CM2ShadowBatch | An M2 skin shadow batch (Cata+); the client can also generate these from the render batches |
| CM2SkinProfileBase | The version-agnostic base of every M2SkinProfile<V> (welded as "M2SkinProfile") |
| CM2SkinSectionBase | The version-agnostic base of every M2SkinSection<V> (welded as "M2SkinSection") |
| CSkinBase | The version-agnostic base of every Skin<V> (welded as "Skin") |
| CAnimBuffers | The per-sequence external write buffers every M2-family write path shares: an external sequence's data lands in its own per-key buffer as the tracks route their blocks through sink(); inline sequences (and aliases, whose flags never mark them external) stay in the entity image |
| CAnimCache | A lazy per-sequence .anim loader handing out resolution windows: for a chunked file (leading AFM2) the requested chunk's payload, for a raw file the whole content when AFM2 is asked for (raw files predate the split sections) |
| CBoneFile | One .bone file: which bones get facial-pose offset matrices, and the matrices |
| CM2Base | The version-agnostic base of every M2<V> (welded as "M2") |
| CM2OffsetBase | The non-template marker base every offset block carries (what the OffsetEntity concept detects) |
| CM2OffsetBlock | The serialization face of an offset block, mixed in CRTP-style: an entity struct E : M2OffsetBlock<E> gains read()/write() plus the imageSize() and memberOffset() layout queries |
| CM2ArrayRef | The on-disk shape of an offset-array reference: element count and the byte offset of the data block, relative to the entity image base |
| COffsetReadContext | Resolution of SequenceData members while reading: where each outer element's nested data lives |
| COffsetWriteContext | Resolution of SequenceData members while writing: which buffer each outer element's nested data blocks are appended to (offsets recorded relative to that buffer) |
| CSatellitePaths | The satellite-file naming conventions around one model path: every companion file of "creature\\x\\x.m2" derives from the same stem |
| CSequenceKey | A sequence's satellite identity: the (animation id, variation) pair the .anim naming convention ("{stem}AAAA-SS.anim") and the AFID entries key on |
| CSkeletonBase | The version-agnostic base of every Skeleton<V> (welded as "Skeleton") |
| CSkelParentData | The SKPD payload: the parent-skeleton link used for de-duplication (e.g |
| Nwdl | |
| Nchunks | WDL chunk binary structs (per-tile heightmaps, hole and ocean masks, low-resolution placements, sky scenes) |
| CLodDoodadFade | |
| CLodExtent | |
| CLodMapObjDef | |
| CSceneLivingDef | One scene-living (world) definition (an MSLD record, The War Within+): a time-windowed scene schedule |
| CSkyScene | One sky scene (an MSSN record, Shadowlands+), tying a SkySceneID to its condition and object ranges |
| CSkySceneCondition | One sky-scene condition (an MSSC record, Shadowlands+) |
| CSkySceneObject | One sky-scene object (an MSSO record, Shadowlands+): a placed distant M2 |
| CSkySceneObjectParams | One sky-scene object params record (an MSSF record; documented as Dragonflight+ but observed in 9.2.7 files) |
| CTileHeights | |
| CTileHoles | |
| CTileOcean | |
| Ndetail | |
| CWdlPreLegion | The pre-Legion per-tile occlusion mesh |
| CWdlTbc | The TBC+ per-tile hole masks |
| CWdlLegion | The Legion object swap (low-resolution placements) and ocean masks |
| CWdlBfA | The BfA fade distances and WMO-map byte |
| CWdlSL | The Shadowlands sky scenes and undocumented blobs |
| CWdlTww | The War Within scene-living schedule |
| CWDL | A WDL low-resolution heightmap file for one client version |
| CWDLBase | The version-agnostic base of every WDL<V> (welded as "WDL") |
| Nwdt | |
| Ndetail | |
| CSatellitesWod | The WoD satellites: occlusion and lights |
| CSatellitesLegion725 | The Legion 7.2.5 satellite: volumetric fogs |
| CSatellitesBfa | The BfA satellite: particulate volumes |
| CWDT | A whole WDT (map description) for one client version: the main file and its era's satellite files unified as one entity |
| Nfogs | The _fogs.wdt volumetric-fog satellite entity (Legion 7.2.5+) |
| Nchunks | _fogs.wdt chunk binary structs (volumetric fogs and their extensions) |
| CVolumetricFog | One volumetric fog (VFOG, 8.0+) |
| CVolumetricFogExtra | One VFEX extension record (11.0+, format version 2): optional extra data for a VFOG entry, matched by fog id |
| Ndetail | |
| CFogsBfa | The fog volumes, first shipped with content in 8.0.1.25902 |
| CFogsTww | The version-2 extension records (11.0+) |
| CWDTFogs | A _fogs.wdt volumetric-fog satellite for one client version (Legion 7.2.5+) |
| CWDTFogsBase | The version-agnostic base of every WDTFogs<V> (welded as "WDTFogs"); bindings-only, like every *Base |
| Nlights | The _lgt.wdt lights satellite entity (WoD+) |
| Nchunks | _lgt.wdt chunk binary structs (point lights, spot lights, light animations) |
| CMapPointLightLegacy | One WoD point light (MPLT); Legion clients stop reading these in favor of MPL2 |
| CMapPointLight | One Legion point light (MPL2) |
| CMapPointLight3 | One Shadowlands point light (MPL3; replaces MPL2 in 9.0+ files) |
| CMapSpotLight | One Legion spot light (MSLT) |
| CLightAnimation | One light texture animation (MLTA), referenced by mlta_index |
| Ndetail | |
| CLightsWod | The WoD-only point lights, dropped when Legion introduces MPL2 |
| CLightsLegion | The Legion light set (point v2, spot, textures, animations) |
| CLightsSL | The Shadowlands point-light revision |
| CWDTLights | A _lgt.wdt lights satellite for one client version (WoD+): the map's freely placed lights |
| CWDTLightsBase | The version-agnostic base of every WDTLights<V> (welded as "WDTLights"); bindings-only, like every *Base |
| Nmpv | The _mpv.wdt particulate-volume satellite entity (BfA+) |
| Nchunks | _mpv.wdt chunk binary structs (particulate points and bounds) |
| CParticulatePoint | One PVPD particulate-volume point |
| CParticulateBounds | One PVBD particulate-volume bounds record |
| Ndetail | |
| CWDTParticulates | A _mpv.wdt particulate-volume satellite for one client version (BfA 8.0.1+) |
| CWDTParticulatesBase | The version-agnostic base of every WDTParticulates<V> (welded as "WDTParticulates"); bindings-only, like every *Base |
| Nocclusion | The _occ.wdt occlusion satellite entity (WoD+) |
| Nchunks | _occ.wdt chunk binary structs (the MAOI tile index) |
| COcclusionIndex | |
| Ndetail | |
| CWDTOcclusion | A _occ.wdt occlusion satellite for one client version (WoD+): the MAOI tile index and the packed MAOH heightmap block |
| CWDTOcclusionBase | The version-agnostic base of every WDTOcclusion<V> (welded as "WDTOcclusion"); bindings-only, like every *Base |
| Nroot | The WDT main-file entity: WDTRoot and its per-version classes |
| Nchunks | WDT main-file chunk binary structs (the MPHD map header, MAIN tile table, MAID FileDataIDs) and their flag enums |
| Ndetail | The 32-byte MPHD map header |
| CSMMapHeader | |
| CSMMapHeader< V > | The MPHD map header: the map-wide flags; the rest of the record is unused before 8.1 |
| CWDTHeaderBase | The version-agnostic base of every SMMapHeader<V>, welded as "WDTHeader" |
| CSMAreaInfo | |
| CMapFileDataIDs | |
| Ndetail | |
| CRoot81 | 8.1+ main-file chunks (the FileDataID era) |
| CRoot90 | 9.0+ main-file chunks |
| CWDTRoot | A WDT main file for one client version |
| CWDTRootBase | The version-agnostic base of every WDTRoot<V> (welded as "WDTRoot") |
| CWDTBase | The version-agnostic base of every WDT<V> (welded as "WDT") |
| Nwmo | |
| Ndetail | |
| CWMO | A whole WMO (world map object) for one client version: the root file and all its group files unified as one entity |
| Ngroup | The WMO group-file entities: WMOGroup, WMOGroupBody and their per-version classes |
| Nchunks | WMO group-file chunk binary structs (the MOGP header, render batches, BSP nodes, group lights) and their flag enums |
| Ndetail | One render batch, 24 bytes |
| CSMOBatch | |
| CSMOBatch< V > | One MOBA render batch: an index range sharing one material, with its low-resolution culling box |
| CSMOGroupHeader | |
| CSMOGroupHeader< V > | The MOGP group header: names, flags, bounds, portal and batch ranges, fog and liquid |
| CCAaBspNode | One MOBN BSP node for collision: a split plane or a leaf referencing faces through MOBR |
| CLightSet | |
| CMLIQData | |
| CPointLight | One MOLP point light (Legion+) |
| CPointLightAnim | One MOP2 entry (8.1+): an animated point light with flicker and light-cookie texture data |
| CPoly2 | |
| CRenderBatchOverride | |
| CShadowBatch | One MOBS shadow batch (Cata+): the shadow-pass counterpart of a MOBA render batch |
| CSMOLTile | |
| CSMOLVert | |
| CSMOMVert | |
| CSMOPoly | Per-triangle material info (MOPY) |
| CWMOBatchBase | The version-agnostic base of every SMOBatch<V>, welded as "WMOBatch" |
| CWMOGroupHeaderBase | The version-agnostic base of every SMOGroupHeader<V>, welded as "WMOGroupHeader" |
| Ndetail | |
| CGroupBodyCata | Cata+ (4.0) group-body chunks |
| CGroupBodyMop | MoP+ (5.0) group-body chunks |
| CGroupBodyWod | WoD+ (6.0) group-body chunks |
| CGroupBodyLegion | Legion+ (7.0.1) group-body chunks |
| CGroupBody81 | 8.1+ group-body light-set chunks |
| CGroupBody83 | 8.3+ group-body chunks |
| CGroupBody90 | 9.0+ group-body chunks (large-mesh indices and the volume/light refs) |
| CGroupBody100 | 10.0+ (Dragonflight) group-body chunks: the query surface and the second vertex-color weights |
| CWMOGroupBody | The MOGP container payload for one client version |
| CWMOGroup | One WMO group file for one client version: the format version (MVER) and the MOGP container holding the group's geometry |
| CWMOGroupBodyBase | The version-agnostic base of every WMOGroupBody<V> (welded as "WMOGroupBody") |
| CWMOGroupBase | The version-agnostic base of every WMOGroup<V> (welded as "WMOGroup") |
| Nroot | The WMO root-file entity: WMORoot and its per-version classes |
| Nchunks | WMO root-file chunk binary structs (MOHD, MOMT, lights, doodads, fog, ambient volumes) and their flag enums |
| CAmbientBoxVolume | One MBVD entry (8.3+): a box-shaped ambient volume bounded by six planes |
| CAmbientVolume | |
| CFogExtra | One MFED entry (9.0+): fog extra data; same count as MFOG |
| CGroupInfo2 | |
| CLightExtension | |
| CGradient | One directional gradient sample: a direction (usually axis-aligned) and its value |
| CNewLight | |
| CPortalExtra | |
| CSMODoodadDef | One MODD doodad placement: an M2 instance inside the WMO, quaternion-oriented in model space |
| CSMODoodadSet | |
| CSMOFog | One MFOG entry: a fog volume with regular and under-water settings |
| CFog | One fog band: end distance, start scalar and color |
| CSMOGroupInfo | One MOGI entry: per-group flags, bounds and name, mirrored from the group file's own header |
| CSMOHeader | The MOHD root header: entity counts, ambient color, bounds and root-wide flags |
| CSMOLight | One MOLT light |
| CSMOMaterial | |
| CSMOPortal | One MOPT portal: a polygon plane separating two groups |
| CSMOPortalRef | One MOPR entry: a group's reference to a portal and the group on the other side |
| CSMOVisibleBlock | |
| CUVAnimation | |
| Ndetail | |
| CRootLegion | Legion+ (7.0.1) root chunks |
| CRoot73 | 7.3+ root chunks |
| CRootPre83 | Pre-8.3 root chunks: the by-name file-reference blocks |
| CRoot81 | 8.1+ root chunks (the FileDataID chunks that replace name lookups) |
| CRoot83 | 8.3+ root chunks (per-doodad colour + the volume family) |
| CRoot90 | 9.0+ root chunks (fog/group v2, dynamic lights, detail doodads) |
| CRoot91 | 9.1+ root chunks |
| CRoot110 | 11.0+ root chunks |
| CRoot111 | 11.1+ root chunks |
| CWMORoot | A WMO (world map object) root file for one client version |
| CWMORootBase | The version-agnostic base of every WMORoot<V> (welded as "WMORoot") |
| CWMOBase | The version-agnostic base of every WMO<V> (welded as "WMO") |
| CAbsent | A distinct empty base per Trait, so an entity inheriting several inactive version slots never inherits the same empty type twice (ill-formed) |
| CChunkBlob | An unparsed chunk payload, preserved verbatim for round-trip |
| CChunkedFile | The serialization face of a chunked entity, mixed in CRTP-style: an entity struct E : ChunkedFile<E> carries the ChunkExtras bookkeeping and gains the read()/write() methods every file representation shares |
| CChunkExtras | Round-trip bookkeeping common to every chunked entity: the encounter journal, unmodeled chunks, and stray trailing bytes |
| CFileEntityBase | The version-agnostic root of every file-level entity (welded as "FileEntity") |
| CJournalEntry | One chunk encounter in file order — the write path replays the journal to reproduce the original byte layout exactly |
| CRangeRow | One row of a family's welded range table: the alias suffix (stringized from the x-macro) and the range's canonical version |
| CRepeated | Storage for a chunk that may appear up to N times in one entity (MOTV texcoord sets, MOCV vertex-color layers) |
| CStringBlock | |
| CEntry | One decoded string and the blob byte offset other chunks reference it by |
| CUnknownChunk | A chunk the entity does not model, preserved verbatim for round-trip |
| CValidationIssue | One validate() finding: where it is, how bad it is, and what is wrong |
| CValidationReport | |
| CVersionTag | Tags the target version in convert_step overload signatures |
| Nfs | |
| Ndetail | |
| CChainEntry | One base-tier row |
| CChainMember | One resolved member of a chain, in load order |
| CFdidAllocator | Monotonic allocator for custom (non-Blizzard) FileDataIDs |
| CMpqChainSpec | A client version's archive chain: the fixed base tier plus how its patch tier is found |
| CCascStorage | Local CASC storage |
| COptions | What to open and how |
| CClientFileSystem | The static composition of one client's file access: storage backend + listfile database + optional project-directory overlay |
| CClientInstall | |
| CCsvListfile | The CSV-backed path<->FileDataID database ('fileDataId;filepath' per line, the community listfile format of github.com/wowdev/wow-listfile) |
| CCsvListfileOptions | Tuning knobs for loading a listfile |
| CFileSystem | |
| CFileSystemSettings | |
| CMpqStorage | MPQ chain storage |
| COptions | What to open and how |
| COpenedArchive | One opened member of the chain, for introspection and tests |
| CNullListfile | The no-database provider for clients that need none (MPQ-era) |
| CProjectDirectory | A local directory acting as the ultimate patch: files here override every client archive, and new files are added here |
| CClientVersion | |
| CError | A wowlib operation failure: a machine-readable code, a human-readable message, and the originating native (StormLib/CascLib/OS) error value when one exists |
| CFileDataID | |
| CFileKey |