diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Updates/ViewerDependentValues.h | 3 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index d75ed789006..2504ba9993d 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1251,6 +1251,11 @@ bool Creature::CanResetTalents(Player* player) const && player->GetClass() == GetCreatureTemplate()->trainer_class; } +bool Creature::IsClassTrainerFor(Player const* player) const +{ + return GetCreatureTemplate()->trainer_class == player->GetClass(); +} + uint32 Creature::GetLootId() const { if (m_lootId) diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index d8fd4447ecb..fb3f2bfb495 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -179,6 +179,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma /// @todo Rename these properly bool isCanInteractWithBattleMaster(Player* player, bool msg) const; bool CanResetTalents(Player* player) const; + bool IsClassTrainerFor(Player const* player) const; bool CanCreatureAttack(Unit const* victim, bool force = true) const; void LoadTemplateImmunities(int32 creatureImmunitiesId); bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, SpellEffectInfo const& spellEffectInfo, WorldObject const* caster, bool requireImmunityPurgesEffectAttribute = false) const override; diff --git a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h index 7aa0b13cfaf..f17c19e3eec 100644 --- a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h +++ b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h @@ -364,6 +364,9 @@ public: if (!receiver->CanSeeSpellClickOn(creature)) npcFlag &= ~UNIT_NPC_FLAG_SPELLCLICK; + + if (!creature->IsClassTrainerFor(receiver)) + npcFlag &= ~UNIT_NPC_FLAG_TRAINER_CLASS; } } return npcFlag; |