aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Reputation/ReputationMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Reputation/ReputationMgr.cpp')
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp32
1 files changed, 6 insertions, 26 deletions
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 359a8f3946a..3bf3464f016 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -18,6 +18,7 @@
#include "DatabaseEnv.h"
#include "ReputationMgr.h"
+#include "ReputationPackets.h"
#include "DBCStores.h"
#include "Player.h"
#include "WorldPacket.h"
@@ -199,38 +200,17 @@ void ReputationMgr::SendState(FactionState const* faction)
void ReputationMgr::SendInitialReputations()
{
- uint16 count = 256;
- WorldPacket data(SMSG_INITIALIZE_FACTIONS, 4 + count * 5);
- data << uint32(count);
-
- RepListID a = 0;
+ WorldPackets::Reputation::InitializeFactions initFactions;
for (FactionStateList::iterator itr = _factions.begin(); itr != _factions.end(); ++itr)
{
- // fill in absent fields
- for (; a != itr->first; ++a)
- {
- data << uint8(0);
- data << uint32(0);
- }
-
- // fill in encountered data
- data << uint8(itr->second.Flags);
- data << uint32(itr->second.Standing);
-
+ initFactions.FactionFlags[itr->first] = itr->second.Flags;
+ initFactions.FactionStandings[itr->first] = itr->second.Standing;
+ /// @todo faction bonus
itr->second.needSend = false;
-
- ++a;
}
- // fill in absent fields
- for (; a != count; ++a)
- {
- data << uint8(0);
- data << uint32(0);
- }
-
- _player->SendDirectMessage(&data);
+ _player->SendDirectMessage(initFactions.Write());
}
void ReputationMgr::SendStates()