p_cloakphase is not sent to the client.

p_cloakphase begins at zero, and when the PFCLOAK flag is set, on every
second (CLOAKFUSE) update in the daemon p_cloakphase is incremented,
until it reaches 6.  From that time onwards until PFCLOAK is cleared,
the ntserv sends a hidden or repeated position for the cloaker.

The clients COW on Linux, and Netrek XP 2006, both use the packet update
rate to derive their own p_cloakphase.  They make the ships disappear
from the tactical at a p_cloakphase value of 6.

The original logic was built for 5 updates per second.

The result is that at 10 updates per second, ships are lost from the
tactical in half the time that they are normally.  In the remaining
time, position is sent accurately, but the client does not draw them.

Here is an explanation in terms of a graph, assuming monospaced font:

frames at 10fps      .....................................
cloak request           c                   c
p_flags & PFCLOAK    0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
p_cloakphase         0 0 1 2 3 4 5 6 6 6 6 6 5 4 3 2 1 0 0
position hidden      0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0

COW @ 10 updates     vvvvccccciiiiiiiiiiiiiicccccvvvvvvvvv
COW @  5 updates     vvvvcccccccccciiiiiiiiiccccccccccvvvv

v = visible
c = cloaking icon drawn over ship
i = invisible

Proposal: convey another flag to the client to represent visibility,
separate to the flag that indicates cloaking (PFCLOAK).

-- 
James Cameron    mailto:quozl at us.netrek.org     http://quozl.netrek.org/