18#ifndef TRINITY_LOOTMGR_H
19#define TRINITY_LOOTMGR_H
49 : itemid(_itemid), reference(_reference), chance(_chance), lootmode(_lootmode),
50 needs_quest(_needs_quest), groupid(_groupid), mincount(_mincount), maxcount(_maxcount)
53 bool Roll(
bool rate)
const;
66 explicit LootStore(
char const* name,
char const* entryName,
bool ratesAllowed)
67 : m_name(name), m_entryName(entryName), m_ratesAllowed(ratesAllowed) { }
74 void CheckLootRefs(
LootIdSet* ref_set =
nullptr)
const;
75 void ReportUnusedIds(
LootIdSet const& ids_set)
const;
76 void ReportNonExistingId(
uint32 lootId,
char const* ownerType,
uint32 ownerId)
const;
78 bool HaveLootFor(
uint32 loot_id)
const {
return m_LootTemplates.find(loot_id) != m_LootTemplates.end(); }
79 bool HaveQuestLootFor(
uint32 loot_id)
const;
80 bool HaveQuestLootForPlayer(
uint32 loot_id,
Player const* player)
const;
83 void ResetConditions();
86 char const*
GetName()
const {
return m_name; }
111 void Process(
Loot& loot,
bool rate,
uint16 lootMode,
uint8 groupId = 0)
const;
113 void CopyConditions(
LootItem* li)
const;
116 bool HasQuestDrop(
uint8 groupId = 0)
const;
118 bool HasQuestDropForPlayer(
Player const* player,
uint8 groupId = 0)
const;
124 bool isReference(
uint32 id);
std::vector< Condition * > ConditionContainer
TC_GAME_API void LoadLootTemplates_Skinning()
TC_GAME_API LootStore LootTemplates_Reference
TC_GAME_API void LoadLootTemplates_Creature()
TC_GAME_API void LoadLootTemplates_Milling()
TC_GAME_API void LoadLootTemplates_Disenchant()
TC_GAME_API LootStore LootTemplates_Gameobject
TC_GAME_API LootStore LootTemplates_Item
TC_GAME_API LootStore LootTemplates_Prospecting
TC_GAME_API void LoadLootTemplates_Gameobject()
TC_GAME_API LootStore LootTemplates_Skinning
TC_GAME_API void LoadLootTemplates_Pickpocketing()
TC_GAME_API LootStore LootTemplates_Fishing
TC_GAME_API void LoadLootTemplates_Prospecting()
TC_GAME_API LootStore LootTemplates_Disenchant
TC_GAME_API LootStore LootTemplates_Pickpocketing
TC_GAME_API LootStore LootTemplates_Spell
std::unordered_map< uint32, LootTemplate * > LootTemplateMap
TC_GAME_API void LoadLootTemplates_Mail()
TC_GAME_API LootStore LootTemplates_Creature
TC_GAME_API void LoadLootTables()
TC_GAME_API LootStore LootTemplates_Mail
std::set< uint32 > LootIdSet
std::list< LootStoreItem * > LootStoreItemList
TC_GAME_API void LoadLootTemplates_Item()
TC_GAME_API void LoadLootTemplates_Fishing()
TC_GAME_API void LoadLootTemplates_Reference()
TC_GAME_API LootStore LootTemplates_Milling
TC_GAME_API void LoadLootTemplates_Spell()
LootTemplateMap m_LootTemplates
char const * GetEntryName() const
LootStore(char const *name, char const *entryName, bool ratesAllowed)
bool IsRatesAllowed() const
bool HaveLootFor(uint32 loot_id) const
char const * GetName() const
LootStoreItemList Entries
LootTemplate(LootTemplate const &)=delete
std::vector< LootGroup * > LootGroups
LootTemplate & operator=(LootTemplate const &)=delete
ConditionContainer conditions
LootStoreItem(uint32 _itemid, uint32 _reference, float _chance, bool _needs_quest, uint16 _lootmode, uint8 _groupid, int32 _mincount, uint8 _maxcount)