aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-07-13 13:40:31 +0200
committerShauren <shauren.trinity@gmail.com>2025-07-13 13:40:31 +0200
commit5de252ae8471cea021944d2f404a7793f39a8d0d (patch)
tree013165f80f8315e6bfe907af32fa193dee4264cb /src/server/game/Achievements
parent8fad176f5f83f741107d06a9cbe0243da89f8b30 (diff)
Core/Misc: Move large functions out of header files
Diffstat (limited to 'src/server/game/Achievements')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp17
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp10
-rw-r--r--src/server/game/Achievements/CriteriaHandler.h12
3 files changed, 22 insertions, 17 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 3323e9c7212..8cdc4bc2f46 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -38,7 +38,6 @@
#include "StringConvert.h"
#include "World.h"
#include "WorldSession.h"
-#include <sstream>
struct VisibleAchievementCheck
{
@@ -794,7 +793,6 @@ void GuildAchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, Prep
void GuildAchievementMgr::SaveToDB(CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt;
- std::ostringstream guidstr;
for (std::pair<uint32 const, CompletedAchievementData>& completedAchievement : _completedAchievements)
{
if (!completedAchievement.second.Changed)
@@ -809,14 +807,19 @@ void GuildAchievementMgr::SaveToDB(CharacterDatabaseTransaction trans)
stmt->setUInt64(0, _owner->GetId());
stmt->setUInt32(1, completedAchievement.first);
stmt->setInt64(2, completedAchievement.second.Date);
- for (ObjectGuid memberGuid : completedAchievement.second.CompletingPlayers)
- guidstr << memberGuid.GetCounter() << ',';
+ std::string guidstr;
+ auto completersItr = completedAchievement.second.CompletingPlayers.begin();
+ auto completersEnd = completedAchievement.second.CompletingPlayers.end();
+ if (completersItr != completersEnd)
+ {
+ Trinity::StringFormatTo(std::back_inserter(guidstr), "{}", completersItr->GetCounter());
+ while (++completersItr != completersEnd)
+ Trinity::StringFormatTo(std::back_inserter(guidstr), ",{}", completersItr->GetCounter());
+ }
- stmt->setString(3, guidstr.str());
+ stmt->setString(3, std::move(guidstr));
trans->Append(stmt);
- guidstr.str("");
-
completedAchievement.second.Changed = false;
}
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 1c3df7302cb..eacc492e97a 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -4634,6 +4634,11 @@ CriteriaList const& CriteriaMgr::GetScenarioCriteriaByTypeAndScenario(CriteriaTy
return EmptyCriteriaList;
}
+CriteriaTreeList const* CriteriaMgr::GetCriteriaTreesByCriteria(uint32 criteriaId) const
+{
+ return Trinity::Containers::MapGetValuePtr(_criteriaTreeByCriteria, criteriaId);
+}
+
std::unordered_map<int32, CriteriaList> const& CriteriaMgr::GetCriteriaByStartEvent(CriteriaStartEvent startEvent) const
{
return _criteriasByStartEvent[size_t(startEvent)];
@@ -4654,6 +4659,11 @@ CriteriaList const* CriteriaMgr::GetCriteriaByFailEvent(CriteriaFailEvent failEv
return Trinity::Containers::MapGetValuePtr(_criteriasByFailEvent[size_t(failEvent)], asset);
}
+CriteriaDataSet const* CriteriaMgr::GetCriteriaDataSet(Criteria const* criteria) const
+{
+ return Trinity::Containers::MapGetValuePtr(_criteriaDataMap, criteria->ID);
+}
+
CriteriaMgr::CriteriaMgr() = default;
//==========================================================
diff --git a/src/server/game/Achievements/CriteriaHandler.h b/src/server/game/Achievements/CriteriaHandler.h
index 067566d0bde..7057d1c5b79 100644
--- a/src/server/game/Achievements/CriteriaHandler.h
+++ b/src/server/game/Achievements/CriteriaHandler.h
@@ -345,11 +345,7 @@ public:
return _questObjectiveCriteriasByType[size_t(type)];
}
- CriteriaTreeList const* GetCriteriaTreesByCriteria(uint32 criteriaId) const
- {
- auto itr = _criteriaTreeByCriteria.find(criteriaId);
- return itr != _criteriaTreeByCriteria.end() ? &itr->second : nullptr;
- }
+ CriteriaTreeList const* GetCriteriaTreesByCriteria(uint32 criteriaId) const;
std::unordered_map<int32, CriteriaList> const& GetCriteriaByStartEvent(CriteriaStartEvent startEvent) const;
CriteriaList const* GetCriteriaByStartEvent(CriteriaStartEvent startEvent, int32 asset) const;
@@ -357,11 +353,7 @@ public:
std::unordered_map<int32, CriteriaList> const& GetCriteriaByFailEvent(CriteriaFailEvent failEvent) const;
CriteriaList const* GetCriteriaByFailEvent(CriteriaFailEvent failEvent, int32 asset) const;
- CriteriaDataSet const* GetCriteriaDataSet(Criteria const* Criteria) const
- {
- auto iter = _criteriaDataMap.find(Criteria->ID);
- return iter != _criteriaDataMap.end() ? &iter->second : nullptr;
- }
+ CriteriaDataSet const* GetCriteriaDataSet(Criteria const* criteria) const;
static bool IsGroupCriteriaType(CriteriaType type)
{