diff --git a/src/d_enet.c b/src/d_enet.c index 736262e16e5b50cb717a8cfa43c8097038f32d53..f6656dabe0260722a7c05d5d224dc419e522ef3c 100644 --- a/src/d_enet.c +++ b/src/d_enet.c @@ -676,12 +676,15 @@ static void Net_SendMove(void) { ENetPacket *packet; UINT8 *buf = net_buffer; + boolean reliable = false; if (!netgame || server || !addedtogame || !players[consoleplayer].mo) return; // only update once a second unless buttons changed. - if (lastMove+TICRATE < I_GetTime() && !memcmp(&lastCmd, &players[consoleplayer].cmd, sizeof(ticcmd_t))) + if (memcmp(&lastCmd, &players[consoleplayer].cmd, sizeof(ticcmd_t))) + reliable = true; + if (lastMove+TICRATE < I_GetTime() && !reliable) return; lastMove = I_GetTime(); G_CopyTiccmd(&lastCmd, &players[consoleplayer].cmd, 1); @@ -696,7 +699,7 @@ static void Net_SendMove(void) WRITEFIXED(buf, players[consoleplayer].mo->y); WRITEFIXED(buf, players[consoleplayer].mo->z); - packet = enet_packet_create(net_buffer, buf-net_buffer, 0); + packet = enet_packet_create(net_buffer, buf-net_buffer, reliable ? ENET_PACKET_FLAG_RELIABLE : 0); enet_peer_send(nodetopeer[servernode], CHANNEL_MOVE, packet); }