[Freeciv-Dev] Re: [RFC] square_dxy_iterate
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Dear diary, on Sat, Feb 23, 2002 at 10:24:49PM CET, I got a letter,
where Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx> told me, that...
> Index: ai/aiunit.c
> ===================================================================
> RCS file: /home/freeciv/CVS/freeciv/ai/aiunit.c,v
> retrieving revision 1.177
> diff -u -r1.177 aiunit.c
> --- ai/aiunit.c 2002/02/23 16:38:10 1.177
> +++ ai/aiunit.c 2002/02/23 21:21:42
> @@ -601,17 +601,37 @@
> return(val);
> }
>
> -static void invasion_funct(struct unit *punit, bool dest, int n, int which)
> -{
> +/*************************************************************************
> + Mark an invasion threat of punit in the surrounding cities. The
> + given radius limites the area which is searched for cities. The
> + center of the area is either the unit itself (dest == FALSE) or the
> + destiniation of the current goto (dest == TRUE). The invasion threat
> + is marked in pcity->ai.invasion via ORing the "which" argument (to
> + tell attack from sea apart from ground unit attacks). Note that
> + "which" should only have one bit set.
<nitpick>why is the description indentet by 2 spaces? ;))</nitpick>
> +**************************************************************************/
> +static void invasion_funct(struct unit *punit, bool dest, int radius,
> + int which)
> +{
> int x, y;
> - if (dest) { x = punit->goto_dest_x; y = punit->goto_dest_y; }
> - else { x = punit->x; y = punit->y; }
> + bool want_attack = (dest || punit->activity != ACTIVITY_GOTO);
>
> - square_iterate(x, y, n, i, j) {
> - struct city *pcity = map_get_city(i, j);
> - if (pcity && pcity->owner != punit->owner)
> - if (dest || punit->activity != ACTIVITY_GOTO || !has_defense(pcity))
> - pcity->ai.invasion |= which;
> + if (dest) {
> + x = punit->goto_dest_x;
> + y = punit->goto_dest_y;
> + } else {
> + x = punit->x;
> + y = punit->y;
> + }
> +
> + square_iterate(x, y, radius, x1, y1) {
> + struct city *pcity = map_get_city(x1, y1);
> +
> + if (pcity && pcity->owner != punit->owner
> + && (pcity->ai.invasion & which) != which
> + && (want_attack || !has_defense(pcity))) {
> + pcity->ai.invasion |= which;
> + }
> } square_iterate_end;
> }
>
No other objections, the patch is ok for me now.
--
Petr "Pasky" Baudis
* elinks maintainer * IPv6 guy (XS26 co-coordinator)
* IRCnet operator * FreeCiv AI hacker
.
No one can feel as helpless as the owner of a sick goldfish.
.
Public PGP key && geekcode && homepage: http://pasky.ji.cz/~pasky/
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, (continued)
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/22
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Gregory Berkolaiko, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Gregory Berkolaiko, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Gregory Berkolaiko, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Gregory Berkolaiko, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Petr Baudis, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate,
Petr Baudis <=
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Jason Short, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Jason Short, 2002/02/23
- [Freeciv-Dev] Re: [RFC] square_dxy_iterate, Raimar Falke, 2002/02/23
|
|