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:
parent
ad0ca2e067
commit
ae301df9fd
@ -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());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user