diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-07-31 11:21:24 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-07-31 11:21:24 +0200 |
| commit | 1340f2cdb33a4feac01e68d2f65ae1ae486e135f (patch) | |
| tree | bc47f6026c5f493ace39e6c0d9fd128ea8507a14 /src/server/game/Globals/ObjectMgr.h | |
| parent | 8116ad58892b2170d4cea32a6ce2c5c265acf4b2 (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.h | 11 |
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 |
