diff options
Diffstat (limited to 'src/server/game/Reputation/ReputationMgr.cpp')
-rw-r--r-- | src/server/game/Reputation/ReputationMgr.cpp | 15 |
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; } |