<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39868 >

I have verified that a unit sentried and then moved does not lose focus.
The report accurately describes the problem.

I have not yet found the problem.  Unfortunately, there seem to be several
methods used for every test, and for every action.  I'm going blind trying
to understand the subtle differences (usually, there's no good reason).

The root cause appears to be documented in packhand.c:

   Exception: When the client puts a unit in focus, it's status is set to
   idle immediately, before informing the server about the new status. This
   is because the server can never deny a request for idle, and should not
   be concerned about which unit the client is focusing on.

Unfortunately, this means the client and server fields are unsynchronized,
while elsewhere code always assumes they are the same.  I'm going blind
trying to find these subtle differences, too.

Freeciv-dev mailing list

Reply via email to