From 2d191a668019703cf0e32700c586e94679ea04c7 Mon Sep 17 00:00:00 2001 From: treeston Date: Thu, 15 Jun 2017 04:19:12 +0200 Subject: 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) --- src/server/game/Reputation/ReputationMgr.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/server/game/Reputation/ReputationMgr.cpp') 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()) -- cgit v1.2.3