aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp5
-rw-r--r--src/server/game/Entities/Creature/Creature.h1
-rw-r--r--src/server/game/Entities/Object/Updates/ViewerDependentValues.h3
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;