aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Reputation/ReputationMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Reputation/ReputationMgr.cpp')
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 770a0dc632f..ed049e73cf6 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -299,9 +299,15 @@ int32 ReputationMgr::GetRenownMaxLevel(FactionEntry const* renownFactionEntry) c
void ReputationMgr::ApplyForceReaction(uint32 faction_id, ReputationRank rank, bool apply)
{
if (apply)
+ {
_forcedReactions[faction_id] = rank;
+ _player->SetVisibleForcedReaction(faction_id, rank);
+ }
else
+ {
_forcedReactions.erase(faction_id);
+ _player->RemoveVisibleForcedReaction(faction_id);
+ }
}
ReputationFlags ReputationMgr::GetDefaultStateFlags(FactionEntry const* factionEntry) const
@@ -356,9 +362,14 @@ void ReputationMgr::SendInitialReputations()
for (FactionStateList::iterator itr = _factions.begin(); itr != _factions.end(); ++itr)
{
- initFactions.FactionFlags[itr->first] = itr->second.Flags.AsUnderlyingType();
- initFactions.FactionStandings[itr->first] = itr->second.Standing;
+ WorldPackets::Reputation::FactionData& factionData = initFactions.Factions.emplace_back();
+ factionData.FactionID = itr->second.ID;
+ factionData.Flags = itr->second.Flags.AsUnderlyingType();
+ factionData.Standing = itr->second.Standing;
/// @todo faction bonus
+ WorldPackets::Reputation::FactionBonusData& bonus = initFactions.Bonuses.emplace_back();
+ bonus.FactionID = itr->second.ID;
+ bonus.FactionHasBonus = false;
itr->second.needSend = false;
}