src/proto2/NetworkClient.cc
changeset 25 af75a1894a32
parent 24 b81cb670e6b2
child 26 5685602aeb9c
--- a/src/proto2/NetworkClient.cc	Sun Nov 09 20:40:46 2008 +0000
+++ b/src/proto2/NetworkClient.cc	Sun Nov 09 21:51:13 2008 +0000
@@ -3,6 +3,8 @@
 #include "Engine.hh"
 #include "Logger.hh"
 
+#include <cassert>
+
 NetworkClient::NetworkClient (GameState &state, const CL_IPAddress &connect_to) : 
     NetworkCore(state), server(netsession.connect(connect_to)) {
     
@@ -99,12 +101,16 @@
     slots.connect(obj.sig_received_message(NETMSG_PLAYER_POSITION), this, &NetworkClientLocalPlayer::on_position);
 }
         
-void NetworkClientLocalPlayer::move (PositionDelta d) {
+bool NetworkClientLocalPlayer::move (PositionDelta d) {
+    // always send move, in all cases
     CL_NetPacket pkt;
-    pkt.output.write_uint32(d.dx);
-    pkt.output.write_uint32(d.dy);
+    pkt.output.write_int32(d.dx);
+    pkt.output.write_int32(d.dy);
 
     obj.send(NETMSG_CLIENT_MOVE, pkt, false);
+
+    // return validity
+    return LocalPlayer::move(d);
 }
         
 void NetworkClientLocalPlayer::on_position (CL_NetPacket &pkt) {
@@ -134,7 +140,7 @@
 
     Engine::log(INFO, "client_player.on_position") << "obj=" << obj << ", pos=" << pos;
     
-    updatePosition(pos);
+    assert(updatePosition(pos));
 }
 
 void NetworkClientRemotePlayer::on_quit (CL_NetPacket &pkt) {