diff server/unitfunc.c server/unitfunc.c --- server/unitfunc.c Mon Sep 4 18:25:25 2000 +++ server/unitfunc.c Wed Sep 6 11:11:11 2000 @@ -2743,12 +2743,16 @@ remove_unit_sight_points(punit); packet.value = punit->id; - /* FIXME: maybe we should only send to those players who can see the unit, - as the client automatically removes any units in a fogged square, and - the send_unit_info() only sends units who are in non-fogged square. - Leaving for now. */ - lsend_packet_generic_integer(&game.game_connections, PACKET_REMOVE_UNIT, - &packet); + +/* lsend_packet_generic_integer(&game.game_connections, PACKET_REMOVE_UNIT, + &packet); */ + + conn_list_iterate(game.game_connections, pconn) { + if (!pconn->player || + map_get_known_and_seen(punit->x, punit->y, pconn->player->player_no)) { + send_packet_generic_integer(pconn, PACKET_REMOVE_UNIT, &packet); + } + } conn_list_iterate_end; game_remove_unit(punit->id);