diff options
| author | Rat <gmstreetrat@gmail.com> | 2011-11-27 17:04:01 +0100 |
|---|---|---|
| committer | Rat <gmstreetrat@gmail.com> | 2011-11-27 17:04:01 +0100 |
| commit | 5be5eae64fa801b6eedbc993d99ba3af61c273e9 (patch) | |
| tree | ff2779f6e183c88ffdc704975683fdc6e713a221 /src/server/game/Entities/Object | |
| parent | 07740f84b53a54f5e6224c12d5521579a180151c (diff) | |
Core/Packets: updated WorldPacket compressor
Diffstat (limited to 'src/server/game/Entities/Object')
| -rwxr-xr-x | src/server/game/Entities/Object/Updates/UpdateData.cpp | 60 | ||||
| -rwxr-xr-x | src/server/game/Entities/Object/Updates/UpdateData.h | 2 |
2 files changed, 2 insertions, 60 deletions
diff --git a/src/server/game/Entities/Object/Updates/UpdateData.cpp b/src/server/game/Entities/Object/Updates/UpdateData.cpp index 7ad98418c7b..a2aba642048 100755 --- a/src/server/game/Entities/Object/Updates/UpdateData.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateData.cpp @@ -45,62 +45,6 @@ void UpdateData::AddUpdateBlock(const ByteBuffer &block) ++m_blockCount; } -void UpdateData::Compress(void* dst, uint32 *dst_size, void* src, int src_size) -{ - z_stream c_stream; - - c_stream.zalloc = (alloc_func)0; - c_stream.zfree = (free_func)0; - c_stream.opaque = (voidpf)0; - - // default Z_BEST_SPEED (1) - int z_res = deflateInit(&c_stream, sWorld->getIntConfig(CONFIG_COMPRESSION)); - if (z_res != Z_OK) - { - sLog->outError("Can't compress update packet (zlib: deflateInit) Error code: %i (%s)", z_res, zError(z_res)); - *dst_size = 0; - return; - } - - c_stream.next_out = (Bytef*)dst; - c_stream.avail_out = *dst_size; - c_stream.next_in = (Bytef*)src; - c_stream.avail_in = (uInt)src_size; - - z_res = deflate(&c_stream, Z_NO_FLUSH); - if (z_res != Z_OK) - { - sLog->outError("Can't compress update packet (zlib: deflate) Error code: %i (%s)", z_res, zError(z_res)); - *dst_size = 0; - return; - } - - if (c_stream.avail_in != 0) - { - sLog->outError("Can't compress update packet (zlib: deflate not greedy)"); - *dst_size = 0; - return; - } - - z_res = deflate(&c_stream, Z_FINISH); - if (z_res != Z_STREAM_END) - { - sLog->outError("Can't compress update packet (zlib: deflate should report Z_STREAM_END instead %i (%s)", z_res, zError(z_res)); - *dst_size = 0; - return; - } - - z_res = deflateEnd(&c_stream); - if (z_res != Z_OK) - { - sLog->outError("Can't compress update packet (zlib: deflateEnd) Error code: %i (%s)", z_res, zError(z_res)); - *dst_size = 0; - return; - } - - *dst_size = c_stream.total_out; -} - bool UpdateData::BuildPacket(WorldPacket* packet) { ASSERT(packet->empty()); // shouldn't happen @@ -122,8 +66,8 @@ bool UpdateData::BuildPacket(WorldPacket* packet) packet->append(m_data); - //if (packet->wpos() > 100) - // compress meee!! + if (packet->wpos() > 100) + packet->Compress(SMSG_COMPRESSED_UPDATE_OBJECT); return true; } diff --git a/src/server/game/Entities/Object/Updates/UpdateData.h b/src/server/game/Entities/Object/Updates/UpdateData.h index 526a31f206f..653bf411f26 100755 --- a/src/server/game/Entities/Object/Updates/UpdateData.h +++ b/src/server/game/Entities/Object/Updates/UpdateData.h @@ -68,8 +68,6 @@ class UpdateData uint32 m_blockCount; std::set<uint64> m_outOfRangeGUIDs; ByteBuffer m_data; - - void Compress(void* dst, uint32 *dst_size, void* src, int src_size); }; #endif |
