diff options
author | treeston <treeston.mmoc@gmail.com> | 2017-06-15 04:19:12 +0200 |
---|---|---|
committer | treeston <treeston.mmoc@gmail.com> | 2017-06-15 04:19:28 +0200 |
commit | 4b6351e6a5a2e2c986f3c0ea8e25bc76055c5b2c (patch) | |
tree | 0a1c6c50006aefe85f46550f7ae4a65b73971920 /src/server/game/Reputation/ReputationMgr.cpp | |
parent | d58fe103bf48b2b16cd0625f12d612b2918d291b (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.
Diffstat (limited to 'src/server/game/Reputation/ReputationMgr.cpp')
-rw-r--r-- | src/server/game/Reputation/ReputationMgr.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp index b0c7538da05..9b290df79ee 100644 --- a/src/server/game/Reputation/ReputationMgr.cpp +++ b/src/server/game/Reputation/ReputationMgr.cpp @@ -168,7 +168,7 @@ void ReputationMgr::SendForceReactions() void ReputationMgr::SendState(FactionState const* faction) { - uint32 count = 1; + uint32 count = faction ? 1 : 0; WorldPacket data(SMSG_SET_FACTION_STANDING, 17); data << float(0); @@ -178,15 +178,18 @@ void ReputationMgr::SendState(FactionState const* faction) size_t p_count = data.wpos(); data << uint32(count); - data << uint32(faction->ReputationListID); - data << uint32(faction->Standing); + if (faction) + { + data << uint32(faction->ReputationListID); + data << uint32(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) { data << uint32(itr->second.ReputationListID); data << uint32(itr->second.Standing); @@ -235,12 +238,6 @@ void ReputationMgr::SendInitialReputations() _player->SendDirectMessage(&data); } -void ReputationMgr::SendStates() -{ - for (FactionStateList::iterator itr = _factions.begin(); itr != _factions.end(); ++itr) - SendState(&(itr->second)); -} - void ReputationMgr::SendVisible(FactionState const* faction) const { if (_player->GetSession()->PlayerLoading()) |