@@ -429,7 +429,7 @@ bool AchievementCriteriaData::Meets(uint32 criteria_id, Player const* source, Wo
429429 }
430430 case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_EQUIPPED_ITEM:
431431 {
432- AchievementCriteriaEntry const * entry = ASSERT_NOTNULL ( sAchievementMgr -> GetAchievementCriteria ( criteria_id) );
432+ AchievementCriteriaEntry const * entry = sAchievementCriteriaStore . AssertEntry ( criteria_id);
433433
434434 uint32 itemId = (entry->Type == ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM ? miscValue2 : miscValue1);
435435 ItemTemplate const * itemTemplate = sObjectMgr ->GetItemTemplate (itemId);
@@ -480,9 +480,8 @@ bool AchievementCriteriaDataSet::Meets(Player const* source, WorldObject const*
480480 return true ;
481481}
482482
483- AchievementMgr::AchievementMgr (Player* player)
483+ AchievementMgr::AchievementMgr (Player* player) : m_player(player), m_achievementPoints( 0 )
484484{
485- m_player = player;
486485}
487486
488487AchievementMgr::~AchievementMgr () { }
@@ -504,6 +503,7 @@ void AchievementMgr::Reset()
504503 }
505504
506505 m_completedAchievements.clear ();
506+ m_achievementPoints = 0 ;
507507 m_criteriaProgress.clear ();
508508 DeleteFromDB (m_player->GetGUID ());
509509
@@ -525,7 +525,7 @@ void AchievementMgr::ResetAchievementCriteria(AchievementCriteriaCondition condi
525525
526526 for (AchievementCriteriaEntry const * achievementCriteria : *achievementCriteriaList)
527527 {
528- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (achievementCriteria->AchievementID );
528+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (achievementCriteria->AchievementID );
529529 if (!achievement)
530530 continue ;
531531
@@ -613,14 +613,16 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
613613 uint32 achievementid = fields[0 ].GetUInt16 ();
614614
615615 // must not happen: cleanup at server startup in sAchievementMgr->LoadCompletedAchievements()
616- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (achievementid);
616+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (achievementid);
617617 if (!achievement)
618618 continue ;
619619
620620 CompletedAchievementData& ca = m_completedAchievements[achievementid];
621621 ca.date = time_t (fields[1 ].GetUInt32 ());
622622 ca.changed = false ;
623623
624+ m_achievementPoints += achievement->Points ;
625+
624626 // title achievement rewards are retroactive
625627 if (AchievementReward const * reward = sAchievementMgr ->GetAchievementReward (achievement))
626628 if (uint32 titleId = reward->TitleId [Player::TeamForRace (GetPlayer ()->GetRace ()) == ALLIANCE ? 0 : 1 ])
@@ -639,7 +641,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
639641 uint32 counter = fields[1 ].GetUInt32 ();
640642 time_t date = time_t (fields[2 ].GetUInt32 ());
641643
642- AchievementCriteriaEntry const * criteria = sAchievementMgr -> GetAchievementCriteria (id);
644+ AchievementCriteriaEntry const * criteria = sAchievementCriteriaStore . LookupEntry (id);
643645 if (!criteria)
644646 {
645647 // Removing non-existing criteria data for all characters
@@ -787,7 +789,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
787789 AchievementCriteriaEntryList const & achievementCriteriaList = sAchievementMgr ->GetAchievementCriteriaByType (type, miscValue1);
788790 for (AchievementCriteriaEntry const * achievementCriteria : achievementCriteriaList)
789791 {
790- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (achievementCriteria->AchievementID );
792+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (achievementCriteria->AchievementID );
791793 if (!CanUpdateCriteria (achievementCriteria, achievement, miscValue1, miscValue2, ref))
792794 continue ;
793795
@@ -1054,13 +1056,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
10541056 break ;
10551057 case ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS:
10561058 if (!miscValue1)
1057- {
1058- uint32 points = 0 ;
1059- for (std::pair<uint32 const , CompletedAchievementData> const & completedAchievement : m_completedAchievements)
1060- if (AchievementEntry const * completedAchievements = sAchievementMgr ->GetAchievement (completedAchievement.first ))
1061- points += completedAchievements->Points ;
1062- SetCriteriaProgress (achievementCriteria, points, PROGRESS_SET);
1063- }
1059+ SetCriteriaProgress (achievementCriteria, m_achievementPoints, PROGRESS_SET);
10641060 else
10651061 SetCriteriaProgress (achievementCriteria, miscValue1, PROGRESS_ACCUMULATE);
10661062 break ;
@@ -1177,7 +1173,7 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
11771173 if (!progress)
11781174 return false ;
11791175
1180- switch (achievementCriteria->Type )
1176+ switch (AchievementCriteriaTypes ( achievementCriteria->Type ) )
11811177 {
11821178 case ACHIEVEMENT_CRITERIA_TYPE_WIN_BG:
11831179 case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE:
@@ -1277,6 +1273,7 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
12771273 default :
12781274 break ;
12791275 }
1276+
12801277 return false ;
12811278}
12821279
@@ -1418,7 +1415,7 @@ void AchievementMgr::SetCriteriaProgress(AchievementCriteriaEntry const* entry,
14181415 if (entry->StartTimer )
14191416 {
14201417 // has to exist, otherwise we wouldn't be here
1421- timedCompleted = IsCompletedCriteria (entry, sAchievementMgr -> GetAchievement (entry->AchievementID ));
1418+ timedCompleted = IsCompletedCriteria (entry, sAchievementStore . LookupEntry (entry->AchievementID ));
14221419 // Client expects this in packet
14231420 timeElapsed = entry->StartTimer - (timedIter->second /IN_MILLISECONDS);
14241421
@@ -1455,7 +1452,7 @@ void AchievementMgr::UpdateTimedAchievements(uint32 timeDiff)
14551452 // Time is up, remove timer and reset progress
14561453 if (itr->second <= timeDiff)
14571454 {
1458- AchievementCriteriaEntry const * entry = sAchievementMgr -> GetAchievementCriteria (itr->first );
1455+ AchievementCriteriaEntry const * entry = sAchievementCriteriaStore . LookupEntry (itr->first );
14591456 RemoveCriteriaProgress (entry);
14601457 m_timedAchievements.erase (itr++);
14611458 }
@@ -1475,7 +1472,7 @@ void AchievementMgr::StartTimedAchievement(AchievementCriteriaTimedTypes type, u
14751472 if (criteria->StartAsset != entry)
14761473 continue ;
14771474
1478- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (criteria->AchievementID );
1475+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (criteria->AchievementID );
14791476 if (m_timedAchievements.find (criteria->ID ) == m_timedAchievements.end () && !IsCompletedCriteria (criteria, achievement))
14801477 {
14811478 // Start the timer
@@ -1530,6 +1527,8 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
15301527 if (achievement->Flags & (ACHIEVEMENT_FLAG_REALM_FIRST_REACH | ACHIEVEMENT_FLAG_REALM_FIRST_KILL))
15311528 sAchievementMgr ->SetRealmCompleted (achievement);
15321529
1530+ m_achievementPoints += achievement->Points ;
1531+
15331532 UpdateAchievementCriteria (ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, achievement->ID );
15341533 UpdateAchievementCriteria (ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, achievement->Points );
15351534
@@ -1618,7 +1617,7 @@ void AchievementMgr::BuildAllDataPacket(Player const* receiver, WorldPacket* dat
16181617 for (std::pair<uint32 const , CompletedAchievementData> const & completedAchievement : m_completedAchievements)
16191618 {
16201619 // Skip hidden achievements
1621- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (completedAchievement.first );
1620+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (completedAchievement.first );
16221621 if (!achievement || achievement->Flags & ACHIEVEMENT_FLAG_HIDDEN)
16231622 continue ;
16241623
@@ -2341,11 +2340,11 @@ void AchievementGlobalMgr::LoadAchievementCriteriaList()
23412340 uint32 loaded = 0 ;
23422341 for (uint32 entryId = 0 ; entryId < sAchievementCriteriaStore .GetNumRows (); ++entryId)
23432342 {
2344- AchievementCriteriaEntry const * criteria = sAchievementMgr -> GetAchievementCriteria (entryId);
2343+ AchievementCriteriaEntry const * criteria = sAchievementCriteriaStore . LookupEntry (entryId);
23452344 if (!criteria)
23462345 continue ;
23472346
2348- if (!GetAchievement (criteria->AchievementID ))
2347+ if (!sAchievementStore . LookupEntry (criteria->AchievementID ))
23492348 {
23502349 TC_LOG_DEBUG (" server.loading" , " Achievement {} referenced by criteria {} doesn't exist, criteria not loaded." , criteria->AchievementID , criteria->ID );
23512350 continue ;
@@ -2423,7 +2422,7 @@ void AchievementGlobalMgr::LoadAchievementReferenceList()
24232422
24242423 for (uint32 entryId = 0 ; entryId < sAchievementStore .GetNumRows (); ++entryId)
24252424 {
2426- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (entryId);
2425+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (entryId);
24272426 if (!achievement || !achievement->SharesCriteria )
24282427 continue ;
24292428
@@ -2432,7 +2431,7 @@ void AchievementGlobalMgr::LoadAchievementReferenceList()
24322431 }
24332432
24342433 // Once Bitten, Twice Shy (10 player) - Icecrown Citadel
2435- if (AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (4539 ))
2434+ if (AchievementEntry const * achievement = sAchievementStore . LookupEntry (4539 ))
24362435 const_cast <AchievementEntry*>(achievement)->InstanceID = 631 ; // Correct map requirement (currently has Ulduar)
24372436
24382437 TC_LOG_INFO (" server.loading" , " >> Loaded {} achievement references in {} ms." , count, GetMSTimeDiffToNow (oldMSTime));
@@ -2459,7 +2458,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
24592458 Field* fields = result->Fetch ();
24602459 uint32 criteria_id = fields[0 ].GetUInt32 ();
24612460
2462- AchievementCriteriaEntry const * criteria = sAchievementMgr -> GetAchievementCriteria (criteria_id);
2461+ AchievementCriteriaEntry const * criteria = sAchievementCriteriaStore . LookupEntry (criteria_id);
24632462
24642463 if (!criteria)
24652464 {
@@ -2499,7 +2498,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
24992498 // post loading checks
25002499 for (uint32 entryId = 0 ; entryId < sAchievementCriteriaStore .GetNumRows (); ++entryId)
25012500 {
2502- AchievementCriteriaEntry const * criteria = sAchievementMgr -> GetAchievementCriteria (entryId);
2501+ AchievementCriteriaEntry const * criteria = sAchievementCriteriaStore . LookupEntry (entryId);
25032502 if (!criteria)
25042503 continue ;
25052504
@@ -2525,7 +2524,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
25252524 break ;
25262525 case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST:
25272526 {
2528- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (criteria->AchievementID );
2527+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (criteria->AchievementID );
25292528 if (!achievement)
25302529 continue ;
25312530
@@ -2554,7 +2553,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
25542553 case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST:
25552554 case ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM: // only Children's Week achievements
25562555 {
2557- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (criteria->AchievementID );
2556+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (criteria->AchievementID );
25582557 if (!achievement)
25592558 continue ;
25602559 if (achievement->Category != CATEGORY_CHILDRENS_WEEK && achievement->ID != 1785 )
@@ -2597,7 +2596,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
25972596 Field* fields = result->Fetch ();
25982597
25992598 uint16 achievementId = fields[0 ].GetUInt16 ();
2600- AchievementEntry const * achievement = sAchievementMgr -> GetAchievement (achievementId);
2599+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (achievementId);
26012600 if (!achievement)
26022601 {
26032602 // Remove non-existing achievements from all characters
@@ -2636,7 +2635,7 @@ void AchievementGlobalMgr::LoadRewards()
26362635 {
26372636 Field* fields = result->Fetch ();
26382637 uint32 id = fields[0 ].GetUInt32 ();
2639- AchievementEntry const * achievement = GetAchievement (id);
2638+ AchievementEntry const * achievement = sAchievementStore . LookupEntry (id);
26402639 if (!achievement)
26412640 {
26422641 TC_LOG_ERROR (" sql.sql" , " Table `achievement_reward` contains a wrong achievement ID ({}), ignored." , id);
@@ -2771,13 +2770,3 @@ void AchievementGlobalMgr::LoadRewardLocales()
27712770
27722771 TC_LOG_INFO (" server.loading" , " >> Loaded {} achievement reward locale strings in {} ms." , uint32 (m_achievementRewardLocales.size ()), GetMSTimeDiffToNow (oldMSTime));
27732772}
2774-
2775- AchievementEntry const * AchievementGlobalMgr::GetAchievement (uint32 achievementId) const
2776- {
2777- return sAchievementStore .LookupEntry (achievementId);
2778- }
2779-
2780- AchievementCriteriaEntry const * AchievementGlobalMgr::GetAchievementCriteria (uint32 criteriaId) const
2781- {
2782- return sAchievementCriteriaStore .LookupEntry (criteriaId);
2783- }
0 commit comments