Freeciv
Advertisement

To update a tileset from 2.4 to 2.4.99 (will be 2.5 in the future) you must add some new graphics and update the file format strings. Currently these instructions go up to compatibility with freeciv S2_5 revision 24332.

The .tilespec file

  • Set tilespec format of every file to options = "+Freeciv-tilespec-Devel-YYYY.MMM.DD" during development. For freeciv 2.5 options = "+Freeciv-2.5-tilespec" should be used.

Use 'TRUE' and 'FALSE' instead of '0' and '1' for booleans

Here the list of affected settings:

[tilespec]
is_hex

[tile_XXX]
is_reversed
layerYYY_is_tall

'is_blended' renamed to 'blend_layer'

Change all is_blended = 1 type definitions to blend_layer = 1. (It was renamed to make it clearer that it's not a boolean option -- it specifies a layer number -- but there's no change in the meaning.)

Roadstyle

  • The single roadstyle definition affecting all roads has been replaced by per-road-tag definitions. Remove old roadstyle = x setting and add section like this instead
[roads]
styles =
    { "name",  "style"
      "road",  "AllSeparate"
      "rail",  "AllSeparate"
      "river", "River"
    }

where "name" refers to road gfx tag. Old numeric style values have been replaced with textual values: 0 -> "AllSeparate", 1 -> "ParityCombined", 2 -> "AllCombined"

Tileset type

Old boolean setting is_isometric has been replaced with generic type setting. For tilesets that had is_isometric true:

type = "isometric"

For tilesets that had is_isometric false:

type = "overview"

Full height in non-iso Hex tilesets

Non-iso Hex tilesets had excessively high Full height meaning that origin of some sprites was far above the tile's top and thus tilesets needed a lot of transparent padding on top part of those sprites. Now Full height in non-iso Hex tilesets is same as Normal height defined in .tilespec. The old formula was 3 * normal_tile_height / 2. If you had origin of the sprites set to match old code, you should now remove 1/2 * normal tile height pixels from the top of them to make their height match normal tile height. Remember also change grid dy value to match in .spec file. For example hext2 tileset with normal_tile_height defined as 72 in the tilespec needed 36 pixels cut from the affected sprites that earlier were 108. Sprites affected are cities and all the smaller icons such as hitpoint bars, unit activity icons, city size indicators. Units and terrains are not.

Default government icons

Default government icons have been moved from misc/small.spec to misc/governments.spec. If your tileset has been relying on misc/small.spec providing those, you should now add misc/governments.spec to files list.

Default specialist icons

Default specialist icons have been moved from misc/small.spec to misc/specialists.spec. If your tileset has been relying on misc/specialists.spec providing those, you should now add misc/specialists.spec to files list.

The .spec files

Removing Rivers as terrain type cruft

Rivers as terrain, not special, like in civ1 has not been supported for a very long time, but our tilesets still contained related obsolete cruft. We've cleaned that from supplied tilesets now. You may want to do the same for your tileset if you have inherited it from the supplied ones. Tags beginning with "t.t_river" are the river as terrain ones.

More upkeep sprites (optional)

You can add sprites showing more than 2 upkeep for unit display in the city dialog, although if you don't change anything it'll work as before. Specify "upkeep.gold3", "upkeep.gold4" and so on potentially up to "upkeep.gold10" (and similar for "food", "unhappy" etc). Any unspecified steps use the previous sprite, and upkeep beyond 10 uses the last specified sprite.

Advertisement