<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39436 >

As discovered in PR#39386, PR#39388, and PR#39389, tile blending had
diverged between 2.1 and trunk.

In 2.1, is_blended = [0|1] indicates whether there is blending on a
tile.  This doesn't actually work.  A 0 tile next to an 1 tile displays
bleed from the blended tile.

In trunk, a per tileset blend_layer = # indicates the layer blended
(actually, the layer *before* blending); -1 indicates no blending.

Instead, the global blend_layer should be moved into each tile.

For example, mountains' base (layer0_blend = "land") would be laid in
layer 0, and blended before laying layer 1.  It would use ocean's blend
base (as currently done).  However, it would not blend into other tiles.
That is, it should be done per tile only.

Instead, ocean/water would be layer1_blend = "land", and blended with
match_type = "land" layers.  This would be done per tile, allowing the
newly laid beaches to have the blend, but not blending from other water.

Of course, the only tileset without blending (trident) would not be
affected, and would not have any of these items.

Also, for clarity, replace the vestigial t.ocean0 with t.blend.ocean.
There's no good reason for "faking" a base for water, and conflicts
with the goals of PR#39387.

Freeciv-dev mailing list

Reply via email to