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

> [book - Tue Oct 31 16:54:24 2006]:
> > [emj - Wed Oct 25 10:09:34 2006]:
> > 
> > I think this  is because, I goto an airunit onto a non-city/safe-
> > 
> > 1. Load the included save game
> > 2. Use right mouse button to select all the units in  Genova
> > 3. use Goto to place them somewhere (not in a city)
> > .....Crash
> > 
> > I post this because I would like someone to test this on something
> > other than MacOSX
> > 
> > 
> I reproduced the crash with the posted sav file. This is of course due
> to the much reported issue of goto being broken for air units. Seems
> the mastermind behind the pf code forgot to take into account the
> particular way air units "hop" between refuelling points when 
> distances farther than their number of movement points, and also 
> the "dangerous" tile abstraction for air units (there are no dangerous
> tiles for air units! Just conditions under which the plane may crash;
> this is a function of the movement points/fuel, NOT fixed tiles).
> Anyway I will fix this soon, as it is very irritating.
Alright, after looking over the rather involved 
pf/goto code I have come up with 2 ways to
solve this problem. The goal is to make air
unit gotos just like in 2.0.x, except with the
existing pf code on the client. As it stands,
air goto is fine to "safe" tiles (cities,
airbases, and in the future carriers [this
should be included, as people often use them
as movable water-airbases]), hence if the pf
code was tricked somehow into thinking that the
destination tile is always safe, then the desired
behavior would arise. This is the first way; it
is shorter and more hackish. The second way would
be to complete the TODO part in danger_get_path
(common/aicore/path_finding.c). I think.  It is
not terribly clear what this would accomplish
(nor how to do it).  Or the person/people
that designed the pf system could crawl out of
the shadows and bless us all with the simple,
elegant fix. But that seems unlikely. I'll keep
looking at the problem, perhaps some magic
combination of custom get_EC, pos_is_dangerous,
get_TB, etc., callbacks will fix it. (The docs
in path_finding.h are nice at least, thanks ;)).

Freeciv-dev mailing list

Reply via email to