aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfunjoker <funjoker109@gmail.com>2022-04-17 20:01:13 +0200
committerGitHub <noreply@github.com>2022-04-17 20:01:13 +0200
commite9359080fdb84cc7445f37f3526b804c59c49b4e (patch)
tree07c52e4db181fea875282db4cd014df6f9855e6f
parentc65ccefe16bf462b082fd7a6fce9f87e03a32cb0 (diff)
Core/Achievements: Reduce differences between branches (#27675)
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp54
1 files changed, 25 insertions, 29 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 3d8020ea770..7a705e10720 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -666,13 +666,11 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement)
if (GetPlayer()->GetSession()->PlayerLoading())
return;
- // Don't send for achievements with ACHIEVEMENT_FLAG_TRACKING
+ // Don't send for achievements with ACHIEVEMENT_FLAG_HIDDEN
if (achievement->Flags & ACHIEVEMENT_FLAG_HIDDEN)
return;
- #ifdef TRINITY_DEBUG
- TC_LOG_DEBUG("achievement", "AchievementMgr::SendAchievementEarned(%u)", achievement->ID);
- #endif
+ TC_LOG_DEBUG("achievement", "AchievementMgr::SendAchievementEarned(%u)", achievement->ID);
if (Guild* guild = sGuildMgr->GetGuildById(GetPlayer()->GetGuildId()))
{
@@ -717,7 +715,7 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement)
void AchievementMgr::SendCriteriaUpdate(AchievementCriteriaEntry const* entry, CriteriaProgress const* progress, uint32 timeElapsed, bool timedCompleted) const
{
- WorldPacket data(SMSG_CRITERIA_UPDATE, 8+4+8);
+ WorldPacket data(SMSG_CRITERIA_UPDATE, 8 + 4 + 8);
data << uint32(entry->ID);
// the counter is packed like a packed Guid
@@ -773,7 +771,10 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
{
AchievementEntry const* achievement = sAchievementMgr->GetAchievement(achievementCriteria->AchievementID);
if (!achievement)
+ {
+ TC_LOG_ERROR("achievement", "UpdateAchievementCriteria: Achievement %u not found!", achievementCriteria->AchievementID);
continue;
+ }
if (!CanUpdateCriteria(achievementCriteria, achievement, miscValue1, miscValue2, ref))
continue;
@@ -875,6 +876,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
case ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP:
case ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM:
case ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM:
+ case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
SetCriteriaProgress(achievementCriteria, 1, PROGRESS_SET);
break;
@@ -890,10 +892,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
if (uint32 maxSkillvalue = GetPlayer()->GetPureMaxSkillValue(achievementCriteria->Asset.SkillID))
SetCriteriaProgress(achievementCriteria, maxSkillvalue);
break;
- case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
- if ((miscValue1 && achievementCriteria->Asset.AchievementID == miscValue1) || (!miscValue1 && m_completedAchievements.find(achievementCriteria->Asset.AchievementID) != m_completedAchievements.end()))
- SetCriteriaProgress(achievementCriteria, 1);
- break;
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
SetCriteriaProgress(achievementCriteria, GetPlayer()->GetRewardedQuestCount());
break;
@@ -915,7 +913,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
// 1st time. Start count.
progressType = PROGRESS_SET;
else if (progress->date < (nextDailyResetTime - 2 * DAY))
- // last progress is older than 2 days. Player missed 1 day => Retart count.
+ // last progress is older than 2 days. Player missed 1 day => Restart count.
progressType = PROGRESS_SET;
else if (progress->date < (nextDailyResetTime - DAY))
// last progress is between 1 and 2 days. => 1st time of the day.
@@ -1291,16 +1289,16 @@ bool AchievementMgr::IsCompletedAchievement(AchievementEntry const* entry)
return false;
// for achievement with referenced achievement criterias get from referenced and counter from self
- uint32 achievmentForTestId = entry->SharesCriteria ? entry->SharesCriteria : entry->ID;
- uint32 achievmentForTestCount = entry->MinimumCriteria;
+ uint32 achievementForTestId = entry->SharesCriteria ? entry->SharesCriteria : entry->ID;
+ uint32 achievementForTestCount = entry->MinimumCriteria;
- AchievementCriteriaEntryList const* cList = sAchievementMgr->GetAchievementCriteriaByAchievement(achievmentForTestId);
+ AchievementCriteriaEntryList const* cList = sAchievementMgr->GetAchievementCriteriaByAchievement(achievementForTestId);
if (!cList)
return false;
uint32 count = 0;
// For SUMM achievements, we have to count the progress of each criteria of the achievement.
- // Oddly, the target count is NOT countained in the achievement, but in each individual criteria
+ // Oddly, the target count is NOT contained in the achievement, but in each individual criteria
if (entry->Flags & ACHIEVEMENT_FLAG_SUMM)
{
for (AchievementCriteriaEntry const* criteria : *cList)
@@ -1331,12 +1329,12 @@ bool AchievementMgr::IsCompletedAchievement(AchievementEntry const* entry)
completed_all = false;
// completed as have req. count of completed criterias
- if (achievmentForTestCount > 0 && achievmentForTestCount <= count)
+ if (achievementForTestCount > 0 && achievementForTestCount <= count)
return true;
}
// all criterias completed requirement
- if (completed_all && achievmentForTestCount == 0)
+ if (completed_all && achievementForTestCount == 0)
return true;
return false;
@@ -1582,14 +1580,14 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
void AchievementMgr::SendAllAchievementData() const
{
- WorldPacket data(SMSG_ALL_ACHIEVEMENT_DATA, m_completedAchievements.size()*8+4+m_criteriaProgress.size()*38+4);
+ WorldPacket data(SMSG_ALL_ACHIEVEMENT_DATA, m_completedAchievements.size() * 8 + 4 + m_criteriaProgress.size() * 38 + 4);
BuildAllDataPacket(&data);
GetPlayer()->SendDirectMessage(&data);
}
void AchievementMgr::SendRespondInspectAchievements(Player* player) const
{
- WorldPacket data(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, 9+m_completedAchievements.size()*8+4+m_criteriaProgress.size()*38+4);
+ WorldPacket data(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, 9 + m_completedAchievements.size() * 8 + 4 + m_criteriaProgress.size() * 38 + 4);
data << GetPlayer()->GetPackGUID();
BuildAllDataPacket(&data);
player->SendDirectMessage(&data);
@@ -1750,7 +1748,6 @@ bool AchievementMgr::RequirementsSatisfied(AchievementCriteriaEntry const* achie
return false;
break;
case ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL:
- case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING:
@@ -1766,19 +1763,19 @@ bool AchievementMgr::RequirementsSatisfied(AchievementCriteriaEntry const* achie
break;
// specialized cases
+ case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
+ if ((miscValue1 && achievementCriteria->Asset.AchievementID != miscValue1) || (!miscValue1 && m_completedAchievements.find(achievementCriteria->Asset.AchievementID) == m_completedAchievements.end()))
+ return false;
+ break;
case ACHIEVEMENT_CRITERIA_TYPE_WIN_BG:
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP:
- if (!miscValue1)
- return false;
- if (achievementCriteria->Asset.MapID != GetPlayer()->GetMapId())
+ if (!miscValue1 || achievementCriteria->Asset.MapID != GetPlayer()->GetMapId())
return false;
break;
case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE:
case ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE:
- if (!miscValue1)
- return false;
- if (achievementCriteria->Asset.CreatureID != miscValue1)
+ if (!miscValue1 || achievementCriteria->Asset.CreatureID != miscValue1)
return false;
break;
case ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL:
@@ -1826,9 +1823,7 @@ bool AchievementMgr::RequirementsSatisfied(AchievementCriteriaEntry const* achie
return false;
break;
case ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM:
- if (!miscValue1)
- return false;
- if (miscValue2 != achievementCriteria->Asset.DamageType)
+ if (!miscValue1 || miscValue2 != achievementCriteria->Asset.DamageType)
return false;
break;
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST:
@@ -2581,7 +2576,8 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
}
else if (achievement->Flags & (ACHIEVEMENT_FLAG_REALM_FIRST_REACH | ACHIEVEMENT_FLAG_REALM_FIRST_KILL))
_allCompletedAchievements[achievementId] = SystemTimePoint::max();
- } while (result->NextRow());
+ }
+ while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %lu realm first completed achievements in %u ms.", (unsigned long)_allCompletedAchievements.size(), GetMSTimeDiffToNow(oldMSTime));
}