From 4255bf4d25563d57bf482e7f0edc498e0cd6bd12 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Mon, 29 Dec 2025 19:22:46 -0600 Subject: [PATCH] feat(db): add FactionGroupRec --- src/db/Db.cpp | 2 + src/db/Db.hpp | 2 + src/db/rec/FactionGroupRec.cpp | 69 ++++++++++++++++++++++++++++++++++ src/db/rec/FactionGroupRec.hpp | 25 ++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 src/db/rec/FactionGroupRec.cpp create mode 100644 src/db/rec/FactionGroupRec.hpp diff --git a/src/db/Db.cpp b/src/db/Db.cpp index 634082e..ea8a8d1 100644 --- a/src/db/Db.cpp +++ b/src/db/Db.cpp @@ -13,6 +13,7 @@ WowClientDB g_chrClassesDB; WowClientDB g_chrRacesDB; WowClientDB g_creatureDisplayInfoDB; WowClientDB g_creatureModelDataDB; +WowClientDB g_factionGroupDB; WowClientDB g_factionTemplateDB; WowClientDB g_itemDisplayInfoDB; WowClientDB g_itemVisualsDB; @@ -37,6 +38,7 @@ void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) { loadFn(&g_chrRacesDB, __FILE__, __LINE__); loadFn(&g_creatureDisplayInfoDB, __FILE__, __LINE__); loadFn(&g_creatureModelDataDB, __FILE__, __LINE__); + loadFn(&g_factionGroupDB, __FILE__, __LINE__); loadFn(&g_factionTemplateDB, __FILE__, __LINE__); loadFn(&g_itemDisplayInfoDB, __FILE__, __LINE__); loadFn(&g_itemVisualsDB, __FILE__, __LINE__); diff --git a/src/db/Db.hpp b/src/db/Db.hpp index 6d10eb3..75421d9 100644 --- a/src/db/Db.hpp +++ b/src/db/Db.hpp @@ -14,6 +14,7 @@ #include "db/rec/ChrRacesRec.hpp" #include "db/rec/CreatureDisplayInfoRec.hpp" #include "db/rec/CreatureModelDataRec.hpp" +#include "db/rec/FactionGroupRec.hpp" #include "db/rec/FactionTemplateRec.hpp" #include "db/rec/ItemDisplayInfoRec.hpp" #include "db/rec/ItemVisualsRec.hpp" @@ -33,6 +34,7 @@ extern WowClientDB g_chrClassesDB; extern WowClientDB g_chrRacesDB; extern WowClientDB g_creatureDisplayInfoDB; extern WowClientDB g_creatureModelDataDB; +extern WowClientDB g_factionGroupDB; extern WowClientDB g_factionTemplateDB; extern WowClientDB g_itemDisplayInfoDB; extern WowClientDB g_itemVisualsDB; diff --git a/src/db/rec/FactionGroupRec.cpp b/src/db/rec/FactionGroupRec.cpp new file mode 100644 index 0000000..a6770ce --- /dev/null +++ b/src/db/rec/FactionGroupRec.cpp @@ -0,0 +1,69 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/FactionGroupRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* FactionGroupRec::GetFilename() { + return "DBFilesClient\\FactionGroup.dbc"; +} + +uint32_t FactionGroupRec::GetNumColumns() { + return 20; +} + +uint32_t FactionGroupRec::GetRowSize() { + return 80; +} + +bool FactionGroupRec::NeedIDAssigned() { + return false; +} + +int32_t FactionGroupRec::GetID() { + return this->m_ID; +} + +void FactionGroupRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool FactionGroupRec::Read(SFile* f, const char* stringBuffer) { + uint32_t internalNameOfs; + uint32_t nameOfs[16]; + uint32_t nameMask; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_maskID, sizeof(this->m_maskID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &internalNameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[3], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[4], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[5], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[6], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[7], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[8], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[9], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[10], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[11], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[12], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[13], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[14], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs[15], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameMask, sizeof(uint32_t), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_internalName = &stringBuffer[internalNameOfs]; + this->m_name = &stringBuffer[nameOfs[CURRENT_LANGUAGE]]; + } else { + this->m_internalName = ""; + this->m_name = ""; + } + + return true; +} diff --git a/src/db/rec/FactionGroupRec.hpp b/src/db/rec/FactionGroupRec.hpp new file mode 100644 index 0000000..603ea23 --- /dev/null +++ b/src/db/rec/FactionGroupRec.hpp @@ -0,0 +1,25 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_FACTION_GROUP_REC_HPP +#define DB_REC_FACTION_GROUP_REC_HPP + +#include + +class SFile; + +class FactionGroupRec { + public: + int32_t m_ID; + int32_t m_maskID; + const char* m_internalName; + const char* m_name; + + 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