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

WDBC — the client-database format of every pre-Cataclysm .dbc (and the .dbc leftovers of Cataclysm..Legion clients): a 20-byte header, recordCount fixed-stride records, then the string block. More...

#include <cstddef>
#include <cstdint>
#include <span>
#include <type_traits>
#include <wowlib/core/buffer.hpp>
#include <wowlib/core/error.hpp>
#include <wowlib/db/codec.hpp>
#include <wowlib/formats/common/fourcc.hpp>
Include dependency graph for wdbc.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wowlib::db::WdbcHeader
 The 20-byte WDBC header (wowdev.wiki/DBC). More...

Namespaces

namespace  wowlib
namespace  wowlib::db

Functions

Result< void > wowlib::db::readWdbc (const TableInfo &info, std::span< const std::byte > data, RecordSink &sink, TableState &state)
 Decode a WDBC image: 20-byte header, fixed-stride records, string block.
Result< FileBuffer > wowlib::db::writeWdbc (const TableInfo &info, const RecordSource &source, const TableState &state)
 Encode a WDBC image; the string block preserves decoded offsets and appends new/changed strings (byte-perfect for an unmodified table).

Variables

constexpr std::uint32_t wowlib::db::WdbcMagic = formats::fourcc("WDBC", formats::FourCCEndian::Forward)
 The WDBC magic as memcpy'd off the file front (the bytes "WDBC").

Detailed Description

WDBC — the client-database format of every pre-Cataclysm .dbc (and the .dbc leftovers of Cataclysm..Legion clients): a 20-byte header, recordCount fixed-stride records, then the string block.

Field types are not in the file; the schema comes from WoWDBDefs (schema.hpp).

This header carries the binary header struct and the NON-templated codec entry points; the implementation (wdbc.cpp) drives records through the RecordSink / RecordSource so it is compiled once, not per generated table.

Definition in file wdbc.hpp.