diff --git a/src/db/Db.cpp b/src/db/Db.cpp index f5ea5fa..59211d1 100644 --- a/src/db/Db.cpp +++ b/src/db/Db.cpp @@ -5,6 +5,7 @@ WowClientDB g_achievementDB; WowClientDB g_areaTableDB; WowClientDB g_cfg_CategoriesDB; WowClientDB g_cfg_ConfigsDB; +WowClientDB g_charSectionsDB; WowClientDB g_chrClassesDB; WowClientDB g_chrRacesDB; WowClientDB g_creatureDisplayInfoDB; @@ -20,6 +21,7 @@ void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) { loadFn(&g_areaTableDB, __FILE__, __LINE__); loadFn(&g_cfg_CategoriesDB, __FILE__, __LINE__); loadFn(&g_cfg_ConfigsDB, __FILE__, __LINE__); + loadFn(&g_charSectionsDB, __FILE__, __LINE__); loadFn(&g_chrClassesDB, __FILE__, __LINE__); loadFn(&g_chrRacesDB, __FILE__, __LINE__); loadFn(&g_creatureDisplayInfoDB, __FILE__, __LINE__); diff --git a/src/db/Db.hpp b/src/db/Db.hpp index a8b3742..f5bf8df 100644 --- a/src/db/Db.hpp +++ b/src/db/Db.hpp @@ -6,6 +6,7 @@ #include "db/rec/AreaTableRec.hpp" #include "db/rec/Cfg_CategoriesRec.hpp" #include "db/rec/Cfg_ConfigsRec.hpp" +#include "db/rec/CharSectionsRec.hpp" #include "db/rec/ChrClassesRec.hpp" #include "db/rec/ChrRacesRec.hpp" #include "db/rec/CreatureDisplayInfoRec.hpp" @@ -16,6 +17,7 @@ extern WowClientDB g_achievementDB; extern WowClientDB g_areaTableDB; extern WowClientDB g_cfg_CategoriesDB; extern WowClientDB g_cfg_ConfigsDB; +extern WowClientDB g_charSectionsDB; extern WowClientDB g_chrClassesDB; extern WowClientDB g_chrRacesDB; extern WowClientDB g_creatureDisplayInfoDB; diff --git a/src/db/rec/CharSectionsRec.cpp b/src/db/rec/CharSectionsRec.cpp new file mode 100644 index 0000000..25edc86 --- /dev/null +++ b/src/db/rec/CharSectionsRec.cpp @@ -0,0 +1,59 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/CharSectionsRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* CharSectionsRec::GetFilename() { + return "DBFilesClient\\CharSections.dbc"; +} + +uint32_t CharSectionsRec::GetNumColumns() { + return 10; +} + +uint32_t CharSectionsRec::GetRowSize() { + return 40; +} + +bool CharSectionsRec::NeedIDAssigned() { + return false; +} + +int32_t CharSectionsRec::GetID() { + return this->m_ID; +} + +void CharSectionsRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool CharSectionsRec::Read(SFile* f, const char* stringBuffer) { + uint32_t textureNameOfs[3]; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_raceID, sizeof(this->m_raceID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_sexID, sizeof(this->m_sexID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_baseSection, sizeof(this->m_baseSection), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureNameOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureNameOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &textureNameOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_flags, sizeof(this->m_flags), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_variationIndex, sizeof(this->m_variationIndex), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_colorIndex, sizeof(this->m_colorIndex), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_textureName[0] = &stringBuffer[textureNameOfs[0]]; + this->m_textureName[1] = &stringBuffer[textureNameOfs[1]]; + this->m_textureName[2] = &stringBuffer[textureNameOfs[2]]; + } else { + this->m_textureName[0] = ""; + this->m_textureName[1] = ""; + this->m_textureName[2] = ""; + } + + return true; +} diff --git a/src/db/rec/CharSectionsRec.hpp b/src/db/rec/CharSectionsRec.hpp new file mode 100644 index 0000000..a8a99d2 --- /dev/null +++ b/src/db/rec/CharSectionsRec.hpp @@ -0,0 +1,29 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_CHAR_SECTIONS_REC_HPP +#define DB_REC_CHAR_SECTIONS_REC_HPP + +#include + +class SFile; + +class CharSectionsRec { + public: + int32_t m_ID; + int32_t m_raceID; + int32_t m_sexID; + int32_t m_baseSection; + const char* m_textureName[3]; + int32_t m_flags; + int32_t m_variationIndex; + int32_t m_colorIndex; + + 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