--- a/src/Network/Client.cc Tue Jan 13 20:21:28 2009 +0200
+++ b/src/Network/Client.cc Tue Jan 13 21:14:12 2009 +0200
@@ -6,7 +6,6 @@
#include "../Logger.hh"
#include <cassert>
-#include <zlib.h>
NetworkClient::NetworkClient (Engine &engine, GameState &state, const NetworkEndpoint &connect_to) :
engine(engine), state(state), netsession(NETWORK_MAGIC_ID), server(netsession.connect(connect_to)),
@@ -36,16 +35,10 @@
// the terrain byte array
size_t terrain_size = map_w * map_h;
uint8_t terrain_buf[map_w][map_h];
+
+ // read uncompressed terrain data
+ size_t inflate_size = pkt.read_uncompressed(terrain_buf, terrain_size);
- // compressed packet data
- unsigned long inflate_size = terrain_size;
- unsigned long deflate_size = pkt.tell_remaining();
- const uint8_t *deflate_ptr = (const uint8_t *) pkt.read_ptr(deflate_size);
-
- // uncompress the rest of the packet data
- if (uncompress((uint8_t *) terrain_buf, &inflate_size, deflate_ptr, deflate_size) != Z_OK)
- throw Error("uncompress");
-
// invalid data?
if (inflate_size != terrain_size)
throw Error("Corrupt terrain data");