diff --git a/src/db/WowClientDB.hpp b/src/db/WowClientDB.hpp index f98c206..7e5c84f 100644 --- a/src/db/WowClientDB.hpp +++ b/src/db/WowClientDB.hpp @@ -15,8 +15,22 @@ class WowClientDB : public WowClientDB_Common, IDatabase { virtual void LoadRecords(SFile* f, const char* filename, int32_t linenumber); virtual int32_t GetRecordByIndex(int32_t index, void* ptr) const; virtual T* GetRecord(int32_t id); + + // Member functions + T* GetRecordByIndex(int32_t index) const; }; +template +T* WowClientDB::GetRecordByIndex(int32_t index) const { + STORM_ASSERT(this->m_numRecords >= 0); + + if (index < 0 || index >= this->m_numRecords) { + return nullptr; + } + + return &this->m_records[index]; +} + template int32_t WowClientDB::GetRecordByIndex(int32_t index, void* ptr) const { STORM_ASSERT(this->m_numRecords >= 0);