aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/DataStores/DBCStores.cpp5
-rwxr-xr-xsrc/server/game/DataStores/DBCStores.h1
-rwxr-xr-xsrc/server/game/DataStores/DBCStructure.h6
-rwxr-xr-xsrc/server/game/DataStores/DBCfmt.h1
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp6
-rwxr-xr-xsrc/server/game/Quests/QuestDef.cpp20
-rwxr-xr-xsrc/server/game/Quests/QuestDef.h1
7 files changed, 34 insertions, 6 deletions
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index a9576c7e996..021e5f9d62e 100755
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -181,6 +181,7 @@ DBCStorage <TaxiPathEntry> sTaxiPathStore(TaxiPathEntryfmt);
TaxiPathNodesByPath sTaxiPathNodesByPath;
static DBCStorage <TaxiPathNodeEntry> sTaxiPathNodeStore(TaxiPathNodeEntryfmt);
+DBCStorage <TeamContributionPointsEntry> sTeamContributionPointsStore(TeamContributionPointsfmt);
DBCStorage <TotemCategoryEntry> sTotemCategoryStore(TotemCategoryEntryfmt);
DBCStorage <VehicleEntry> sVehicleStore(VehicleEntryfmt);
DBCStorage <VehicleSeatEntry> sVehicleSeatStore(VehicleSeatEntryfmt);
@@ -245,8 +246,7 @@ void LoadDBCStores(const std::string& dataPath)
uint32 oldMSTime = getMSTime();
std::string dbcPath = dataPath+"dbc/";
-
- const uint32 DBCFilesCount = 90;
+ const uint32 DBCFilesCount = 91;
StoreProblemList bad_dbc_files;
uint32 availableDbcLocales = 0xFFFFFFFF;
@@ -575,6 +575,7 @@ void LoadDBCStores(const std::string& dataPath)
}
}
+ LoadDBC(availableDbcLocales,bad_dbc_files,sTeamContributionPointsStore,dbcPath,"TeamContributionPoints.dbc");
LoadDBC(availableDbcLocales,bad_dbc_files,sTotemCategoryStore, dbcPath,"TotemCategory.dbc");
LoadDBC(availableDbcLocales,bad_dbc_files,sVehicleStore, dbcPath,"Vehicle.dbc");
LoadDBC(availableDbcLocales,bad_dbc_files,sVehicleSeatStore, dbcPath,"VehicleSeat.dbc");
diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h
index 55ed53ea1d6..fbd61153509 100755
--- a/src/server/game/DataStores/DBCStores.h
+++ b/src/server/game/DataStores/DBCStores.h
@@ -157,6 +157,7 @@ extern TaxiMask sAllianceTaxiNodesMask;
extern TaxiMask sDeathKnightTaxiNodesMask;
extern TaxiPathSetBySource sTaxiPathSetBySource;
extern TaxiPathNodesByPath sTaxiPathNodesByPath;
+extern DBCStorage <TeamContributionPointsEntry> sTeamContributionPointsStore;
extern DBCStorage <TotemCategoryEntry> sTotemCategoryStore;
extern DBCStorage <VehicleEntry> sVehicleStore;
extern DBCStorage <VehicleSeatEntry> sVehicleSeatStore;
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index 168e4bc8b3c..ef09795d731 100755
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -1749,6 +1749,12 @@ struct TaxiPathNodeEntry
uint32 departureEventID; // 10 m_departureEventID
};
+struct TeamContributionPointsEntry
+{
+ //uint32 entry; // 0
+ float value; // 1 (???)
+};
+
struct TotemCategoryEntry
{
uint32 ID; // 0
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index 0b03ce6c701..a6d3f8e983a 100755
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -110,6 +110,7 @@ const char TalentTabEntryfmt[]="nxxxxxxxxxxxxxxxxxxxiiix";
const char TaxiNodesEntryfmt[]="nifffssssssssssssssssxii";
const char TaxiPathEntryfmt[]="niii";
const char TaxiPathNodeEntryfmt[]="diiifffiiii";
+const char TeamContributionPointsfmt[]="df";
const char TotemCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxii";
const char VehicleEntryfmt[]="niffffiiiiiiiifffffffffffffffssssfifiixx";
const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiiixxxxxxxxxxxx";
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 41c1a0219b2..29d1d136687 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -14694,10 +14694,8 @@ void Player::RewardQuest(Quest const *pQuest, uint32 reward, Object* questGiver,
}
// honor reward
- if (pQuest->GetRewHonorAddition())
- RewardHonor(NULL, 0, pQuest->GetRewHonorAddition());
- if (pQuest->GetRewHonorMultiplier())
- RewardHonor(NULL, 0, Trinity::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorMultiplier()));
+ if (uint32 honor = pQuest->CalculateHonorGain(getLevel()))
+ RewardHonor(NULL, 0, honor);
// title reward
if (pQuest->GetCharTitleId())
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 62739212ab9..50fb0e452fb 100755
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -212,3 +212,23 @@ bool Quest::IsAllowedInRaid() const
return sWorld->getBoolConfig(CONFIG_QUEST_IGNORE_RAID);
}
+
+uint32 Quest::CalculateHonorGain(uint8 level) const
+{
+ if (level > GT_MAX_LEVEL)
+ level = GT_MAX_LEVEL;
+
+ uint32 honor = 0;
+
+ if (GetRewHonorAddition() > 0 || GetRewHonorMultiplier() > 0.0f)
+ {
+ // values stored from 0.. for 1...
+ TeamContributionPointsEntry const* tc = sTeamContributionPointsStore.LookupEntry(level-1);
+ if (!tc)
+ return 0;
+ honor = uint32(tc->value * GetRewHonorMultiplier() * 0.1000000014901161);
+ honor += GetRewHonorAddition();
+ }
+
+ return honor;
+}
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index 1ddc5af2d31..9c5e6b54440 100755
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -253,6 +253,7 @@ class Quest
bool IsRaidQuest() const { return Type == QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25; }
bool IsAllowedInRaid() const;
bool IsDFQuest() const { return QuestFlags & QUEST_TRINITY_FLAGS_DF_QUEST; }
+ uint32 CalculateHonorGain(uint8 level) const;
// multiple values
std::string ObjectiveText[QUEST_OBJECTIVES_COUNT];