SpaghettiKart
Loading...
Searching...
No Matches
RandomItemTable.h
Go to the documentation of this file.
1#pragma once
2
3#include <libultraship/libultraship.h>
4#include <utility>
5
13
15public:
17 bool Add(const std::string& resourceName, uint32_t rank, uint32_t weight, float distance);
18 uint8_t Roll(uint32_t rank) const;
19 void Blacklist(const std::string& resourceName);
20 bool IsBlacklisted(uint32_t id) const;
21 void ClearBlacklist();
22protected:
24 struct ItemEntry {
25 uint32_t Id;
26 uint32_t Weight;
27 float Distance;
28 };
29
30 // Rank index item_id, chance
31 std::vector<std::vector<ItemEntry>> mTable;
32 std::unordered_set<uint32_t> mBlacklist;
33};
uint8_t Roll(uint32_t rank) const
Definition RandomItemTable.cpp:41
RandomItemTable()
Definition RandomItemTable.cpp:9
void ClearBlacklist()
Definition RandomItemTable.cpp:103
bool IsBlacklisted(uint32_t id) const
Definition RandomItemTable.cpp:98
bool Add(const std::string &resourceName, uint32_t rank, uint32_t weight, float distance)
Definition RandomItemTable.cpp:13
bool mDistanceEnabled
Definition RandomItemTable.h:23
std::unordered_set< uint32_t > mBlacklist
Definition RandomItemTable.h:32
void Blacklist(const std::string &resourceName)
Definition RandomItemTable.cpp:89
std::vector< std::vector< ItemEntry > > mTable
Definition RandomItemTable.h:31
Definition RandomItemTable.h:24
float Distance
Definition RandomItemTable.h:27
uint32_t Weight
Definition RandomItemTable.h:26
uint32_t Id
Definition RandomItemTable.h:25