diff --git a/src/db/Db.cpp b/src/db/Db.cpp index f38cad9..f5ea5fa 100644 --- a/src/db/Db.cpp +++ b/src/db/Db.cpp @@ -7,6 +7,7 @@ WowClientDB g_cfg_CategoriesDB; WowClientDB g_cfg_ConfigsDB; WowClientDB g_chrClassesDB; WowClientDB g_chrRacesDB; +WowClientDB g_creatureDisplayInfoDB; WowClientDB g_creatureModelDataDB; WowClientDB g_mapDB; @@ -21,6 +22,7 @@ void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) { loadFn(&g_cfg_ConfigsDB, __FILE__, __LINE__); loadFn(&g_chrClassesDB, __FILE__, __LINE__); loadFn(&g_chrRacesDB, __FILE__, __LINE__); + loadFn(&g_creatureDisplayInfoDB, __FILE__, __LINE__); loadFn(&g_creatureModelDataDB, __FILE__, __LINE__); loadFn(&g_mapDB, __FILE__, __LINE__); }; diff --git a/src/db/Db.hpp b/src/db/Db.hpp index 3e19a44..a8b3742 100644 --- a/src/db/Db.hpp +++ b/src/db/Db.hpp @@ -8,6 +8,7 @@ #include "db/rec/Cfg_ConfigsRec.hpp" #include "db/rec/ChrClassesRec.hpp" #include "db/rec/ChrRacesRec.hpp" +#include "db/rec/CreatureDisplayInfoRec.hpp" #include "db/rec/CreatureModelDataRec.hpp" #include "db/rec/MapRec.hpp" @@ -17,6 +18,7 @@ extern WowClientDB g_cfg_CategoriesDB; extern WowClientDB g_cfg_ConfigsDB; extern WowClientDB g_chrClassesDB; extern WowClientDB g_chrRacesDB; +extern WowClientDB g_creatureDisplayInfoDB; extern WowClientDB g_creatureModelDataDB; extern WowClientDB g_mapDB; diff --git a/src/db/rec/CreatureDisplayInfoRec.cpp b/src/db/rec/CreatureDisplayInfoRec.cpp new file mode 100644 index 0000000..98f5793 --- /dev/null +++ b/src/db/rec/CreatureDisplayInfoRec.cpp @@ -0,0 +1,68 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/CreatureDisplayInfoRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* CreatureDisplayInfoRec::GetFilename() { + return "DBFilesClient\\CreatureDisplayInfo.dbc"; +} + +uint32_t CreatureDisplayInfoRec::GetNumColumns() { + return 16; +} + +uint32_t CreatureDisplayInfoRec::GetRowSize() { + return 64; +} + +bool CreatureDisplayInfoRec::NeedIDAssigned() { + return false; +} + +int32_t CreatureDisplayInfoRec::GetID() { + return this->m_ID; +} + +void CreatureDisplayInfoRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool CreatureDisplayInfoRec::Read(SFile* f, const char* stringBuffer) { + uint32_t textureVariationOfs[3]; + uint32_t portraitTextureNameOfs; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_modelID, sizeof(this->m_modelID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_soundID, sizeof(this->m_soundID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_extendedDisplayInfoID, sizeof(this->m_extendedDisplayInfoID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_creatureModelScale, sizeof(this->m_creatureModelScale), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_creatureModelAlpha, sizeof(this->m_creatureModelAlpha), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureVariationOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureVariationOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureVariationOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &portraitTextureNameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_sizeClass, sizeof(this->m_sizeClass), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_bloodID, sizeof(this->m_bloodID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_npcsoundID, sizeof(this->m_npcsoundID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_particleColorID, sizeof(this->m_particleColorID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_creatureGeosetData, sizeof(this->m_creatureGeosetData), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_objectEffectPackageID, sizeof(this->m_objectEffectPackageID), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_textureVariation[0] = &stringBuffer[textureVariationOfs[0]]; + this->m_textureVariation[1] = &stringBuffer[textureVariationOfs[1]]; + this->m_textureVariation[2] = &stringBuffer[textureVariationOfs[2]]; + this->m_portraitTextureName = &stringBuffer[portraitTextureNameOfs]; + } else { + this->m_textureVariation[0] = ""; + this->m_textureVariation[1] = ""; + this->m_textureVariation[2] = ""; + this->m_portraitTextureName = ""; + } + + return true; +} diff --git a/src/db/rec/CreatureDisplayInfoRec.hpp b/src/db/rec/CreatureDisplayInfoRec.hpp new file mode 100644 index 0000000..a3cc9b1 --- /dev/null +++ b/src/db/rec/CreatureDisplayInfoRec.hpp @@ -0,0 +1,35 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_CREATURE_DISPLAY_INFO_REC_HPP +#define DB_REC_CREATURE_DISPLAY_INFO_REC_HPP + +#include + +class SFile; + +class CreatureDisplayInfoRec { + public: + int32_t m_ID; + int32_t m_modelID; + int32_t m_soundID; + int32_t m_extendedDisplayInfoID; + float m_creatureModelScale; + int32_t m_creatureModelAlpha; + const char* m_textureVariation[3]; + const char* m_portraitTextureName; + int32_t m_sizeClass; + int32_t m_bloodID; + int32_t m_npcsoundID; + int32_t m_particleColorID; + int32_t m_creatureGeosetData; + int32_t m_objectEffectPackageID; + + 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