aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Reputation/ReputationMgr.cpp
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2017-06-15 04:19:12 +0200
committerCarbenium <carbenium@outlook.com>2020-07-16 22:00:29 +0200
commit2d191a668019703cf0e32700c586e94679ea04c7 (patch)
treef501856c7d906f4bded3c7a5b39a984a85ca8192 /src/server/game/Reputation/ReputationMgr.cpp
parentc12ee97f122acfd77bd81cf178a77d5054c312b6 (diff)
Fixes to all-reputation and all-skill custom option handling:
- Move on-create customs (all explored, all reputations) to CharacterHandler::HandlePlayerLogin for first login. Fixes #19839. - Add Wrath factions to all reputations custom (it only had BC factions). - Remove unused ReputationMgr::SendStates. Add ReputationMgr::SendState handling for sending all updated states in arbitrary order if nullptr is passed (used in point #1). - Fix all weapon skills max custom to properly apply on learning new weapon skills. (cherry picked from commit 4b6351e6a5a2e2c986f3c0ea8e25bc76055c5b2c)
Diffstat (limited to 'src/server/game/Reputation/ReputationMgr.cpp')
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index b017947d56c..5f2a4b77951 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -187,13 +187,16 @@ void ReputationMgr::SendState(FactionState const* faction)
WorldPackets::Reputation::SetFactionStanding setFactionStanding;
setFactionStanding.ReferAFriendBonus = 0.0f;
setFactionStanding.BonusFromAchievementSystem = 0.0f;
- setFactionStanding.Faction.emplace_back(int32(faction->ReputationListID), faction->Standing);
+
+ if (faction)
+ setFactionStanding.Faction.emplace_back(int32(faction->ReputationListID), faction->Standing);
+
for (FactionStateList::iterator itr = _factions.begin(); itr != _factions.end(); ++itr)
{
if (itr->second.needSend)
{
itr->second.needSend = false;
- if (itr->second.ReputationListID != faction->ReputationListID)
+ if (!faction || itr->second.ReputationListID != faction->ReputationListID)
setFactionStanding.Faction.emplace_back(int32(itr->second.ReputationListID), itr->second.Standing);
}
}
@@ -219,12 +222,6 @@ void ReputationMgr::SendInitialReputations()
_player->SendDirectMessage(initFactions.Write());
}
-void ReputationMgr::SendStates()
-{
- for (FactionStateList::iterator itr = _factions.begin(); itr != _factions.end(); ++itr)
- SendState(&(itr->second));
-}
-
void ReputationMgr::SendVisible(FactionState const* faction, bool visible) const
{
if (_player->GetSession()->PlayerLoading())