feat(db): add AreaTableRec

This commit is contained in:
fallenoak 2025-10-05 22:33:26 -05:00
parent 84c6ae7947
commit b7ac9149a0
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
4 changed files with 124 additions and 0 deletions

View File

@ -2,6 +2,7 @@
#include "db/WowClientDB_Base.hpp" #include "db/WowClientDB_Base.hpp"
WowClientDB<AchievementRec> g_achievementDB; WowClientDB<AchievementRec> g_achievementDB;
WowClientDB<AreaTableRec> g_areaTableDB;
WowClientDB<Cfg_CategoriesRec> g_cfg_CategoriesDB; WowClientDB<Cfg_CategoriesRec> g_cfg_CategoriesDB;
WowClientDB<Cfg_ConfigsRec> g_cfg_ConfigsDB; WowClientDB<Cfg_ConfigsRec> g_cfg_ConfigsDB;
WowClientDB<ChrClassesRec> g_chrClassesDB; WowClientDB<ChrClassesRec> g_chrClassesDB;
@ -14,6 +15,7 @@ void LoadDB(WowClientDB_Base* db, const char* filename, int32_t linenumber) {
void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) { void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) {
loadFn(&g_achievementDB, __FILE__, __LINE__); loadFn(&g_achievementDB, __FILE__, __LINE__);
loadFn(&g_areaTableDB, __FILE__, __LINE__);
loadFn(&g_cfg_CategoriesDB, __FILE__, __LINE__); loadFn(&g_cfg_CategoriesDB, __FILE__, __LINE__);
loadFn(&g_cfg_ConfigsDB, __FILE__, __LINE__); loadFn(&g_cfg_ConfigsDB, __FILE__, __LINE__);
loadFn(&g_chrClassesDB, __FILE__, __LINE__); loadFn(&g_chrClassesDB, __FILE__, __LINE__);

View File

@ -3,6 +3,7 @@
#include "db/WowClientDB.hpp" #include "db/WowClientDB.hpp"
#include "db/rec/AchievementRec.hpp" #include "db/rec/AchievementRec.hpp"
#include "db/rec/AreaTableRec.hpp"
#include "db/rec/Cfg_CategoriesRec.hpp" #include "db/rec/Cfg_CategoriesRec.hpp"
#include "db/rec/Cfg_ConfigsRec.hpp" #include "db/rec/Cfg_ConfigsRec.hpp"
#include "db/rec/ChrClassesRec.hpp" #include "db/rec/ChrClassesRec.hpp"
@ -10,6 +11,7 @@
#include "db/rec/MapRec.hpp" #include "db/rec/MapRec.hpp"
extern WowClientDB<AchievementRec> g_achievementDB; extern WowClientDB<AchievementRec> g_achievementDB;
extern WowClientDB<AreaTableRec> g_areaTableDB;
extern WowClientDB<Cfg_CategoriesRec> g_cfg_CategoriesDB; extern WowClientDB<Cfg_CategoriesRec> g_cfg_CategoriesDB;
extern WowClientDB<Cfg_ConfigsRec> g_cfg_ConfigsDB; extern WowClientDB<Cfg_ConfigsRec> g_cfg_ConfigsDB;
extern WowClientDB<ChrClassesRec> g_chrClassesDB; extern WowClientDB<ChrClassesRec> g_chrClassesDB;

View File

@ -0,0 +1,82 @@
// DO NOT EDIT: generated by whoa-autocode
#include "db/rec/AreaTableRec.hpp"
#include "util/Locale.hpp"
#include "util/SFile.hpp"
const char* AreaTableRec::GetFilename() {
return "DBFilesClient\\AreaTable.dbc";
}
uint32_t AreaTableRec::GetNumColumns() {
return 36;
}
uint32_t AreaTableRec::GetRowSize() {
return 144;
}
bool AreaTableRec::NeedIDAssigned() {
return false;
}
int32_t AreaTableRec::GetID() {
return this->m_ID;
}
void AreaTableRec::SetID(int32_t id) {
this->m_ID = id;
}
bool AreaTableRec::Read(SFile* f, const char* stringBuffer) {
uint32_t areaNameOfs[16];
uint32_t areaNameMask;
if (
!SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_continentID, sizeof(this->m_continentID), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_parentAreaID, sizeof(this->m_parentAreaID), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_areaBit, sizeof(this->m_areaBit), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_flags, sizeof(this->m_flags), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_soundProviderPref, sizeof(this->m_soundProviderPref), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_soundProviderPrefUnderwater, sizeof(this->m_soundProviderPrefUnderwater), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_ambienceID, sizeof(this->m_ambienceID), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_zoneMusic, sizeof(this->m_zoneMusic), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_introSound, sizeof(this->m_introSound), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_explorationLevel, sizeof(this->m_explorationLevel), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[3], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[4], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[5], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[6], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[7], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[8], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[9], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[10], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[11], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[12], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[13], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[14], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameOfs[15], sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &areaNameMask, sizeof(uint32_t), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_factionGroupMask, sizeof(this->m_factionGroupMask), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_liquidTypeID[0], sizeof(m_liquidTypeID[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_liquidTypeID[1], sizeof(m_liquidTypeID[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_liquidTypeID[2], sizeof(m_liquidTypeID[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_liquidTypeID[3], sizeof(m_liquidTypeID[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_minElevation, sizeof(this->m_minElevation), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_ambientMultiplier, sizeof(this->m_ambientMultiplier), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_lightID, sizeof(this->m_lightID), nullptr, nullptr, nullptr)
) {
return false;
}
if (stringBuffer) {
this->m_areaName = &stringBuffer[areaNameOfs[CURRENT_LANGUAGE]];
} else {
this->m_areaName = "";
}
return true;
}

View File

@ -0,0 +1,38 @@
// DO NOT EDIT: generated by whoa-autocode
#ifndef DB_REC_AREA_TABLE_REC_HPP
#define DB_REC_AREA_TABLE_REC_HPP
#include <cstdint>
class SFile;
class AreaTableRec {
public:
int32_t m_ID;
int32_t m_continentID;
int32_t m_parentAreaID;
int32_t m_areaBit;
int32_t m_flags;
int32_t m_soundProviderPref;
int32_t m_soundProviderPrefUnderwater;
int32_t m_ambienceID;
int32_t m_zoneMusic;
int32_t m_introSound;
int32_t m_explorationLevel;
const char* m_areaName;
int32_t m_factionGroupMask;
int32_t m_liquidTypeID[4];
float m_minElevation;
float m_ambientMultiplier;
int32_t m_lightID;
static const char* GetFilename();
static uint32_t GetNumColumns();
static uint32_t GetRowSize();
static bool NeedIDAssigned();
int32_t GetID();
void SetID(int32_t id);
bool Read(SFile* f, const char* stringBuffer);
};
#endif