From 79b6a47b9a4bf98ce95648ad788c069c49470db4 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Fri, 13 Feb 2026 07:18:41 -0600 Subject: [PATCH] feat(db): add CreatureDisplayInfoExtraRec --- src/db/Db.cpp | 2 + src/db/Db.hpp | 2 + src/db/rec/CreatureDisplayInfoExtraRec.cpp | 66 ++++++++++++++++++++++ src/db/rec/CreatureDisplayInfoExtraRec.hpp | 32 +++++++++++ 4 files changed, 102 insertions(+) create mode 100644 src/db/rec/CreatureDisplayInfoExtraRec.cpp create mode 100644 src/db/rec/CreatureDisplayInfoExtraRec.hpp diff --git a/src/db/Db.cpp b/src/db/Db.cpp index 5d08340..7dff303 100644 --- a/src/db/Db.cpp +++ b/src/db/Db.cpp @@ -12,6 +12,7 @@ WowClientDB g_characterFacialHairStylesDB; WowClientDB g_chrClassesDB; WowClientDB g_chrRacesDB; WowClientDB g_creatureDisplayInfoDB; +WowClientDB g_creatureDisplayInfoExtraDB; WowClientDB g_creatureModelDataDB; WowClientDB g_factionGroupDB; WowClientDB g_factionTemplateDB; @@ -38,6 +39,7 @@ void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) { loadFn(&g_chrClassesDB, __FILE__, __LINE__); loadFn(&g_chrRacesDB, __FILE__, __LINE__); loadFn(&g_creatureDisplayInfoDB, __FILE__, __LINE__); + loadFn(&g_creatureDisplayInfoExtraDB, __FILE__, __LINE__); loadFn(&g_creatureModelDataDB, __FILE__, __LINE__); loadFn(&g_factionGroupDB, __FILE__, __LINE__); loadFn(&g_factionTemplateDB, __FILE__, __LINE__); diff --git a/src/db/Db.hpp b/src/db/Db.hpp index 2eddf58..2efa912 100644 --- a/src/db/Db.hpp +++ b/src/db/Db.hpp @@ -13,6 +13,7 @@ #include "db/rec/ChrClassesRec.hpp" #include "db/rec/ChrRacesRec.hpp" #include "db/rec/CreatureDisplayInfoRec.hpp" +#include "db/rec/CreatureDisplayInfoExtraRec.hpp" #include "db/rec/CreatureModelDataRec.hpp" #include "db/rec/FactionGroupRec.hpp" #include "db/rec/FactionTemplateRec.hpp" @@ -34,6 +35,7 @@ extern WowClientDB g_characterFacialHairStylesDB; extern WowClientDB g_chrClassesDB; extern WowClientDB g_chrRacesDB; extern WowClientDB g_creatureDisplayInfoDB; +extern WowClientDB g_creatureDisplayInfoExtraDB; extern WowClientDB g_creatureModelDataDB; extern WowClientDB g_factionGroupDB; extern WowClientDB g_factionTemplateDB; diff --git a/src/db/rec/CreatureDisplayInfoExtraRec.cpp b/src/db/rec/CreatureDisplayInfoExtraRec.cpp new file mode 100644 index 0000000..4e2f85d --- /dev/null +++ b/src/db/rec/CreatureDisplayInfoExtraRec.cpp @@ -0,0 +1,66 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/CreatureDisplayInfoExtraRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* CreatureDisplayInfoExtraRec::GetFilename() { + return "DBFilesClient\\CreatureDisplayInfoExtra.dbc"; +} + +uint32_t CreatureDisplayInfoExtraRec::GetNumColumns() { + return 21; +} + +uint32_t CreatureDisplayInfoExtraRec::GetRowSize() { + return 84; +} + +bool CreatureDisplayInfoExtraRec::NeedIDAssigned() { + return false; +} + +int32_t CreatureDisplayInfoExtraRec::GetID() { + return this->m_ID; +} + +void CreatureDisplayInfoExtraRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool CreatureDisplayInfoExtraRec::Read(SFile* f, const char* stringBuffer) { + uint32_t bakeNameOfs; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_displayRaceID, sizeof(this->m_displayRaceID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_displaySexID, sizeof(this->m_displaySexID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_skinID, sizeof(this->m_skinID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_faceID, sizeof(this->m_faceID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_hairStyleID, sizeof(this->m_hairStyleID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_hairColorID, sizeof(this->m_hairColorID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_facialHairID, sizeof(this->m_facialHairID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[0], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[1], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[2], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[3], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[4], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[5], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[6], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[7], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[8], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[9], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcitemDisplay[10], sizeof(m_npcitemDisplay[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_flags, sizeof(this->m_flags), nullptr, nullptr, nullptr) + || !SFile::Read(f, &bakeNameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_bakeName = &stringBuffer[bakeNameOfs]; + } else { + this->m_bakeName = ""; + } + + return true; +} diff --git a/src/db/rec/CreatureDisplayInfoExtraRec.hpp b/src/db/rec/CreatureDisplayInfoExtraRec.hpp new file mode 100644 index 0000000..977d9c0 --- /dev/null +++ b/src/db/rec/CreatureDisplayInfoExtraRec.hpp @@ -0,0 +1,32 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_CREATURE_DISPLAY_INFO_EXTRA_REC_HPP +#define DB_REC_CREATURE_DISPLAY_INFO_EXTRA_REC_HPP + +#include + +class SFile; + +class CreatureDisplayInfoExtraRec { + public: + int32_t m_ID; + int32_t m_displayRaceID; + int32_t m_displaySexID; + int32_t m_skinID; + int32_t m_faceID; + int32_t m_hairStyleID; + int32_t m_hairColorID; + int32_t m_facialHairID; + int32_t m_npcitemDisplay[11]; + int32_t m_flags; + const char* m_bakeName; + + 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