From 8a0f9f61f9d9ee04f80ea0ef8a8e369fb38e13dc Mon Sep 17 00:00:00 2001 From: tomrus88 Date: Sun, 7 Jun 2009 22:04:45 +0400 Subject: [PATCH] Fixed typos, merge errors. --- src/game/Player.cpp | 2 +- src/game/QueryHandler.cpp | 2 +- src/game/UpdateData.cpp | 48 +++++++++++++++++++-------------------- src/game/UpdateData.h | 2 +- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 75b349433..90f5de665 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -423,7 +423,7 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa m_lastPotionId = 0; m_activeSpec = 0; - m_speakCount = 0; + m_specsCount = 0; for (int i = 0; i < BASEMOD_END; ++i) { diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index 9702b87a7..0b12493da 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -196,7 +196,7 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data ) data << uint8(ci->RacialLeader); for(uint32 i = 0; i < 4; ++i) data << uint32(ci->questItems[i]); // itemId[4], quest drop - data << uint32(0); // CreatureMovementInfo.dbc + data << uint32(ci->movementId); // CreatureMovementInfo.dbc SendPacket( &data ); sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE" ); } diff --git a/src/game/UpdateData.cpp b/src/game/UpdateData.cpp index f9ab96ca5..c7b7e78fa 100644 --- a/src/game/UpdateData.cpp +++ b/src/game/UpdateData.cpp @@ -45,7 +45,7 @@ void UpdateData::AddUpdateBlock(const ByteBuffer &block) ++m_blockCount; } -void UpdateData::Compress( uint8* dst, uint32 *dst_size, uint8* src, int src_size ) +void UpdateData::Compress(void* dst, uint32 *dst_size, void* src, int src_size) { z_stream c_stream; @@ -105,44 +105,42 @@ bool UpdateData::BuildPacket(WorldPacket *packet) { ASSERT(packet->empty()); // shouldn't happen - ByteBuffer buf(m_outOfRangeGUIDs.empty() ? m_data.size() : 1 + 4 + m_outOfRangeGUIDs.size() * 9 + m_data.size()); + ByteBuffer buf(4 + (m_outOfRangeGUIDs.empty() ? 0 : 1 + 4 + 9 * m_outOfRangeGUIDs.size()) + m_data.wpos()); - // put update blocks count - buf << uint32(m_outOfRangeGUIDs.empty() ? m_blockCount : m_blockCount + 1); + buf << (uint32) (!m_outOfRangeGUIDs.empty() ? m_blockCount + 1 : m_blockCount); - if(m_outOfRangeGUIDs.empty()) + if(!m_outOfRangeGUIDs.empty()) { - // put update data - buf.append(m_data); - } - else - { - // put out of range GUID's - buf << uint8(UPDATETYPE_OUT_OF_RANGE_OBJECTS); - buf << uint32(m_outOfRangeGUIDs.size()); + buf << (uint8) UPDATETYPE_OUT_OF_RANGE_OBJECTS; + buf << (uint32) m_outOfRangeGUIDs.size(); for(std::set::const_iterator i = m_outOfRangeGUIDs.begin(); i != m_outOfRangeGUIDs.end(); ++i) + { buf.appendPackGUID(*i); - - // put update data - buf.append(m_data); + } } - size_t pSize = buf.size(); + buf.append(m_data); - if(pSize > 100) // compress large packets + size_t pSize = buf.wpos(); // use real used data size + + if (pSize > 100 ) // compress large packets { - packet->SetOpcode(SMSG_COMPRESSED_UPDATE_OBJECT); - packet->resize(pSize + sizeof(uint32)); - packet->put(0, pSize); // original size uint32 destsize = pSize; - Compress((uint8*)packet->contents() + sizeof(uint32), &destsize, (uint8*)buf.contents(), pSize); - packet->resize(destsize + sizeof(uint32)); // resize packet to compressed size + 4 + packet->resize( destsize + sizeof(uint32) ); + + packet->put(0, pSize); + Compress(const_cast(packet->contents()) + sizeof(uint32), &destsize, (void*)buf.contents(), pSize); + if (destsize == 0) + return false; + + packet->resize( destsize + sizeof(uint32) ); + packet->SetOpcode( SMSG_COMPRESSED_UPDATE_OBJECT ); } else // send small packets without compression { - packet->SetOpcode(SMSG_UPDATE_OBJECT); - packet->append(buf); + packet->append( buf ); + packet->SetOpcode( SMSG_UPDATE_OBJECT ); } return true; diff --git a/src/game/UpdateData.h b/src/game/UpdateData.h index 8b6cc1692..e31140e7d 100644 --- a/src/game/UpdateData.h +++ b/src/game/UpdateData.h @@ -65,6 +65,6 @@ class UpdateData std::set m_outOfRangeGUIDs; ByteBuffer m_data; - void Compress(uint8* dst, uint32 *dst_size, uint8* src, int src_size); + void Compress(void* dst, uint32 *dst_size, void* src, int src_size); }; #endif