Summary: Behaviour with "Clear unit orders on selection"
unset is sub-optimal
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sunday 24/01/10 at 21:34
                Category: None
                Severity: 3 - Normal
                Priority: 1 - Later
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None
         Planned Release: 



Reposted from discussion in bug #15041:

The "Clear unit orders on selection" client option is great for not losing
progress towards terrain improvements, fortification bonus, etc. However,
there are a couple of issues with interacting with "busy" units -- that is,
units with orders / doing activities, as opposed to idle units).

1. You can't move a "busy" unit with the cursor keys / number pad -- nothing
happens if you try. This movement restriction seems to be enforced on the
server, not the client -- variously in test_unit_move_to_tile() (silently
discards action) and handle_unit_orders() (discards with error).

I don't know if this is deliberate. I can see a point to such a restriction
-- it stops you accidentally moving the wrong unit and losing e.g. progress
towards a terrain improvement. However, a user can't in general rely on
Freeciv to stop them making irreversible mistakes -- accidentally moving a
unit somewhere silly is in the same category, and can't be caught. So, I
could live without this safety net.

If we want to allow move keys to clear orders, then I think simply calling
clear_unit_orders() from key_unit_move() or thereabouts should do that. I
have a patch lying around which does this; it seems to work.

(With no change to the current code, you can always use [G]oto to achieve the
same effect, as that clears any orders.)

2. You can't straightforwardly clear a "busy" unit's orders / activities and
get it back on the list of available units (the ones that [W] cycles
through). You can focus unit, [SPACE], re-focus unit, [W] rigmarole to clear
a unit's orders/activity and get it back on the available list; but this is a
faff, especially for units in cities.

This may be just a quirk of my playing style; I tend to procrastinate about
what to do with units rather than giving them orders there and then. If it's
just me, then it's probably not worth doing anything about. However, some
thoughts on what could be done, in case anyone else thinks it's a good idea:

Currently we have [W] which will dismiss a busy unit without disturbing it,
and [SPACE] which will clear a busy unit's orders and also remove it from the
list of unit awaiting orders. What we don't have is a key which clears the
unit's orders and puts it on the list of units awaiting orders.

Clearly we need the ability to do the first and third things. I'm not
convinced the second is terribly useful. So, I think we only really need two
keys, and adding yet another key to all the clients would be (a) one more
thing to remember (b) a dreadful faff.

We could change [SPACE] so that for busy units it doesn't dismiss them
entirely (requiring another [SPACE] to do that), or we could swap the
function of [W] and [SPACE] for busy units.


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to