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

The WMO entity (namespace wowlib::formats::wmo): a v17 world map object with its root file (wmo::root) and all group files (wmo::group) unified, versioned on the client it is laid out for. More...

#include <array>
#include <format>
#include <span>
#include <string>
#include <string_view>
#include <vector>
#include <wowlib/core/client_version.hpp>
#include <wowlib/core/error.hpp>
#include <wowlib/formats/common/file_entity.hpp>
#include <wowlib/core/file_key.hpp>
#include <wowlib/core/lang.hpp>
#include <wowlib/formats/wmo/group/group.hpp>
#include <wowlib/formats/wmo/root/root.hpp>
#include <wowlib/fs/filesystem.hpp>
Include dependency graph for wmo.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wowlib::formats::wmo::WMOBase
 The version-agnostic base of every WMO<V> (welded as "WMO"). More...
struct  wowlib::formats::wmo::detail::WMO< V >
 A whole WMO (world map object) for one client version: the root file and all its group files unified as one entity. More...

Namespaces

namespace  wowlib
namespace  wowlib::formats
namespace  wowlib::formats::wmo
namespace  wowlib::formats::wmo::detail

Typedefs

template<ClientVersion V>
using wowlib::formats::wmo::WMO = detail::WMO<canonicalVersion(V, WmoAssemblyPivots, WmoVersions)>
 A whole WMO — the canonicalizing face of detail::WMO: every client version maps to its range's first grid version (WmoAssemblyPivots), so e.g.
template<ClientVersion V>
using wowlib::formats::wmo::WMORoot
 A WMO root file — the canonicalizing face of detail::WMORoot: every client version maps to its range's first grid version (WmoRootPivots), so e.g.
template<ClientVersion V>
using wowlib::formats::wmo::WMOGroup
 One WMO group file — the canonicalizing face of detail::WMOGroup (same pivots as the body it contains).

Detailed Description

The WMO entity (namespace wowlib::formats::wmo): a v17 world map object with its root file (wmo::root) and all group files (wmo::group) unified, versioned on the client it is laid out for.

Reading is chunk-order independent; writing replays the original chunk order so an untouched entity rewrites byte-for-byte.

Definition in file wmo.hpp.