I think this probably deserves its own thread. It contains a usable fix for Ancients tileset.
Every MP tileset except ancients is loading in Qt 2.5.4. Perhaps your tileset is set to ancients, and that is why it is crashing as soon as built-in server starts?
In 2.6-r33044 it's also the top option in 2.6 overhead, and when set to overhead it's crashing. Oh, even better, the ancients RULESET does this too! (Though that is likely because it chooses the tileset automatically). Other 2.6 MP tilesets appear to all be working fine.
Worse, it crashes without creating a report or giving an error. I've only seen it do this before when it is trying to load a tilespec with a spec file that doesn't exist.
The different intro file setting isn't the cause, either (Or if it is, not the only one).
Lacking the trident/earth.spec reference isn't the reason either.
Missing a darkness_layer entry isn't it either, it seems.
Ultimately, I fixed them by backporting trident stuff to ensure compatability, leaving only the name/version info, intro image, and units.spec reference as what ancients had. (Those appear to be the only intended differences) Any issues appear to have arisen from (outdated) dependency upon trident files or lacking default references needed for compatability(such as railroads).
ancients.tilespec 2.5 fix
Code: Select all
[tilespec]
; Format and options of this tilespec file:
options = "+Freeciv-2.5-tilespec"
; A simple name for the tileset specified by this file:
name = "Ancients"
priority = 5
; TODO: add more overall information fields on tiles,
; eg, description, authors, colors, etc.
; Basic tile sizes:
normal_tile_width = 30
normal_tile_height = 30
small_tile_width = 15
small_tile_height = 20
; Basic tile style.
type = "overview"
is_hex = FALSE
; Was fogstyle 0 (old iso style)
fogstyle = 2
; Was darkness style 3 (15 sprites)
darkness_style = 4
; Which terrain layer darkness is drawn top of (0-2)
darkness_layer = 0
; offset the flags by this amount when drawing units
unit_flag_offset_x = 0
unit_flag_offset_y = 0
city_flag_offset_x = 0
city_flag_offset_y = 0
; offset the units by this amount when drawing units
unit_offset_x = 0
unit_offset_y = 0
; offset the city bar text by this amount (from the city tile origin)
citybar_offset_y = 27
; offset the tile label text by this amount
tilelabel_offset_y = 10
; Font size (points) to use to draw city names and productions:
city_names_font_size = 10
city_productions_font_size = 10
; These are special because they get freed and reloaded
; as required:
main_intro_file = "ancients/intro"
minimap_intro_file = "misc/radar"
; Below, the graphics spec files; must be somewhere (anywhere) in
; the data path. Order may be important for color allocation on
; low-color systems, and if there are any duplicate tags (lattermost
; tag is used).
files =
"misc/overlays.spec",
"misc/citybar.spec",
"trident/tiles.spec",
"trident/earth.spec",
"misc/small.spec",
"misc/governments.spec",
"misc/specialists.spec",
"ancients/units.spec",
"trident/select.spec",
"misc/flags.spec",
"misc/shields.spec",
"misc/cursors.spec",
"trident/grid.spec",
"trident/roads.spec",
"misc/buildings.spec",
"misc/space.spec",
"misc/techs.spec",
"misc/treaty.spec",
"misc/icons.spec",
"misc/editor.spec",
"trident/fog.spec",
"trident/cities.spec",
"trident/explosions.spec"
; Include color definitions
*include "misc/colors.tilespec"
; Terrain info - see README.graphics
[layer0]
match_types = "desert", "forest", "grassland", "hills", "jungle", "mountains", "water", "plains", "swamp", "tundra"
[layer1]
match_types = "water", "land"
[layer2]
match_types = "water", "arctic"
; Water graphics referenced by terrain.ruleset
;
[tile_coast]
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
mine_sprite = "tx.oil_mine"
[tile_floor]
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
mine_sprite = "tx.oil_mine"
[tile_lake]
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
mine_sprite = "tx.oil_mine"
[tile_inaccessible]
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
mine_sprite = "tx.oil_mine"
; Land graphics referenced by terrain.ruleset
;
[tile_arctic]
blend_layer = 0
num_layers = 3
layer0_match_type = "tundra"
layer0_match_with = "tundra"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "arctic"
mine_sprite = "tx.oil_mine"
[tile_desert]
blend_layer = 0
num_layers = 3
layer0_match_type = "desert"
layer0_match_with = "desert"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.oil_mine"
[tile_forest]
blend_layer = 0
num_layers = 3
layer0_match_type = "forest"
layer0_match_with = "forest"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_grassland]
blend_layer = 0
num_layers = 3
layer0_match_type = "grassland"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_hills]
blend_layer = 0
num_layers = 3
layer0_match_type = "hills"
layer0_match_with = "hills"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_jungle]
blend_layer = 0
num_layers = 3
layer0_match_type = "jungle"
layer0_match_with = "jungle"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_mountains]
blend_layer = 0
num_layers = 3
layer0_match_type = "mountains"
layer0_match_with = "mountains"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_plains]
blend_layer = 0
num_layers = 3
layer0_match_type = "plains"
layer0_match_with = "plains"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_swamp]
blend_layer = 0
num_layers = 3
layer0_match_type = "swamp"
layer0_match_with = "swamp"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.mine"
[tile_tundra]
blend_layer = 0
num_layers = 3
layer0_match_type = "tundra"
layer0_match_with = "tundra"
layer1_match_type = "land"
layer2_match_type = "water"
mine_sprite = "tx.oil_mine"
[roads]
styles =
{ "name", "style"
"road.road", "ParityCombined"
"road.rail", "ParityCombined"
"road.maglev", "ParityCombined"
"road.river", "River"
}
Code: Select all
[tilespec]
; Format and options of this tilespec file:
options = "+Freeciv-2.6-tilespec"
; A simple name for the tileset specified by this file:
name = "Ancients"
priority = 5
; Version numbering so that until freeciv version a.b has stable format,
; version here is some a.b-pre, a.b-dev, or a.b-alpha. The first version
; with the stable format is a.b-0, then a.b-1...
version = "2.6-0"
; Summary and full description of the tileset.
summary = _("Tileset to be used with Ancients ruleset.")
;description = ""
; TODO: add more overall information fields on tiles,
; eg, authors, colors, etc.
; Basic tile sizes:
normal_tile_width = 30
normal_tile_height = 30
small_tile_width = 15
small_tile_height = 20
; Basic tile style.
type = "overhead"
is_hex = FALSE
; Was old iso style
fog_style = "Darkness"
; Was darkness style "CardinalFull" (15 sprites)
darkness_style = "Corner"
; Which terrain layer darkness is drawn top of (0-2)
darkness_layer = 0
; offset the flags by this amount when drawing units
unit_flag_offset_x = 0
unit_flag_offset_y = 0
city_flag_offset_x = 0
city_flag_offset_y = 0
; offset the city occupied sprite by this amount
occupied_offset_x = 0
occupied_offset_y = 0
; offset the units by this amount
unit_offset_x = 0
unit_offset_y = 0
; offset of the normal activity icons
activity_offset_x = 0
activity_offset_y = 0
; offset the cities by this amount
city_offset_x = 0
city_offset_y = 0
; offset the citybar text by this amount (from the city tile origin)
citybar_offset_y = 27
; offset the tile label text by this amount
tilelabel_offset_y = 10
; offset the upkeep icons by this amount from the top of the unit itself.
; The default is the normal tile height, which means that the upkeep icons
; appear below the unit icon if the unit icons are equal to tile height
; (typical in overhead tileset), or overlay lower part of the unit icon,
; if unit icon is higher than tiles (typical in iso tilesets)
;unit_upkeep_offset_y = 0
; Like unit_upkeep_offset_y, but to be used in case there`s only small
; space for the overall icon produced. Defaults to unit_upkeep_offset_y -
; not having alternative layout.
; Set it to overlay lower part of the unit icon instead of taking extra
; space below.
unit_upkeep_small_offset_y = 20
; Font size (points) to use to draw city names and productions:
city_names_font_size = 10
city_productions_font_size = 10
; These are special because they get freed and reloaded
; as required:
main_intro_file = "ancients/intro"
minimap_intro_file = "misc/radar"
; Below, the graphics spec files; must be somewhere (anywhere) in
; the data path. Order may be important for color allocation on
; low-color systems, and if there are any duplicate tags (lattermost
; tag is used).
files =
"misc/overlays.spec",
"misc/citybar.spec",
"trident/tiles.spec",
"trident/earth.spec",
"misc/small.spec",
"misc/events.spec",
"misc/governments.spec",
"misc/specialists.spec",
"ancients/units.spec",
"trident/select.spec",
"misc/flags.spec",
"misc/shields.spec",
"misc/cursors.spec",
"trident/grid.spec",
"trident/roads.spec",
"misc/buildings.spec",
"misc/space.spec",
"misc/techs.spec",
"misc/treaty.spec",
"misc/icons.spec",
"misc/editor.spec",
"trident/fog.spec",
"trident/cities.spec",
"trident/explosions.spec"
; Include color definitions
*include "misc/colors.tilespec"
; Terrain info - see README.graphics
[layer0]
match_types = "desert", "forest", "grassland", "hills", "jungle", "mountains", "water", "plains", "swamp", "tundra"
[layer1]
match_types = "water", "land"
[layer2]
match_types = "water", "arctic"
; Water graphics referenced by terrain.ruleset
;
[tile_coast]
tag = "coast"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
[tile_floor]
tag = "floor"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
[tile_lake]
tag = "lake"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
[tile_inaccessible]
tag = "inaccessible"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
; Land graphics referenced by terrain.ruleset
;
[tile_arctic]
tag = "arctic"
blend_layer = 0
num_layers = 3
layer0_match_type = "tundra"
layer0_match_with = "tundra"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "arctic"
[tile_desert]
tag = "desert"
blend_layer = 0
num_layers = 3
layer0_match_type = "desert"
layer0_match_with = "desert"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_forest]
tag = "forest"
blend_layer = 0
num_layers = 3
layer0_match_type = "forest"
layer0_match_with = "forest"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_grassland]
tag = "grassland"
blend_layer = 0
num_layers = 3
layer0_match_type = "grassland"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_hills]
tag = "hills"
blend_layer = 0
num_layers = 3
layer0_match_type = "hills"
layer0_match_with = "hills"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_jungle]
tag = "jungle"
blend_layer = 0
num_layers = 3
layer0_match_type = "jungle"
layer0_match_with = "jungle"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_mountains]
tag = "mountains"
blend_layer = 0
num_layers = 3
layer0_match_type = "mountains"
layer0_match_with = "mountains"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_plains]
tag = "plains"
blend_layer = 0
num_layers = 3
layer0_match_type = "plains"
layer0_match_with = "plains"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_swamp]
tag = "swamp"
blend_layer = 0
num_layers = 3
layer0_match_type = "swamp"
layer0_match_with = "swamp"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_tundra]
tag = "tundra"
blend_layer = 0
num_layers = 3
layer0_match_type = "tundra"
layer0_match_with = "tundra"
layer1_match_type = "land"
layer2_match_type = "water"
[extras]
styles =
{ "name", "style"
"road.road", "RoadParityCombined"
"road.rail", "RoadParityCombined"
"road.maglev", "RoadParityCombined"
"road.river", "River"
"tx.irrigation", "Cardinals"
"tx.farmland", "Cardinals"
"tx.mine", "Single1"
"tx.oil_mine", "Single1"
"tx.pollution", "Single2"
"tx.fallout", "Single2"
"tx.village", "Single1"
"base.outpost", "3Layer"
"base.fortress", "3Layer"
"base.airstrip", "3Layer"
"base.airbase", "3Layer"
"base.ruins", "3Layer"
}