diff --git a/src/db/Db.cpp b/src/db/Db.cpp index e07b49f..f38cad9 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_creatureModelDataDB; WowClientDB g_mapDB; void LoadDB(WowClientDB_Base* db, const char* filename, int32_t linenumber) { @@ -20,6 +21,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_creatureModelDataDB, __FILE__, __LINE__); loadFn(&g_mapDB, __FILE__, __LINE__); }; diff --git a/src/db/Db.hpp b/src/db/Db.hpp index 44ea6f4..3e19a44 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/CreatureModelDataRec.hpp" #include "db/rec/MapRec.hpp" extern WowClientDB g_achievementDB; @@ -16,6 +17,7 @@ extern WowClientDB g_cfg_CategoriesDB; extern WowClientDB g_cfg_ConfigsDB; extern WowClientDB g_chrClassesDB; extern WowClientDB g_chrRacesDB; +extern WowClientDB g_creatureModelDataDB; extern WowClientDB g_mapDB; void ClientDBInitialize(); diff --git a/src/db/rec/CreatureModelDataRec.cpp b/src/db/rec/CreatureModelDataRec.cpp new file mode 100644 index 0000000..ca32537 --- /dev/null +++ b/src/db/rec/CreatureModelDataRec.cpp @@ -0,0 +1,73 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/CreatureModelDataRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* CreatureModelDataRec::GetFilename() { + return "DBFilesClient\\CreatureModelData.dbc"; +} + +uint32_t CreatureModelDataRec::GetNumColumns() { + return 28; +} + +uint32_t CreatureModelDataRec::GetRowSize() { + return 112; +} + +bool CreatureModelDataRec::NeedIDAssigned() { + return false; +} + +int32_t CreatureModelDataRec::GetID() { + return this->m_ID; +} + +void CreatureModelDataRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool CreatureModelDataRec::Read(SFile* f, const char* stringBuffer) { + uint32_t modelNameOfs; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_flags, sizeof(this->m_flags), nullptr, nullptr, nullptr) + || !SFile::Read(f, &modelNameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_sizeClass, sizeof(this->m_sizeClass), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_modelScale, sizeof(this->m_modelScale), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_bloodID, sizeof(this->m_bloodID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_footprintTextureID, sizeof(this->m_footprintTextureID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_footprintTextureLength, sizeof(this->m_footprintTextureLength), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_footprintTextureWidth, sizeof(this->m_footprintTextureWidth), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_footprintParticleScale, sizeof(this->m_footprintParticleScale), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_foleyMaterialID, sizeof(this->m_foleyMaterialID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_footstepShakeSize, sizeof(this->m_footstepShakeSize), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_deathThudShakeSize, sizeof(this->m_deathThudShakeSize), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_soundID, sizeof(this->m_soundID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_collisionWidth, sizeof(this->m_collisionWidth), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_collisionHeight, sizeof(this->m_collisionHeight), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_mountHeight, sizeof(this->m_mountHeight), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geoBoxMinX, sizeof(this->m_geoBoxMinX), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geoBoxMinY, sizeof(this->m_geoBoxMinY), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geoBoxMinZ, sizeof(this->m_geoBoxMinZ), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geoBoxMaxX, sizeof(this->m_geoBoxMaxX), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geoBoxMaxY, sizeof(this->m_geoBoxMaxY), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geoBoxMaxZ, sizeof(this->m_geoBoxMaxZ), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_worldEffectScale, sizeof(this->m_worldEffectScale), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_attachedEffectScale, sizeof(this->m_attachedEffectScale), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_missileCollisionRadius, sizeof(this->m_missileCollisionRadius), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_missileCollisionPush, sizeof(this->m_missileCollisionPush), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_missileCollisionRaise, sizeof(this->m_missileCollisionRaise), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_modelName = &stringBuffer[modelNameOfs]; + } else { + this->m_modelName = ""; + } + + return true; +} diff --git a/src/db/rec/CreatureModelDataRec.hpp b/src/db/rec/CreatureModelDataRec.hpp new file mode 100644 index 0000000..284dcff --- /dev/null +++ b/src/db/rec/CreatureModelDataRec.hpp @@ -0,0 +1,49 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_CREATURE_MODEL_DATA_REC_HPP +#define DB_REC_CREATURE_MODEL_DATA_REC_HPP + +#include + +class SFile; + +class CreatureModelDataRec { + public: + int32_t m_ID; + int32_t m_flags; + const char* m_modelName; + int32_t m_sizeClass; + float m_modelScale; + int32_t m_bloodID; + int32_t m_footprintTextureID; + float m_footprintTextureLength; + float m_footprintTextureWidth; + float m_footprintParticleScale; + int32_t m_foleyMaterialID; + int32_t m_footstepShakeSize; + int32_t m_deathThudShakeSize; + int32_t m_soundID; + float m_collisionWidth; + float m_collisionHeight; + float m_mountHeight; + float m_geoBoxMinX; + float m_geoBoxMinY; + float m_geoBoxMinZ; + float m_geoBoxMaxX; + float m_geoBoxMaxY; + float m_geoBoxMaxZ; + float m_worldEffectScale; + float m_attachedEffectScale; + float m_missileCollisionRadius; + float m_missileCollisionPush; + float m_missileCollisionRaise; + + 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