aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests/QuestDef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Quests/QuestDef.cpp')
-rw-r--r--src/server/game/Quests/QuestDef.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 148cdeab68e..93930cdba54 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -37,7 +37,7 @@ Quest::Quest(Field* questRecord)
RewardXPMultiplier = questRecord[10].GetFloat();
RewardMoney = questRecord[11].GetUInt32();
RewardMoneyDifficulty = questRecord[12].GetUInt32();
- Float13 = questRecord[13].GetFloat();
+ RewardMoneyMultiplier = questRecord[13].GetFloat();
RewardBonusMoney = questRecord[14].GetUInt32();
RewardDisplaySpell = questRecord[15].GetUInt32();
RewardSpell = questRecord[16].GetUInt32();
@@ -241,10 +241,14 @@ uint32 Quest::XPValue(uint32 playerLevel) const
return 0;
}
-uint32 Quest::GetRewMoney() const
+uint32 Quest::MoneyValue(uint8 playerLevel) const
{
- if (RewardMoney > 0)
- return RewardMoney * sWorld->getRate(RATE_MONEY_QUEST);
+ uint8 level;
+ if (playerLevel)
+ level = Level == -1 ? playerLevel : Level;
+
+ if (QuestMoneyRewardEntry const* money = sQuestMoneyRewardStore.LookupEntry(level))
+ return money->Money[GetRewMoneyDifficulty()] * GetMoneyMultiplier();
else
return 0;
}
@@ -253,7 +257,7 @@ void Quest::BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player
{
rewards.ChoiceItemCount = GetRewChoiceItemsCount();
rewards.ItemCount = GetRewItemsCount();
- rewards.Money = GetRewMoney();
+ rewards.Money = player->GetQuestMoneyReward(this);
rewards.XP = player->GetQuestXPReward(this);
rewards.Title = GetRewTitle();
rewards.Talents = GetBonusTalents();