[Freeciv-Dev] Re: (PR#10177) Workers has activity, which it can't contin
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
<URL: http://rt.freeciv.org/Ticket/Display.html?id=10177 >
Marko Lindqvist wrote:
> <URL: http://rt.freeciv.org/Ticket/Display.html?id=10177 >
>
> Activity mentioned in that error message always seems to be
> "Irrigation". This is reproducible from stable branch with attached
> autogame.
> I put breakpoint to the line with that freelog() -call.
>
>
> (gdb) print punit->type
> $13 = 2
>
> (gdb) print game->year
> $14 = 1460
>
> (gdb) print tile_has_special(punit->tile, S_IRRIGATION)
> $15 = false
>
> (gdb) print punit->tile->terrain
> $18 = 8
>
> (gdb) print is_water_adjacent_to_tile(punit->tile)
> $19 = false
>
> (gdb) print get_tile_type(punit->tile->terrain)->irrigation_result
> $20 = 8
>
> So we are trying to irrigate tile that is not adjacent to water.
Presumably the adjacent irrigate tile that provided the water has just
been changed to forest.
There is a problem with the current autosettlers. Because any
transformations are now considered we can end up doing some pretty
stupid things. Really this should be pretty simple to avoid; it's
pretty obvious what terrains are better. The problem I think is that
the weights used for calculating the value of the food/shield/trade of
the tile come from the city AI code and are not consistent. I think
this is a case of trying to model too much. It would be better to
assign simple weights like 10/5/4 that can be provided by the experts
(10/5/4 is, more or less, what they recommended for the CMA weights).
Although note with weights like this we will move toward entirely
grassland and plains.
jason
|
|