diff --git a/src/db/Db.cpp b/src/db/Db.cpp index 9f0345d..cff275b 100644 --- a/src/db/Db.cpp +++ b/src/db/Db.cpp @@ -12,6 +12,7 @@ WowClientDB g_chrClassesDB; WowClientDB g_chrRacesDB; WowClientDB g_creatureDisplayInfoDB; WowClientDB g_creatureModelDataDB; +WowClientDB g_itemDisplayInfoDB; WowClientDB g_mapDB; void LoadDB(WowClientDB_Base* db, const char* filename, int32_t linenumber) { @@ -30,6 +31,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_itemDisplayInfoDB, __FILE__, __LINE__); loadFn(&g_mapDB, __FILE__, __LINE__); }; diff --git a/src/db/Db.hpp b/src/db/Db.hpp index 63188ca..20c89bf 100644 --- a/src/db/Db.hpp +++ b/src/db/Db.hpp @@ -13,6 +13,7 @@ #include "db/rec/ChrRacesRec.hpp" #include "db/rec/CreatureDisplayInfoRec.hpp" #include "db/rec/CreatureModelDataRec.hpp" +#include "db/rec/ItemDisplayInfoRec.hpp" #include "db/rec/MapRec.hpp" extern WowClientDB g_achievementDB; @@ -26,6 +27,7 @@ extern WowClientDB g_chrClassesDB; extern WowClientDB g_chrRacesDB; extern WowClientDB g_creatureDisplayInfoDB; extern WowClientDB g_creatureModelDataDB; +extern WowClientDB g_itemDisplayInfoDB; extern WowClientDB g_mapDB; void ClientDBInitialize(); diff --git a/src/db/rec/ItemDisplayInfoRec.cpp b/src/db/rec/ItemDisplayInfoRec.cpp new file mode 100644 index 0000000..7da2ea7 --- /dev/null +++ b/src/db/rec/ItemDisplayInfoRec.cpp @@ -0,0 +1,99 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/ItemDisplayInfoRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* ItemDisplayInfoRec::GetFilename() { + return "DBFilesClient\\ItemDisplayInfo.dbc"; +} + +uint32_t ItemDisplayInfoRec::GetNumColumns() { + return 25; +} + +uint32_t ItemDisplayInfoRec::GetRowSize() { + return 100; +} + +bool ItemDisplayInfoRec::NeedIDAssigned() { + return false; +} + +int32_t ItemDisplayInfoRec::GetID() { + return this->m_ID; +} + +void ItemDisplayInfoRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool ItemDisplayInfoRec::Read(SFile* f, const char* stringBuffer) { + uint32_t modelNameOfs[2]; + uint32_t modelTextureOfs[2]; + uint32_t inventoryIconOfs[2]; + uint32_t textureOfs[8]; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &modelNameOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &modelNameOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &modelTextureOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &modelTextureOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &inventoryIconOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &inventoryIconOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geosetGroup[0], sizeof(m_geosetGroup[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geosetGroup[1], sizeof(m_geosetGroup[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_geosetGroup[2], sizeof(m_geosetGroup[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_flags, sizeof(this->m_flags), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_spellVisualID, sizeof(this->m_spellVisualID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_groupSoundIndex, sizeof(this->m_groupSoundIndex), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_helmetGeosetVisID[0], sizeof(m_helmetGeosetVisID[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_helmetGeosetVisID[1], sizeof(m_helmetGeosetVisID[0]), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[3], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[4], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[5], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[6], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureOfs[7], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_itemVisual, sizeof(this->m_itemVisual), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_particleColorID, sizeof(this->m_particleColorID), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_modelName[0] = &stringBuffer[modelNameOfs[0]]; + this->m_modelName[1] = &stringBuffer[modelNameOfs[1]]; + this->m_modelTexture[0] = &stringBuffer[modelTextureOfs[0]]; + this->m_modelTexture[1] = &stringBuffer[modelTextureOfs[1]]; + this->m_inventoryIcon[0] = &stringBuffer[inventoryIconOfs[0]]; + this->m_inventoryIcon[1] = &stringBuffer[inventoryIconOfs[1]]; + this->m_texture[0] = &stringBuffer[textureOfs[0]]; + this->m_texture[1] = &stringBuffer[textureOfs[1]]; + this->m_texture[2] = &stringBuffer[textureOfs[2]]; + this->m_texture[3] = &stringBuffer[textureOfs[3]]; + this->m_texture[4] = &stringBuffer[textureOfs[4]]; + this->m_texture[5] = &stringBuffer[textureOfs[5]]; + this->m_texture[6] = &stringBuffer[textureOfs[6]]; + this->m_texture[7] = &stringBuffer[textureOfs[7]]; + } else { + this->m_modelName[0] = ""; + this->m_modelName[1] = ""; + this->m_modelTexture[0] = ""; + this->m_modelTexture[1] = ""; + this->m_inventoryIcon[0] = ""; + this->m_inventoryIcon[1] = ""; + this->m_texture[0] = ""; + this->m_texture[1] = ""; + this->m_texture[2] = ""; + this->m_texture[3] = ""; + this->m_texture[4] = ""; + this->m_texture[5] = ""; + this->m_texture[6] = ""; + this->m_texture[7] = ""; + } + + return true; +} diff --git a/src/db/rec/ItemDisplayInfoRec.hpp b/src/db/rec/ItemDisplayInfoRec.hpp new file mode 100644 index 0000000..bbdaa65 --- /dev/null +++ b/src/db/rec/ItemDisplayInfoRec.hpp @@ -0,0 +1,33 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_ITEM_DISPLAY_INFO_REC_HPP +#define DB_REC_ITEM_DISPLAY_INFO_REC_HPP + +#include + +class SFile; + +class ItemDisplayInfoRec { + public: + int32_t m_ID; + const char* m_modelName[2]; + const char* m_modelTexture[2]; + const char* m_inventoryIcon[2]; + int32_t m_geosetGroup[3]; + int32_t m_flags; + int32_t m_spellVisualID; + int32_t m_groupSoundIndex; + int32_t m_helmetGeosetVisID[2]; + const char* m_texture[8]; + int32_t m_itemVisual; + int32_t m_particleColorID; + + 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