Fix for branching within exclusiveGroup questline.

Fixed a special case when quest A has prequest B, that has exclusiveGroup<0, and exclusiveGroup relates to quest C, hence quest A should continue just after parent activation/completion not whole exclusiveGroup completion.

See https://github.com/classicdb/database/issues/761 for a good write up of the issue
This commit is contained in:
killerwife 2016-03-22 12:24:24 +00:00 committed by Antz
parent ad0ca2e067
commit ae301df9fd

View File

@ -12424,6 +12424,10 @@ bool Player::SatisfyQuestPreviousQuest(Quest const* qInfo, bool msg) const
{ return true; }
// each-from-all exclusive group ( < 0)
// given a group with 2+ quests, and one of those has a branch that is not restricted by the group, return true
if (qInfo->GetPrevQuestId() != 0 && qPrevInfo->GetNextQuestId() != qInfo->GetPrevQuestId())
{ return true; }
// can be start if only all quests in prev quest exclusive group completed and rewarded
ExclusiveQuestGroupsMapBounds bounds = sObjectMgr.GetExclusiveQuestGroupsMapBounds(qPrevInfo->GetExclusiveGroup());
@ -12458,6 +12462,10 @@ bool Player::SatisfyQuestPreviousQuest(Quest const* qInfo, bool msg) const
{ return true; }
// each-from-all exclusive group ( < 0)
// given a group with 2+ quests, and one of those has a branch that is not restricted by the group, return true
if (qInfo->GetPrevQuestId() != 0 && qPrevInfo->GetNextQuestId() != abs(qInfo->GetPrevQuestId()))
{ return true; }
// can be start if only all quests in prev quest exclusive group active
ExclusiveQuestGroupsMapBounds bounds = sObjectMgr.GetExclusiveQuestGroupsMapBounds(qPrevInfo->GetExclusiveGroup());