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

Client version identity, the flavor axis that separates a client's CONTENT version from the engine generation its files are laid out for, the storage-kind split both imply, locales, and the versions namespace of release constants. More...

#include <array>
#include <compare>
#include <cstdint>
#include <iosfwd>
#include <optional>
#include <string_view>
#include <utility>
#include <welder/vocabulary.hpp>
Include dependency graph for client_version.hpp:

Go to the source code of this file.

Classes

struct  wowlib::ClientVersion
struct  wowlib::detail::EngineGeneration
 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. More...

Namespaces

namespace  wowlib
namespace  wowlib::versions
namespace  wowlib::detail

Enumerations

enum class  wowlib::StorageKind { wowlib::Mpq , wowlib::Casc }
enum class  wowlib::ClientFlavor { wowlib::Retail , wowlib::Classic , wowlib::ClassicEra , wowlib::Anniversary }
enum class  wowlib::Locale {
  wowlib::enUS , wowlib::enGB , wowlib::deDE , wowlib::frFR ,
  wowlib::ruRU , wowlib::esES , wowlib::esMX , wowlib::koKR ,
  wowlib::zhCN , wowlib::zhTW , wowlib::ptBR , wowlib::itIT
}

Functions

std::ostream & wowlib::operator<< (std::ostream &out, const ClientVersion &version)
 render version as "major.minor.patch.build", with the flavor appended when it is not Retail ("1.15.9.69109 (ClassicEra)") — a Classic version is unreadable without it, since the tuple alone says nothing about the client.
std::string_view wowlib::localeCode (Locale locale)
 The four-letter code of locale ("enUS", ...) as used in MPQ locale directory and archive names.
std::optional< Locale > wowlib::localeFromCode (std::string_view code)
 Parse a four-letter locale code.
std::uint32_t wowlib::cascLocaleFlag (Locale locale)
 The CASC_LOCALE_* bit of locale for CascOpenStorage/CascOpenFile locale masks.

Variables

constexpr ClientVersion wowlib::versions::Vanilla {1, 12, 1, 5875}
constexpr ClientVersion wowlib::versions::Tbc {2, 4, 3, 8606}
constexpr ClientVersion wowlib::versions::Wotlk {3, 3, 5, 12340}
constexpr ClientVersion wowlib::versions::Cata {4, 3, 4, 15595}
constexpr ClientVersion wowlib::versions::Mop {5, 4, 8, 18414}
constexpr ClientVersion wowlib::versions::Wod {6, 2, 4, 21742}
constexpr ClientVersion wowlib::versions::Legion {7, 3, 5, 26972}
constexpr ClientVersion wowlib::versions::Bfa {8, 3, 7, 35662}
constexpr ClientVersion wowlib::versions::Shadowlands {9, 2, 7, 45745}
constexpr ClientVersion wowlib::versions::Dragonflight {10, 2, 7, 55664}
constexpr ClientVersion wowlib::versions::Tww {11, 2, 7, 65299}
constexpr ClientVersion wowlib::versions::ClassicEra
constexpr ClientVersion wowlib::versions::ClassicBcc
constexpr ClientVersion wowlib::versions::ClassicWotlk
constexpr ClientVersion wowlib::versions::ClassicCata
constexpr ClientVersion wowlib::versions::ClassicMop
constexpr ClientVersion wowlib::versions::Anniversary
constexpr std::array wowlib::detail::EngineTimeline
 The retail engine timeline a Classic build is placed on.

Detailed Description

Client version identity, the flavor axis that separates a client's CONTENT version from the engine generation its files are laid out for, the storage-kind split both imply, locales, and the versions namespace of release constants.

Definition in file client_version.hpp.