<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39488 >
On 04/08/07, Marko Lindqvist <[EMAIL PROTECTED]> wrote:
> README.graphics is outdated even for S2_1. Attached is update for
> what I figured out reading source code. I don't know that part of the
> code too well, so I just hope this is correct.
First version for trunk.
And yes, some of the updates I made to this patch for trunk version
should be backported to S2_1 patch.
diff -Nurd -X.diff_ignore freeciv/doc/README.graphics freeciv/doc/README.graphics
--- freeciv/doc/README.graphics 2007-08-04 18:36:17.000000000 +0300
+++ freeciv/doc/README.graphics 2007-08-05 00:32:15.000000000 +0300
@@ -69,15 +69,23 @@
Strings (enclosed in "")
- options : A capability string, currently "+tilespec3"
+ options : A capability string, currently "+tilespec4"
name : the name of the tileset
city_names_font : an X font string
city_productions_font : an X font string
main_intro_file : GFX file for the intro graphics
minimap_intro_file : GFX file for the radar screen intro graphics
+ String vectors
+ prefered_themes : List of prefered client themes to use with this
+ priority : when user does not specify tileset, client
+ automatically loads available compatible tileset
+ with highest priority.
normal_tile_width : the width of terrain tiles
normal_tile_height : the height of terrain tiles
small_tile_width : the width of icon sprites
@@ -93,13 +101,11 @@
directions. There are thus 256 road and 256
rail sprites (64 for a hex tileset).
fogstyle : Specifies how fog is drawn.
- 0 : A single fog sprite is drawn on top of all
+ 0 : Code automatically adds fog.
+ 1 : A single fog sprite is drawn on top of all
other sprites for fogged tiles. The
tx.fog sprite is used for this.
- 1 : Each sprite for a fogged tile is drawn fogged.
- The tx.fog sprite may be used for the fog
- drawing (but clipped by the mask of the
- underlying sprite).
+ 2 : No fog, or fog from darkness_style = 4.
darkness_style : Specifies how "encroaching darkness" is drawn.
0 : No darkness.
1 : A single sprite can be split into 4 parts, each
@@ -111,10 +117,15 @@
3 : The sprite is chosen based on the vector sum of
the darkness in all 4 cardinal directions. 15
different sprites are needed.
- flag_offset_x : Gives an offset from the tile origin at which to
- flag_offset_y draw flags behind units and cities. With isometric
- tilesets this should be non-zero so that the flag
- is placed correctly behind the unit/city.
+ 4 : Corner darkness & fog, 81 sprites needed.
+ unit_flag_offset_x : Gives an offset from the tile origin at which to
+ unit_flag_offset_y draw flags behind units or cities. With isometric
+ city_flag_offset_x tilesets this should be non-zero so that the flag
+ city_flag_offset_y is placed correctly behind the unit/city.
+ unit_offset_x : Gives an offset from the tile origin at which to
+ unit_offset_y draw units.
+ citybar_offset_y : Gives an offset from city tile origin at which to
+ draw citybar text.
hex_side : When is_hex is specified (see is_hex, below), this
value gives the length of the "extra" side of the
hexagon. This extra side will be on the top/bottom
@@ -131,6 +142,8 @@
"normal" dimensions of 64x32 with a hex_side of 16
for an iso-hex tileset will give hexagons of size
+ city_names_font_size : Font size used in drawing city name
+ city_production_font_size : Font size used in drawing city production
Booleans (0 or 1)
@@ -139,6 +152,8 @@
is also specified then you have an iso-hex tileset.
Hex tilesets should be used with topologies 8-11 and
iso-hex tilesets with topologies 12-15.
+ is_mountainous : set to 1 for blending hills and mountains together.
+ is_full_citybar : set to 1 to enable citybar.
String lists (a comma-separated list of strings)
@@ -151,64 +166,61 @@
The top-level tilespec file also contains information on how to draw each
-terrain type. For each terrain type include a section "terrain_<terrain>"
-(e.g., "terrain_plains"). This section contains information on how to draw
+terrain type. For each terrain type include a section "tile_<terrain>"
+(e.g., "tile_plains"). This section contains information on how to draw
this terrain type. (The terrain types are specified in the server ruleset
file under the graphc and graphic_alt flags.)
- [terrain_XXX] options
+ [tile_XXX] options
- is_blended : If set, this terrain will be blended with adjacent
- terrains. Blending is done civ2-style with a
- dither mask. Only iso-view currently supports
- blending. Only the base graphic will be blended.
- Blending is drawn on top of the first layer (see
+ is_blended : If non-zero, given layer of this terrain will be
+ blended with adjacent terrains. Blending is done
+ civ2-style with a dither mask. Only iso-view
+ currently supports blending. Only the base graphic
+ will be blended.
The blending mask has sprite t.dither_tile.
+ is_reversed : Draw layers in reverse order.
+ mine_sprite : Mine sprite for this terrain.
num_layers : The number of layers in the terrain. This value
- must be either 1 or 2. Each layer is drawn
+ must be 1, 2 or 3. Each layer is drawn
separately. The layerN options below control the
- drawing of each layer (N should be either 0 or 1).
+ drawing of each layer (N should be 0, 1 or 2)
+ layerN_is_tall : Left right corner of terrain sprites is not based
+ on normal_tile_width and normal_tile_height, but
+ to corner of the full tile.
+ layerN_offset_x : Offset for terrain sprites
layerN_match_type : If 0 or unset, no terrain matching will be done and
the base sprite will be drawn for the terrain. If
non-zero, then terrain matching will be done. A
matched sprite will be chosen that matches all
cardinally adjacent tiles whose terrain has the same
- layerN_match_style : A string telling how matching is to be done for
- this layer.
- "none" : No matching is to be done.
- "bool" : Matching is done based only on whether the
- adjacent tile has the same match type.
- "full" : Matching is done against all possible
- match types of adjacent tiles.
- layerN_cell_type : With traditional tilesets each tile is drawn using
- one sprite. Which sprite to use may be specified
- using a match_type, and there may be multiple layers
- (each having one sprite). This method corresponds
- to cell_type "single". A more sophisticated drawing
- method breaks the tile up into 4 rectangles. Each
- rectangular cell is adjacent to 3 different tiles.
- Each adjacency is matched, giving 8 different sprites
- for each of the 4 cells.
+ layerN_match_with : List of match_types to match against
+ layerN_sprite_type : With traditional tilesets each tile is drawn using
+ one sprite. This default sprite_type is "whole".
+ Which sprite to use may be specified using a
+ match_type, and there may be multiple layers
+ (each having one sprite). This method corresponds
+ to sprite_type "single".
+ A more sophisticated drawing method breaks the tile
+ up into 4 rectangles. Each rectangular cell is
+ adjacent to 3 different tiles. Each adjacency is
+ matched, giving 8 different sprites for each of the
+ 4 cells. This sprite_type is "corner".
Additionally the top-level tilespec file should contain information about
the drawing of each layer. This is needed because the way each layer is
-drawn must be consistent between different terrain types. As an example you
-can mix boolean and no matching but you cannot mix full and boolean matching.
-You may not have more than 2 layers (either in this section or in the
+drawn must be consistent between different terrain types. You may not have
+more than 3 layers (either in this section or in the [tile_XXX] sections).
- match_style : Gives the match style for this layer.
- "none" : no matching
- "bool" : terrains may use "none" or "bool" for
- "full" : terrains may only use "full" matching
match_types : Gives a string list of all different match types.
This list must include every possible match_type
used by terrains for this layer.
+ First letter of the match_type must be unique
+ within layer.
Individual spec files:
Freeciv-dev mailing list