aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/TraitMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/TraitMgr.cpp')
-rw-r--r--src/server/game/Spells/TraitMgr.cpp52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/server/game/Spells/TraitMgr.cpp b/src/server/game/Spells/TraitMgr.cpp
index 20bae857fdb..6bfe9e49b6d 100644
--- a/src/server/game/Spells/TraitMgr.cpp
+++ b/src/server/game/Spells/TraitMgr.cpp
@@ -18,9 +18,9 @@
#include "TraitMgr.h"
#include "DB2Stores.h"
#include "IteratorPair.h"
-#include "Player.h"
#include "MapUtils.h"
#include "TraitPacketsCommon.h"
+#include "UpdateFields.h"
namespace TraitMgr
{
@@ -359,7 +359,7 @@ void TakeCurrencyCost(WorldPackets::Traits::TraitEntry const& entry, std::map<in
currencies[cost->TraitCurrencyID] -= cost->Amount * entry.Rank;
}
-void FillOwnedCurrenciesMap(WorldPackets::Traits::TraitConfig const& traitConfig, Player const* player, std::map<int32, int32>& currencies)
+void FillOwnedCurrenciesMap(WorldPackets::Traits::TraitConfig const& traitConfig, PlayerDataAccessor player, std::map<int32, int32>& currencies)
{
std::vector<Tree const*> const* trees = GetTreesForConfig(traitConfig);
if (!trees)
@@ -382,27 +382,27 @@ void FillOwnedCurrenciesMap(WorldPackets::Traits::TraitConfig const& traitConfig
case TraitCurrencyType::Gold:
{
int32& amount = currencies[currency->ID];
- if (player->GetMoney() > uint64(std::numeric_limits<int32>::max() - amount))
+ if (player.GetMoney() > uint64(std::numeric_limits<int32>::max() - amount))
amount = std::numeric_limits<int32>::max();
else
- amount += player->GetMoney();
+ amount += player.GetMoney();
break;
}
case TraitCurrencyType::CurrencyTypesBased:
- currencies[currency->ID] += player->GetCurrency(currency->CurrencyTypesID);
+ currencies[currency->ID] += player.GetCurrency(currency->CurrencyTypesID);
break;
case TraitCurrencyType::TraitSourced:
if (std::vector<TraitCurrencySourceEntry const*>* currencySources = Trinity::Containers::MapGetValuePtr(_traitCurrencySourcesByCurrency, currency->ID))
{
for (TraitCurrencySourceEntry const* currencySource : *currencySources)
{
- if (currencySource->QuestID && !player->IsQuestRewarded(currencySource->QuestID))
+ if (currencySource->QuestID && !player.IsQuestRewarded(currencySource->QuestID))
continue;
- if (currencySource->AchievementID && !player->HasAchieved(currencySource->AchievementID))
+ if (currencySource->AchievementID && !player.HasAchieved(currencySource->AchievementID))
continue;
- if (currencySource->PlayerLevel && player->GetLevel() < currencySource->PlayerLevel)
+ if (currencySource->PlayerLevel && player.GetLevel() < currencySource->PlayerLevel)
continue;
if (currencySource->TraitNodeEntryID && !hasTraitNodeEntry(currencySource->TraitNodeEntryID))
@@ -445,18 +445,18 @@ void FillSpentCurrenciesMap(WorldPackets::Traits::TraitConfig const& traitConfig
FillSpentCurrenciesMap(entry, cachedCurrencies);
}
-bool MeetsTraitCondition(WorldPackets::Traits::TraitConfig const& traitConfig, Player const* player, TraitCondEntry const* condition,
+bool MeetsTraitCondition(WorldPackets::Traits::TraitConfig const& traitConfig, PlayerDataAccessor player, TraitCondEntry const* condition,
Optional<std::map<int32, int32>>& cachedCurrencies)
{
- if (condition->QuestID && !player->IsQuestRewarded(condition->QuestID))
+ if (condition->QuestID && !player.IsQuestRewarded(condition->QuestID))
return false;
- if (condition->AchievementID && !player->HasAchieved(condition->AchievementID))
+ if (condition->AchievementID && !player.HasAchieved(condition->AchievementID))
return false;
if (condition->SpecSetID)
{
- uint32 chrSpecializationId = player->GetPrimarySpecialization();
+ uint32 chrSpecializationId = player.GetPrimarySpecialization();
if (traitConfig.Type == TraitConfigType::Combat)
chrSpecializationId = traitConfig.ChrSpecializationID;
@@ -483,13 +483,13 @@ bool MeetsTraitCondition(WorldPackets::Traits::TraitConfig const& traitConfig, P
}
}
- if (condition->RequiredLevel && int32(player->GetLevel()) < condition->RequiredLevel)
+ if (condition->RequiredLevel && player.GetLevel() < condition->RequiredLevel)
return false;
return true;
}
-std::vector<UF::TraitEntry> GetGrantedTraitEntriesForConfig(WorldPackets::Traits::TraitConfig const& traitConfig, Player const* player)
+std::vector<UF::TraitEntry> GetGrantedTraitEntriesForConfig(WorldPackets::Traits::TraitConfig const& traitConfig, PlayerDataAccessor player)
{
std::vector<UF::TraitEntry> entries;
std::vector<Tree const*> const* trees = GetTreesForConfig(traitConfig);
@@ -556,7 +556,7 @@ bool IsValidEntry(WorldPackets::Traits::TraitEntry const& traitEntry)
return true;
}
-TalentLearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitConfig, Player const* player, bool requireSpendingAllCurrencies /*= false*/)
+LearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitConfig, PlayerDataAccessor player, bool requireSpendingAllCurrencies /*= false*/)
{
auto getNodeEntryCount = [&](int32 traitNodeId)
{
@@ -614,23 +614,23 @@ TalentLearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitC
for (WorldPackets::Traits::TraitEntry const& traitEntry : traitConfig.Entries)
{
if (!IsValidEntry(traitEntry))
- return TALENT_FAILED_UNKNOWN;
+ return LearnResult::Unknown;
Node const* node = Trinity::Containers::MapGetValuePtr(_traitNodes, traitEntry.TraitNodeID);
if (node->Data->GetType() == TraitNodeType::Selection)
if (getNodeEntryCount(traitEntry.TraitNodeID) != 1)
- return TALENT_FAILED_UNKNOWN;
+ return LearnResult::Unknown;
for (NodeEntry const& entry : node->Entries)
if (!meetsConditions(entry.Conditions))
- return TALENT_FAILED_UNKNOWN;
+ return LearnResult::Unknown;
if (!meetsConditions(node->Conditions))
- return TALENT_FAILED_UNKNOWN;
+ return LearnResult::Unknown;
for (NodeGroup const* group : node->Groups)
if (!meetsConditions(group->Conditions))
- return TALENT_FAILED_UNKNOWN;
+ return LearnResult::Unknown;
if (!node->ParentNodes.empty())
{
@@ -640,7 +640,7 @@ TalentLearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitC
if (!isNodeFullyFilled(parentNode))
{
if (edgeType == TraitEdgeType::RequiredForAvailability)
- return TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE;
+ return LearnResult::NotEnoughTalentsInPrimaryTree;
continue;
}
@@ -649,7 +649,7 @@ TalentLearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitC
}
if (!hasAnyParentTrait)
- return TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE;
+ return LearnResult::NotEnoughTalentsInPrimaryTree;
}
}
@@ -666,7 +666,7 @@ TalentLearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitC
int32* grantedCount = Trinity::Containers::MapGetValuePtr(grantedCurrencies, traitCurrencyId);
if (!grantedCount || *grantedCount < spentAmount)
- return TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE;
+ return LearnResult::NotEnoughTalentsInPrimaryTree;
}
@@ -679,11 +679,11 @@ TalentLearnResult ValidateConfig(WorldPackets::Traits::TraitConfig const& traitC
int32* spentAmount = Trinity::Containers::MapGetValuePtr(*spentCurrencies, traitCurrencyId);
if (!spentAmount || *spentAmount != grantedAmount)
- return TALENT_FAILED_UNSPENT_TALENT_POINTS;
+ return LearnResult::UnspentTalentPoints;
}
}
- return TALENT_LEARN_OK;
+ return LearnResult::Ok;
}
std::vector<TraitDefinitionEffectPointsEntry const*> const* GetTraitDefinitionEffectPointModifiers(int32 traitDefinitionId)
@@ -691,7 +691,7 @@ std::vector<TraitDefinitionEffectPointsEntry const*> const* GetTraitDefinitionEf
return Trinity::Containers::MapGetValuePtr(_traitDefinitionEffectPointModifiers, traitDefinitionId);
}
-void InitializeStarterBuildTraitConfig(WorldPackets::Traits::TraitConfig& traitConfig, Player const* player)
+void InitializeStarterBuildTraitConfig(WorldPackets::Traits::TraitConfig& traitConfig, PlayerDataAccessor player)
{
traitConfig.Entries.clear();
std::vector<Tree const*> const* trees = GetTreesForConfig(traitConfig);