wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
header.hpp File Reference

ADT header binary structs (namespace wowlib::formats::adt::chunks): the per-cell MCNK header (SMChunk, 128 bytes) and the flying bounding box (MFBO). More...

#include <array>
#include <bit>
#include <cstdint>
#include <welder/vocabulary.hpp>
#include <wowlib/formats/common/flags.hpp>
#include <wowlib/formats/common/types.hpp>
Include dependency graph for header.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wowlib::formats::adt::chunks::SMChunk
 The per-cell MCNK header — 128 bytes, memcpy'd verbatim. More...
struct  wowlib::formats::adt::chunks::MHDRData
 The tile header (MHDR, 64 bytes, root/monolithic). More...
struct  wowlib::formats::adt::chunks::MFBOPlanes
 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. More...

Namespaces

namespace  wowlib
namespace  wowlib::formats
namespace  wowlib::formats::adt
namespace  wowlib::formats::adt::chunks
 ADT chunk binary structs (the MCNK cell header, texture layers, liquid records, flying bounds) and their flag enums.

Enumerations

enum class  wowlib::formats::adt::chunks::MapChunkFlags : std::uint32_t {
  wowlib::formats::adt::chunks::HasMcsh = 0x1 , wowlib::formats::adt::chunks::Impassable = 0x2 , wowlib::formats::adt::chunks::LqRiver = 0x4 , wowlib::formats::adt::chunks::LqOcean = 0x8 ,
  wowlib::formats::adt::chunks::LqMagma = 0x10 , wowlib::formats::adt::chunks::LqSlime = 0x20 , wowlib::formats::adt::chunks::HasMccv , wowlib::formats::adt::chunks::unknown_0x80 = 0x80 ,
  wowlib::formats::adt::chunks::DoNotFixAlphaMap = 0x8000 , wowlib::formats::adt::chunks::HighResHoles = 0x10000
}
 Per-cell MCNK header flag bits (SMChunk.flags). More...
enum class  wowlib::formats::adt::chunks::MapHeaderFlags : std::uint32_t { wowlib::formats::adt::chunks::HasMfbo = 0x1 , wowlib::formats::adt::chunks::Northrend = 0x2 }
 Tile header flag bits (MHDRData.flags). More...

Detailed Description

ADT header binary structs (namespace wowlib::formats::adt::chunks): the per-cell MCNK header (SMChunk, 128 bytes) and the flying bounding box (MFBO).

SMChunk carries many fields that are DERIVED from the cell's actual content — the sub-chunk offsets and sizes, the layer/ref/emitter counts. wowlib stamps those on write (MapChunk::write_slice) and hides them from the bindings (mark::exclude); the meaningful, user-authored fields (flags, indices, area, holes, the detail-doodad maps, the cell origin) stay exposed.

Definition in file header.hpp.