aboutsummaryrefslogtreecommitdiff
path: root/src/game/Player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r--src/game/Player.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index b0b49b4f3a4..4370953a7be 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -14338,11 +14338,11 @@ void Player::FailQuest(uint32 questId)
bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg)
{
- int32 zoneOrSort = qInfo->GetZoneOrSort();
- int32 skillOrClass = qInfo->GetSkillOrClass();
+ int32 zoneOrSort = qInfo->GetZoneOrSort();
+ int32 skillOrClassMask = qInfo->GetSkillOrClassMask();
// skip zone zoneOrSort and 0 case skillOrClass
- if (zoneOrSort >= 0 && skillOrClass == 0)
+ if (zoneOrSort >= 0 && skillOrClassMask == 0)
return true;
int32 questSort = -zoneOrSort;
@@ -14357,10 +14357,10 @@ bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg)
}
// check class
- if (skillOrClass < 0)
+ if (skillOrClassMask < 0)
{
- uint8 reqClass = -int32(skillOrClass);
- if (getClass() != reqClass)
+ uint8 reqClassMask = -int32(skillOrClassMask);
+ if (!(reqClassMask & getClassMask()))
{
if (msg)
SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ);
@@ -14368,9 +14368,9 @@ bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg)
}
}
// check skill
- else if (skillOrClass > 0)
+ else if (skillOrClassMask > 0)
{
- uint32 reqSkill = skillOrClass;
+ uint32 reqSkill = skillOrClassMask;
if (GetSkillValue(reqSkill) < qInfo->GetRequiredSkillValue())
{
if (msg)