Freeciv
m (Added articles)
Tag: sourceedit
Line 44: Line 44:
   
 
===Full height in non-iso Hex tilesets===
 
===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 <i>3 * normal_tile_height / 2</i>. If you had origin of the sprites set to match old code, you should now remove <i>1/2 * normal tile height</i> pixels from the top of them to make their height match normal tile height. Remember also change grid <i>dy</i> value to match in .spec file. For example hex2t 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.
+
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 <i>3 * normal_tile_height / 2</i>. If you had origin of the sprites set to match old code, you should now remove <i>1/2 * normal tile height</i> pixels from the top of them to make their height match normal tile height. Remember also to change grid <i>dy</i> value to match in .spec file. For example hex2t 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===
Line 59: Line 59:
   
 
===Adding mine_sprite for all terrain types===
 
===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
+
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 don't. 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.
thus lacking some '''mine_sprite''' entries.
 
   
 
==The ''.spec'' files==
 
==The ''.spec'' files==

Revision as of 11:02, 14 March 2015

To update a tileset from 2.4 to 2.5 you must add some new graphics and update the file format strings.

The .tilespec file

  • Set format of .tilespec file to options = "+Freeciv-2.5-tilespec".

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.maglev", "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 hex has 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 to change grid dy value to match in .spec file. For example hex2t 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

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 don't. 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.

The .spec files

  • Set format of all .spec files to options = "+Freeciv-2.5-spec".

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.

Unit convert activity icon

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

Unit activity icons for roads (optional)

With the generalisation of roads in the ruleset, you may want to add more unit activity icons. The supplied rulesets will work with no tileset changes (they'll continue to use "unit.road"), but will take advantage of distinct "unit.rail" and (optionally, for the 'experimental' ruleset) "unit.maglev".

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_"

Inaccessible terrain

The supplied rulesets have a new terrain type 'Inaccessible', which no units can enter; this is for scenario authors to use to define a non-rectangular map shape (see the France scenario for an example). Tilesets should probably include graphics for this (if not supplied, Glacier graphics will be used).

Maglev

The experimental ruleset has a new road type 'Maglev'. Any tileset that's meant to be used with experimental ruleset should include graphics for it.

Template:UpdateNavbox