Vanilla/Turtle WoW support: M2 loading, bone parsing, textures, auth

- Vanilla M2 bone struct (108 bytes) with 28-byte animation tracks
- Version-aware bone parsing (vanilla vs WotLK format detection)
- Fix CharSections.dbc field layout for vanilla (variation/color at 4-5)
- Remove broken CharSections.csv files (all fields marked as strings)
- Expansion data reload on profile switch (DBC cache clear, layout reload)
- Vanilla packet encryption (VanillaCrypt XOR-based header crypt)
- Extended character preview geoset range (0-99) for vanilla models
- DBC cache clear support in AssetManager
This commit is contained in:
Kelsi 2026-02-13 16:53:28 -08:00
parent 6729f66a37
commit 430c2bdcfa
34 changed files with 1066 additions and 24795 deletions

View file

@ -95,6 +95,7 @@ bool UpdateFieldTable::loadFromJson(const std::string& path) {
std::string json((std::istreambuf_iterator<char>(f)), std::istreambuf_iterator<char>());
auto savedFieldMap = fieldMap_;
fieldMap_.clear();
size_t loaded = 0;
size_t pos = 0;
@ -139,8 +140,14 @@ bool UpdateFieldTable::loadFromJson(const std::string& path) {
pos = valEnd + 1;
}
if (loaded == 0) {
LOG_WARNING("UpdateFieldTable: no fields loaded from ", path, ", restoring previous table");
fieldMap_ = std::move(savedFieldMap);
return false;
}
LOG_INFO("UpdateFieldTable: loaded ", loaded, " fields from ", path);
return loaded > 0;
return true;
}
uint16_t UpdateFieldTable::index(UF field) const {