--- 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) {