diff options
author | click <none@none> | 2010-05-14 23:43:42 +0200 |
---|---|---|
committer | click <none@none> | 2010-05-14 23:43:42 +0200 |
commit | 85ec98ff9f431347de41bf8c18aa9ec609abebf4 (patch) | |
tree | 35d93836af9d3144e4e5b4cc7aedeeea97f8137c /src/game/Player.cpp | |
parent | 1a49477a1765c1ec58be8cf62f4fef92f506a908 (diff) |
Allow multiple classes for quest requirements - patch by Shauren
(This should make Malcrom happy)
Fixes issue 1476. Fixes issues 1972. Fixes issue 430.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 16 |
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) |