On Thu, 18 May 2006, Jimmy Huang wrote:
> > > This is the correct fix:
> > >
> > > -   if(!(pl->pl_flags & PLAGRI) || me->p_armies >=
> > > 5){
> > > +   if(!tpl || !(tpl->pl_flags & PLAGRI) ||
> > > me->p_armies < 5){
>
> Hi. Although logically that is correct. It is real
> tough to figure out what that if statement means!
>
> I split it apart and re-wrote it in the attached
> patch. Hopefully you like it.

It would be better if you just added a comment to what the if statement means,
rather than add in more code and extra variables.  Something like:

/* Skip check for neut planets if we found an enemy agri to take and have
   enough armies. */

You can also change the logic to:

if(!tpl || !( tpl->pl_flags&PLAGRI && me->p_armies >= 5 ) ) {


     * robotd/update_players.c changed closest_planet() function to return
       the old closest_planet if it cannot find a closest planet.

This is not what my fix to the bug in closest_planet is about at all.
Hadley's fuction had a bug where it would usually not find a closest planet
every other update.

     * robotd/update_players.c:  The function closest_planet() would
       usually return NULL every other time it was called.  It checks
       the distance to opl, the previous closest planet, and if the
       player is very close it doesn't bother searching.  If the
       player isn't very close, it would search for a planet _closer_
       than opl.  If opl was still the closest, it won't find a closer
       planet, but instead of returning opl, it would return NULL.