diff -r b81cb670e6b2 -r af75a1894a32 src/proto2/NetworkClient.cc --- 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 + 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) {