Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2003:
[Freeciv-Dev] Re: (PR#2370) Path finding
Home

[Freeciv-Dev] Re: (PR#2370) Path finding

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: rf13@xxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#2370) Path finding
From: "Gregory Berkolaiko" <Gregory.Berkolaiko@xxxxxxxxxxxx>
Date: Sun, 2 Mar 2003 11:04:51 -0800
Reply-to: rt@xxxxxxxxxxxxxx

On Sun, 2 Mar 2003, Raimar Falke wrote:

> On Thu, Feb 27, 2003 at 01:51:34PM -0800, Gregory Berkolaiko wrote:
> 
> > + *      Ou est la toilette la plus proche?
> 
> I can guess what this means ;) But it would be better to formulate
> this in English.

It's a quote, can't translate :)

> > + * B) the caller doesn't know the coordinates of the goal yet (but knows 
> 
> s/coordinates/map position/ also used on other places.

The reason I used coordinates is because map position is given meaning of 
"position plus path distance and all other info" in our terminology.

> > +  enum direction8 dir_to_next_pos; /* Unsed only in struct_path */
> 
> It should be set to an invalid value otherwise.

For debugging purposes only, otherwise why waste CPU?

> > +/* Iterates the map until it reaches (x, y).  Then fills the info
> > + * about it into pos.  Returns FALSE if position is unreachable.
> > + * Contents of pos in this case is not defined. */
> > +bool pf_get_position(struct pf_map *pf_map, int x, int y,
> > +                struct pf_position *pos);
> 
> We should write that it is a shortcut for 
> 
>   if(!pf_get_path(...)) return FALSE;
>   *pos = pf_last_position(path);

I saw it, I disliked it vehemently and I deleted it.  You can think about
it as a shortcut for whatever.  But don't mislead other people to believe
that we are "saving the shortest path in the internal buffer" or any such
rubbish.

> > +/* Return the full info on the position reached in the last call to 
> > + * pf_next. */
> > +void pf_next_get_position(const struct pf_map *pf_map,
> > +                     struct pf_position *pos);
> 
> Same.
> 
> It looks like you forgot a pf_destroy_path function. I know why I
> prefer static allocation when it is possible.

Yes.  Well spotted.

> INITIAL_PATH_LENGTH is ugly. We should do a loop first to count and
> then allocate.

Mmm.  Can be done, yes.

G.




[Prev in Thread] Current Thread [Next in Thread]