mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
Add and use function for more fast way to get areflag by area id.
This commit is contained in:
parent
333146baaf
commit
bd3eca6904
3 changed files with 16 additions and 8 deletions
|
|
@ -542,14 +542,12 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
|||
if(!worldOverlayEntry)
|
||||
break;
|
||||
|
||||
AreaTableEntry const* areaTableEntry = GetAreaEntryByAreaID(worldOverlayEntry->areatableID);
|
||||
|
||||
if(!areaTableEntry)
|
||||
int32 exploreFlag = GetAreaFlagByAreaID(worldOverlayEntry->areatableID);
|
||||
if(exploreFlag < 0)
|
||||
break;
|
||||
|
||||
uint32 exploreFlag = areaTableEntry->exploreFlag;
|
||||
uint32 playerIndexOffset = exploreFlag / 32;
|
||||
uint32 mask = 1<< (exploreFlag % 32);
|
||||
uint32 playerIndexOffset = uint32(exploreFlag) / 32;
|
||||
uint32 mask = 1<< (uint32(exploreFlag) % 32);
|
||||
|
||||
if(GetPlayer()->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + playerIndexOffset) & mask)
|
||||
SetCriteriaProgress(achievementCriteria, 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue