--- a/src/Network/Server.cc Tue Jan 13 20:21:28 2009 +0200
+++ b/src/Network/Server.cc Tue Jan 13 21:14:12 2009 +0200
@@ -6,7 +6,6 @@
#include "../Logger.hh"
#include <cassert>
-#include <zlib.h>
NetworkServer::NetworkServer (GameState &state, const NetworkEndpoint &listen_addr) :
state(state), netsession(NETWORK_MAGIC_ID), controller(netsession, NETCHAN_CORE) {
@@ -250,19 +249,16 @@
}
}
- // compress the terrain buffer
- unsigned long deflate_size = compressBound(terrain_size);
- uint8_t deflate_buf[deflate_size];
-
- // and compress
- if (compress(deflate_buf, &deflate_size, (const uint8_t *) terrain_buf, terrain_size) != Z_OK)
- throw Error("compress failed");
-
// allocate our packet...
BigNetworkPacket pkt (
- NETWORK_SESSION_HEADER_SIZE // NetworkChannel header
- + 3 * sizeof(uint32_t) // our own header
- + deflate_size // compressed terrain buffer
+ // NetworkChannel header
+ NETWORK_SESSION_HEADER_SIZE
+
+ // our own header
+ + 2 * sizeof(uint32_t)
+
+ // compressed terrain buffer
+ + NetworkPacketOutput::write_compressed_size(terrain_size)
);
// write netsession header
@@ -272,8 +268,8 @@
pkt.write_uint32(map.x);
pkt.write_uint32(map.y);
- // write compressed data
- pkt.write(deflate_buf, deflate_size);
+ // write compressed terrain data
+ pkt.write_compressed(terrain_buf, terrain_size);
// send
node->send_raw(pkt, true);