aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/PlayerAI
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-08-06 20:21:34 +0200
committerShauren <shauren.trinity@gmail.com>2023-08-07 00:05:36 +0200
commit98007f859b7318570c0c923a00aa32fc485c8ec8 (patch)
treeef8405fa2d3740b6531a510673a0124dd0c2c957 /src/server/game/AI/PlayerAI
parentd2784d4c65ec987fe587718d96b2feb885905e13 (diff)
Core/Misc: Turn ChrSpecialization into enum class
Diffstat (limited to 'src/server/game/AI/PlayerAI')
-rw-r--r--src/server/game/AI/PlayerAI/PlayerAI.cpp10
-rw-r--r--src/server/game/AI/PlayerAI/PlayerAI.h5
2 files changed, 8 insertions, 7 deletions
diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp
index d61f084431d..2f104c40eac 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.cpp
+++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp
@@ -406,7 +406,7 @@ Creature* PlayerAI::GetCharmer() const
return nullptr;
}
-uint32 PlayerAI::GetSpec(Player const* who /*= nullptr*/) const
+ChrSpecialization PlayerAI::GetSpec(Player const* who /*= nullptr*/) const
{
return (!who || who == me) ? _selfSpec : who->GetPrimarySpecialization();
}
@@ -416,8 +416,8 @@ bool PlayerAI::IsPlayerHealer(Player const* who)
if (!who)
return false;
- return who->GetPrimarySpecialization()
- && sChrSpecializationStore.AssertEntry(who->GetPrimarySpecialization())->GetRole() == ChrSpecializationRole::Healer;
+ ChrSpecializationEntry const* chrSpec = who->GetPrimarySpecializationEntry();
+ return chrSpec && chrSpec->GetRole() == ChrSpecializationRole::Healer;
}
bool PlayerAI::IsPlayerRangedAttacker(Player const* who)
@@ -425,8 +425,8 @@ bool PlayerAI::IsPlayerRangedAttacker(Player const* who)
if (!who)
return false;
- return who->GetPrimarySpecialization()
- && sChrSpecializationStore.AssertEntry(who->GetPrimarySpecialization())->GetFlags().HasFlag(ChrSpecializationFlag::Ranged);
+ ChrSpecializationEntry const* chrSpec = who->GetPrimarySpecializationEntry();
+ return chrSpec && chrSpec->GetFlags().HasFlag(ChrSpecializationFlag::Ranged);
}
PlayerAI::TargetedSpell PlayerAI::VerifySpellCast(uint32 spellId, Unit* target)
diff --git a/src/server/game/AI/PlayerAI/PlayerAI.h b/src/server/game/AI/PlayerAI/PlayerAI.h
index a6c429b6308..39d53727303 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.h
+++ b/src/server/game/AI/PlayerAI/PlayerAI.h
@@ -22,6 +22,7 @@
class Creature;
class Spell;
+enum class ChrSpecialization : uint32;
class TC_GAME_API PlayerAI : public UnitAI
{
@@ -31,7 +32,7 @@ class TC_GAME_API PlayerAI : public UnitAI
Creature* GetCharmer() const;
// helper functions to determine player info
- uint32 GetSpec(Player const* who = nullptr) const;
+ ChrSpecialization GetSpec(Player const* who = nullptr) const;
static bool IsPlayerHealer(Player const* who);
bool IsHealer(Player const* who = nullptr) const { return (!who || who == me) ? _isSelfHealer : IsPlayerHealer(who); }
static bool IsPlayerRangedAttacker(Player const* who);
@@ -85,7 +86,7 @@ class TC_GAME_API PlayerAI : public UnitAI
void CancelAllShapeshifts();
private:
- uint32 const _selfSpec;
+ ChrSpecialization const _selfSpec;
bool const _isSelfHealer;
bool _isSelfRangedAttacker;
};