Freeciv
(Reversed hex & isohex)
(Mine_sprite for all terrains)
Line 69: Line 69:
 
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.
 
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.
 
Tags beginning with "t.t_river" are the river as terrain ones.
  +
  +
===Adding mine_sprite for all terrain types===
  +
Supplied tilesets now define '''mine_sprite''' for all [tile] -sections referring to land terrains, to be compatible with custom rulesets that enable mines on terrains where supplied rulesets dont. You may want to do the same for your tileset if you have inherited it from the supplied ones, and is
  +
thus lacking some '''mine_sprite''' entries.
   
 
===More upkeep sprites (optional)===
 
===More upkeep sprites (optional)===

Revision as of 02:30, 12 February 2014

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 24438.

The .tilespec file

  • Set format of .tilespec 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.road",  "AllSeparate"
      "road.rail",  "AllSeparate"
      "road.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. At the same time meaning of iso in conjunction with hexhas been reversed.

For square tilesets that had is_isometric true, or hex tilesets that had it false:

type = "isometric"

For square tilesets that had is_isometric false, or hex tilesets that had it true:

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.

Darkness layer

Tileset should now define with which terrain layer darkness is being drawn, on top of the regular parts of that layer. darkness_layer can have value from 0 to 2. Old hardcoded behavior was to have it on layer 0.

; Which terrain layer darkness is drawn top of (0-2)
darkness_layer = 0

The .spec files

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

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.

Adding mine_sprite for all terrain types

Supplied tilesets now define mine_sprite for all [tile] -sections referring to land terrains, to be compatible with custom rulesets that enable mines on terrains where supplied rulesets dont. You may want to do the same for your tileset if you have inherited it from the supplied ones, and is thus lacking some mine_sprite entries.

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.

Unit convert activity icon

New unit activity icon for unit converting itself to another is required. Tag for the activity is "unit.convert"

Road and River tags

Roads and Rivers no longer have hardcoded tags, but they depend on ruleset. Below, <ruleset_tag> means tag part defined in the ruleset. Supplied rulesets use tags "road.road", "road.rail", "road.maglev" for road types, and "road.river" for River.

  • Tags previously starting with "tx.s_river_" should now start with "<ruleset_tag>_s_"
  • Tags previously starting with "tx.river_outlet_" should now start with "<ruleset_tag>_outlet_"
  • Tags previously starting with "r.road_" or "r.rail_" should now start with "<ruleset_tag>_"
  • Tags previously starting with "r.c_road_" or "r.c_rail_" should now start with "<ruleset_tag>_c_"
  • Tags previously starting with "r.d_road_" or "r.d_rail_" should now start with "<ruleset_tag>_d_"