aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-01-20 20:31:59 +0100
committerShauren <shauren.trinity@gmail.com>2012-01-20 20:31:59 +0100
commitbdd02e763b27869de9e9d0200ac75189e1bdf625 (patch)
tree27d2a4faab9fbc9c03afad5b325faac8bf60d231 /src/server/game/Entities/Player
parent075780ad597d3073d434f73a33116a2cddbb73c9 (diff)
Core/Objects: Fixed visibility of gameobjects and fixed client crash when logging in a character that had currencies (honor points)
Diffstat (limited to 'src/server/game/Entities/Player')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp36
1 files changed, 25 insertions, 11 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 975a999267b..4d9dd6aa669 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7302,17 +7302,31 @@ void Player::SendCurrencies() const
for (PlayerCurrenciesMap::const_iterator itr = m_currencies.begin(); itr != m_currencies.end(); ++itr)
{
- CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first);
- if (!entry)
- continue;
-
- uint32 precision = (entry->Flags & 0x8) ? 100 : 1;
- packet << uint32(itr->second.weekCount / precision);
- packet << uint8(0); // unknown
- packet << uint32(entry->ID);
- packet << uint32(sWorld->GetNextWeeklyQuestsResetTime() - 1*WEEK);
- packet << uint32(_GetCurrencyWeekCap(entry) / precision);
- packet << uint32(itr->second.totalCount / precision);
+ CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first);
+ if (!entry)
+ continue;
+
+ uint32 precision = (entry->Flags & 0x8) ? 100 : 1;
+ packet.WriteBit(_GetCurrencyWeekCap(entry) / precision);
+ packet.WriteBit(0);
+ packet.WriteBit(itr->second.weekCount / precision);
+ }
+
+ for (PlayerCurrenciesMap::const_iterator itr = m_currencies.begin(); itr != m_currencies.end(); ++itr)
+ {
+ CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first);
+ if (!entry)
+ continue;
+
+ uint32 precision = (entry->Flags & 0x8) ? 100 : 1;
+ packet << uint32(entry->ID);
+ if (uint32 weekCap = (_GetCurrencyWeekCap(entry) / precision))
+ packet << uint32(weekCap);
+ packet << uint32(itr->second.totalCount / precision);
+ packet << uint8(0); // unknown
+ //packet << uint32(0); // season total earned
+ if (uint32 weekCount = (itr->second.weekCount / precision))
+ packet << uint32(weekCount);
}
GetSession()->SendPacket(&packet);