aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-07-31 11:21:24 +0200
committerShauren <shauren.trinity@gmail.com>2020-07-31 11:21:24 +0200
commit1340f2cdb33a4feac01e68d2f65ae1ae486e135f (patch)
treebc47f6026c5f493ace39e6c0d9fd128ea8507a14 /src/server/game/Globals/ObjectMgr.h
parent8116ad58892b2170d4cea32a6ce2c5c265acf4b2 (diff)
Core/Creatures: Move gossip trainer assignment to creature_trainer table - same gossip can open different trainers depending on which creature it is assigned to
Closes #21723
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.h')
-rw-r--r--src/server/game/Globals/ObjectMgr.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 85974e3b9da..e5b3ba78226 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -682,7 +682,6 @@ struct GossipMenuItems
uint32 BoxMoney;
std::string BoxText;
uint32 BoxBroadcastTextId;
- uint32 TrainerId;
ConditionContainer Conditions;
};
@@ -1297,7 +1296,7 @@ class TC_GAME_API ObjectMgr
void LoadVendors();
void LoadTrainers();
- void LoadCreatureDefaultTrainers();
+ void LoadCreatureTrainers();
void LoadPhases();
void UnloadPhaseConditions();
@@ -1519,7 +1518,11 @@ class TC_GAME_API ObjectMgr
bool DeleteGameTele(std::string const& name);
Trainer::Trainer const* GetTrainer(uint32 trainerId) const;
- uint32 GetCreatureDefaultTrainer(uint32 creatureId) const;
+ uint32 GetCreatureDefaultTrainer(uint32 creatureId) const
+ {
+ return GetCreatureTrainerForGossipOption(creatureId, 0, 0);
+ }
+ uint32 GetCreatureTrainerForGossipOption(uint32 creatureId, uint32 gossipMenuId, uint32 gossipOptionIndex) const;
VendorItemData const* GetNpcVendorItemList(uint32 entry) const
{
@@ -1779,7 +1782,7 @@ class TC_GAME_API ObjectMgr
CacheVendorItemContainer _cacheVendorItemStore;
std::unordered_map<uint32, Trainer::Trainer> _trainers;
- std::unordered_map<uint32, uint32> _creatureDefaultTrainers;
+ std::map<std::tuple<uint32, uint32, uint32>, uint32> _creatureDefaultTrainers;
std::set<uint32> _difficultyEntries[MAX_CREATURE_DIFFICULTIES]; // already loaded difficulty 1 value in creatures, used in CheckCreatureTemplate
std::set<uint32> _hasDifficultyEntries[MAX_CREATURE_DIFFICULTIES]; // already loaded creatures with difficulty 1 values, used in CheckCreatureTemplate