From f62ec06555d3217c739703d52c0f4dfc57943334 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sat, 22 Nov 2025 10:28:55 -0600 Subject: [PATCH] feat(db): add SoundEntriesAdvancedRec --- src/db/Db.cpp | 2 + src/db/Db.hpp | 2 + src/db/rec/SoundEntriesAdvancedRec.cpp | 69 ++++++++++++++++++++++++++ src/db/rec/SoundEntriesAdvancedRec.hpp | 45 +++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 src/db/rec/SoundEntriesAdvancedRec.cpp create mode 100644 src/db/rec/SoundEntriesAdvancedRec.hpp diff --git a/src/db/Db.cpp b/src/db/Db.cpp index 71a9419..e0f5672 100644 --- a/src/db/Db.cpp +++ b/src/db/Db.cpp @@ -16,6 +16,7 @@ WowClientDB g_itemDisplayInfoDB; WowClientDB g_itemVisualsDB; WowClientDB g_mapDB; WowClientDB g_soundEntriesDB; +WowClientDB g_soundEntriesAdvancedDB; void LoadDB(WowClientDB_Base* db, const char* filename, int32_t linenumber) { db->Load(filename, linenumber); @@ -37,6 +38,7 @@ void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) { loadFn(&g_itemVisualsDB, __FILE__, __LINE__); loadFn(&g_mapDB, __FILE__, __LINE__); loadFn(&g_soundEntriesDB, __FILE__, __LINE__); + loadFn(&g_soundEntriesAdvancedDB, __FILE__, __LINE__); }; void ClientDBInitialize() { diff --git a/src/db/Db.hpp b/src/db/Db.hpp index 9e681a9..8550240 100644 --- a/src/db/Db.hpp +++ b/src/db/Db.hpp @@ -17,6 +17,7 @@ #include "db/rec/ItemVisualsRec.hpp" #include "db/rec/MapRec.hpp" #include "db/rec/SoundEntriesRec.hpp" +#include "db/rec/SoundEntriesAdvancedRec.hpp" extern WowClientDB g_achievementDB; extern WowClientDB g_areaTableDB; @@ -33,6 +34,7 @@ extern WowClientDB g_itemDisplayInfoDB; extern WowClientDB g_itemVisualsDB; extern WowClientDB g_mapDB; extern WowClientDB g_soundEntriesDB; +extern WowClientDB g_soundEntriesAdvancedDB; void ClientDBInitialize(); diff --git a/src/db/rec/SoundEntriesAdvancedRec.cpp b/src/db/rec/SoundEntriesAdvancedRec.cpp new file mode 100644 index 0000000..91196d5 --- /dev/null +++ b/src/db/rec/SoundEntriesAdvancedRec.cpp @@ -0,0 +1,69 @@ +// DO NOT EDIT: generated by whoa-autocode +#include "db/rec/SoundEntriesAdvancedRec.hpp" +#include "util/Locale.hpp" +#include "util/SFile.hpp" + +const char* SoundEntriesAdvancedRec::GetFilename() { + return "DBFilesClient\\SoundEntriesAdvanced.dbc"; +} + +uint32_t SoundEntriesAdvancedRec::GetNumColumns() { + return 24; +} + +uint32_t SoundEntriesAdvancedRec::GetRowSize() { + return 96; +} + +bool SoundEntriesAdvancedRec::NeedIDAssigned() { + return false; +} + +int32_t SoundEntriesAdvancedRec::GetID() { + return this->m_ID; +} + +void SoundEntriesAdvancedRec::SetID(int32_t id) { + this->m_ID = id; +} + +bool SoundEntriesAdvancedRec::Read(SFile* f, const char* stringBuffer) { + uint32_t nameOfs; + + if ( + !SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_soundEntryID, sizeof(this->m_soundEntryID), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_innerRadius2d, sizeof(this->m_innerRadius2d), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeA, sizeof(this->m_timeA), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeB, sizeof(this->m_timeB), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeC, sizeof(this->m_timeC), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeD, sizeof(this->m_timeD), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_randomOffsetRange, sizeof(this->m_randomOffsetRange), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_usage, sizeof(this->m_usage), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeIntervalMin, sizeof(this->m_timeIntervalMin), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeIntervalMax, sizeof(this->m_timeIntervalMax), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_volumeSliderCategory, sizeof(this->m_volumeSliderCategory), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_duckToSfx, sizeof(this->m_duckToSfx), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_duckToMusic, sizeof(this->m_duckToMusic), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_duckToAmbience, sizeof(this->m_duckToAmbience), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_innerRadiusOfInfluence, sizeof(this->m_innerRadiusOfInfluence), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_outerRadiusOfInfluence, sizeof(this->m_outerRadiusOfInfluence), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeToDuck, sizeof(this->m_timeToDuck), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_timeToUnduck, sizeof(this->m_timeToUnduck), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_insideAngle, sizeof(this->m_insideAngle), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_outsideAngle, sizeof(this->m_outsideAngle), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_outsideVolume, sizeof(this->m_outsideVolume), nullptr, nullptr, nullptr) + || !SFile::Read(f, &this->m_outerRadius2d, sizeof(this->m_outerRadius2d), nullptr, nullptr, nullptr) + || !SFile::Read(f, &nameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr) + ) { + return false; + } + + if (stringBuffer) { + this->m_name = &stringBuffer[nameOfs]; + } else { + this->m_name = ""; + } + + return true; +} diff --git a/src/db/rec/SoundEntriesAdvancedRec.hpp b/src/db/rec/SoundEntriesAdvancedRec.hpp new file mode 100644 index 0000000..76d0747 --- /dev/null +++ b/src/db/rec/SoundEntriesAdvancedRec.hpp @@ -0,0 +1,45 @@ +// DO NOT EDIT: generated by whoa-autocode +#ifndef DB_REC_SOUND_ENTRIES_ADVANCED_REC_HPP +#define DB_REC_SOUND_ENTRIES_ADVANCED_REC_HPP + +#include + +class SFile; + +class SoundEntriesAdvancedRec { + public: + int32_t m_ID; + int32_t m_soundEntryID; + float m_innerRadius2d; + int32_t m_timeA; + int32_t m_timeB; + int32_t m_timeC; + int32_t m_timeD; + int32_t m_randomOffsetRange; + int32_t m_usage; + int32_t m_timeIntervalMin; + int32_t m_timeIntervalMax; + int32_t m_volumeSliderCategory; + float m_duckToSfx; + float m_duckToMusic; + float m_duckToAmbience; + float m_innerRadiusOfInfluence; + float m_outerRadiusOfInfluence; + int32_t m_timeToDuck; + int32_t m_timeToUnduck; + float m_insideAngle; + float m_outsideAngle; + float m_outsideVolume; + float m_outerRadius2d; + const char* m_name; + + 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