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 4b6351e6a5)
This commit is contained in:
treeston
2017-06-15 04:19:12 +02:00
committed by Carbenium
parent c12ee97f12
commit 2d191a6680
5 changed files with 78 additions and 61 deletions

View File

@@ -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())