DarkflameServer/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h

30 lines
1.0 KiB
C
Raw Normal View History

#pragma once
// Custom Classes
#include "CDTable.h"
struct CDLootMatrix {
uint32_t LootTableIndex; //!< The Loot Table Index
uint32_t RarityTableIndex; //!< The Rarity Table Index
2022-07-28 13:39:57 +00:00
float percent; //!< The percent that this matrix is used?
uint32_t minToDrop; //!< The minimum amount of loot from this matrix to drop
uint32_t maxToDrop; //!< The maximum amount of loot from this matrix to drop
uint32_t flagID; //!< ???
2022-07-28 13:39:57 +00:00
UNUSED(std::string gate_version); //!< The Gate Version
};
typedef uint32_t LootMatrixIndex;
typedef std::vector<CDLootMatrix> LootMatrixEntries;
2022-07-28 13:39:57 +00:00
class CDLootMatrixTable : public CDTable<CDLootMatrixTable> {
public:
void LoadValuesFromDatabase();
2022-07-28 13:39:57 +00:00
// Gets a matrix by ID or inserts a blank one if none existed.
const LootMatrixEntries& GetMatrix(uint32_t matrixId);
private:
CDLootMatrix ReadRow(CppSQLite3Query& tableData) const;
std::unordered_map<LootMatrixIndex, LootMatrixEntries> entries;
};