aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2023-10-13 21:09:02 +0200
committerGitHub <noreply@github.com>2023-10-13 21:09:02 +0200
commit9f68215bb61e46265c6667b6c71f0d2376835686 (patch)
treeb4845b3c966a9a4bacaa48376cc157bc18df58ff /src/server/game/Achievements
parent9223f0cfb472a5b5e3c6b224c618d7b22d509e47 (diff)
Core/Misc: Use DB2Manager::IsInArea for area-related criterias and conditions (#29359)
Diffstat (limited to 'src/server/game/Achievements')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index b8dfdf6468b..8375e9943bf 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -1594,7 +1594,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
case CriteriaType::PVPKillInArea:
case CriteriaType::EnterTopLevelArea:
- if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.AreaID))
+ if (!miscValue1 || !DB2Manager::IsInArea(uint32(miscValue1), uint32(criteria->Entry->Asset.AreaID)))
return false;
break;
case CriteriaType::CurrencyGained:
@@ -1758,9 +1758,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
break;
case ModifierTreeType::PlayerIsInArea: // 17
{
- uint32 zoneId, areaId;
- referencePlayer->GetZoneAndAreaId(zoneId, areaId);
- if (zoneId != reqValue && areaId != reqValue)
+ if (!DB2Manager::IsInArea(referencePlayer->GetAreaId(), reqValue))
return false;
break;
}
@@ -1768,9 +1766,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
{
if (!ref)
return false;
- uint32 zoneId, areaId;
- ref->GetZoneAndAreaId(zoneId, areaId);
- if (zoneId != reqValue && areaId != reqValue)
+ if (!DB2Manager::IsInArea(ref->GetAreaId(), reqValue))
return false;
break;
}
@@ -3583,10 +3579,9 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
case ModifierTreeType::PlayerIsInAreaGroup: // 298
{
std::vector<uint32> areas = sDB2Manager.GetAreasForGroup(reqValue);
- if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(referencePlayer->GetAreaId()))
- for (uint32 areaInGroup : areas)
- if (areaInGroup == area->ID || areaInGroup == area->ParentAreaID)
- return true;
+ for (uint32 areaInGroup : areas)
+ if (DB2Manager::IsInArea(referencePlayer->GetAreaId(), areaInGroup))
+ return true;
return false;
}
case ModifierTreeType::TargetIsInAreaGroup: // 299
@@ -3594,10 +3589,9 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
if (!ref)
return false;
std::vector<uint32> areas = sDB2Manager.GetAreasForGroup(reqValue);
- if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(ref->GetAreaId()))
- for (uint32 areaInGroup : areas)
- if (areaInGroup == area->ID || areaInGroup == area->ParentAreaID)
- return true;
+ for (uint32 areaInGroup : areas)
+ if (DB2Manager::IsInArea(ref->GetAreaId(), areaInGroup))
+ return true;
return false;
}
case ModifierTreeType::PlayerIsInChromieTime: // 300