[Freeciv-Dev] Re: [RFC] Caching AI values
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Thu, Apr 04, 2002 at 06:01:27PM +0200, Raimar Falke wrote:
> On Thu, Apr 04, 2002 at 09:36:07AM -0600, Mike Kaufman wrote:
> > On Thu, Apr 04, 2002 at 11:58:39AM +0100, Gregory Berkolaiko wrote:
> > > On Wed, 3 Apr 2002, Raimar Falke wrote:
> > >
> > > > On Sat, Mar 23, 2002 at 03:09:07PM +0000, Gregory Berkolaiko wrote:
> > > > >
> > > > > But first a couple of examples:
> > > > > ======================================================================
> > > >
> > > > > Cached value: list of all own refuelling points of the type FUEL_CITY
> > > > > (basically the list of all cities)
> > > >
> > > > IMHO the speed improvement for this is very small if only cities are
> > > > included. The problem are the airbases. To get these you have to
> > > > iterate over the whole map. What about a global airbase list?
> > > > Mantained by set_special and clear_special.
> > >
> > > Yes, this is very good idea.
> > > Still if you have 10 bombers and you consider them one-by-one, it make
> > > sense to build the list only once.
> >
> > no, this isn't a good idea (checking for airports in set/clear_special that
> > is). We should maintain the list where we create and/or destroy airports,
> > otherwise we have to do an airport check the billion other times we use
> > set_special.
>
> So you are against a:
>
> void map_set_special(int x, int y, enum tile_special_type spe)
> {
> MAP_TILE(x, y)->special |= spe;
>
> if (contains_special(spe, S_ROAD) || contains_special(spe, S_RAILROAD)) {
> reset_move_costs(x, y);
> }
> + if (contains_special(spe, S_AIRBASE))
> + add it to the list
> }
>
> ??
>
> You are for (in update_unit_activity):
> if (activity==ACTIVITY_AIRBASE) {
> if (total_activity (punit->x, punit->y, ACTIVITY_AIRBASE)
> >= map_build_airbase_time(punit->x, punit->y)) {
> map_set_special(punit->x, punit->y, S_AIRBASE);
> unit_activity_done = TRUE;
> + add to list
> }
> }
yes, I would rather it be here rather than in set_special. Mainly because
it does the same exact thing, but gets called _a_lot_ less.
>
> > Besides, don't we have to have a list for each player?
>
> You can't own specials.
my bad, I was thinking in the stupid server-ai paradigm where the ai has
access to the entire map. The ai shouldn't add airbases it can't see to
its list. when ai becomes non-cheating, this won't be a problem.
-mike
- [Freeciv-Dev] Re: [RFC] Caching AI values, Raimar Falke, 2002/04/03
- [Freeciv-Dev] Re: [RFC] Caching AI values, Raimar Falke, 2002/04/03
- [Freeciv-Dev] Re: [RFC] Caching AI values, Gregory Berkolaiko, 2002/04/04
- [Freeciv-Dev] Re: [RFC] Caching AI values, Mike Kaufman, 2002/04/04
- [Freeciv-Dev] Re: [RFC] Caching AI values, Raimar Falke, 2002/04/04
- [Freeciv-Dev] Re: [RFC] Caching AI values,
Mike Kaufman <=
- [Freeciv-Dev] Re: [RFC] Caching AI values, Raimar Falke, 2002/04/04
- [Freeciv-Dev] Re: [RFC] Caching AI values, Ross W. Wetmore, 2002/04/05
- [Freeciv-Dev] Re: [RFC] Caching AI values, Raimar Falke, 2002/04/06
|
|