<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40767 >
2009/4/14 <>:
>
>> Also the terrain.ruleset files in the civ1 and civ2 ruleset
>> directories need to be updated. I'll test it with recent
>> and older savegames once these changes are made. Probably
>> savegames already made in 2.1.99 will become incompatible,
>> but that was to be expected. Hopefully this will be the
>> only drawback.
>
> I've fixed the civ1 and civ2 terrain.ruleset files too. Resource
> identifiers have been rolled back to 2.1.x version.
> New patch attached (contains all changes and not only the new civ1/civ2
> changes).
Desert oil had another hack that prevented it from transferring from
S2_1 savegame to TRUNK version. Updated patch attached.
- ML
diff -Nurd -X.diff_ignore freeciv/data/civ1/terrain.ruleset
freeciv/data/civ1/terrain.ruleset
--- freeciv/data/civ1/terrain.ruleset 2009-06-06 23:53:43.000000000 +0300
+++ freeciv/data/civ1/terrain.ruleset 2009-06-07 00:34:25.000000000 +0300
@@ -552,8 +552,6 @@
; identifier = single-character identifier used in savegames. This
; must be unique for each resource, and changing it will
; break savegame compatibility.
-; update22one = single-character identifier in < 2.2 civ1 savegames.
-; update22two = single-character identifier in < 2.2 civ2 savegames.
; food = increased food production
; shield = increased shield production
; trade = increased trade production
@@ -562,8 +560,7 @@
name = _("Gold")
graphic = "ts.gold"
graphic_alt = "-"
-identifier = "$"
-update22one = "H"
+identifier = "H"
trade = 6
# mountains.
@@ -572,7 +569,6 @@
graphic = "ts.tundra_game"
graphic_alt = "-"
identifier = "A"
-update22two = "e"
food = 2
# forest, tundra.
@@ -581,7 +577,6 @@
graphic = "ts.coal"
graphic_alt = "-"
identifier = "C"
-update22two = "c"
shield = 2
# hills.
@@ -590,7 +585,6 @@
graphic = "ts.fish"
graphic_alt = "-"
identifier = "F"
-update22two = "y"
food = 2
# ocean.
@@ -599,7 +593,6 @@
graphic = "ts.gems"
graphic_alt = "-"
identifier = "G"
-update22two = "g"
trade = 4
# jungle.
@@ -608,7 +601,6 @@
graphic = "ts.horses"
graphic_alt = "-"
identifier = "I"
-update22two = "b"
shield = 2
# plains (horses => buffalo => cattle).
@@ -617,7 +609,6 @@
graphic = "ts.oasis"
graphic_alt = "-"
identifier = "O"
-update22two = "o"
food = 3
# desert.
@@ -626,7 +617,6 @@
graphic = "ts.oil"
graphic_alt = "-"
identifier = "P"
-update22two = "a"
shield = 4
# swamp (petroleum => peat => petroleum).
@@ -635,7 +625,6 @@
graphic = "ts.grassland_resources"
graphic_alt = "-"
identifier = "R"
-update22two = "r"
shield = 1
# grassland.
@@ -644,7 +633,6 @@
graphic = "ts.seals"
graphic_alt = "-"
identifier = "S"
-update22two = "i"
food = 2
# arctic (seals => walrus).
diff -Nurd -X.diff_ignore freeciv/data/civ2/terrain.ruleset
freeciv/data/civ2/terrain.ruleset
--- freeciv/data/civ2/terrain.ruleset 2009-06-06 23:53:43.000000000 +0300
+++ freeciv/data/civ2/terrain.ruleset 2009-06-07 00:34:25.000000000 +0300
@@ -566,8 +566,6 @@
; identifier = single-character identifier used in savegames. This
; must be unique for each resource, and changing it will
; break savegame compatibility.
-; update22one = single-character identifier in < 2.2 civ1 savegames.
-; update22two = single-character identifier in < 2.2 civ2 savegames.
; food = increased food production
; shield = increased shield production
; trade = increased trade production
@@ -577,7 +575,6 @@
graphic = "ts.gold"
graphic_alt = "-"
identifier = "$"
-update22one = "H"
trade = 6
# mountains.
@@ -593,8 +590,7 @@
name = _("?animals:Game")
graphic = "ts.tundra_game"
graphic_alt = "-"
-identifier = "A"
-update22two = "e"
+identifier = "e"
food = 2
shield = 1
# tundra.
@@ -603,8 +599,7 @@
name = _("Furs")
graphic = "ts.furs"
graphic_alt = "-"
-identifier = "b"
-update22two = "u"
+identifier = "u"
food = 1
trade = 3
# tundra-only (beaver pelts).
@@ -613,8 +608,7 @@
name = _("Coal")
graphic = "ts.coal"
graphic_alt = "-"
-identifier = "C"
-update22two = "c"
+identifier = "c"
shield = 2
# hills.
@@ -626,8 +620,7 @@
name = _("Fish")
graphic = "ts.fish"
graphic_alt = "-"
-identifier = "F"
-update22two = "y"
+identifier = "y"
food = 2
# ocean.
@@ -644,8 +637,7 @@
name = _("Gems")
graphic = "ts.gems"
graphic_alt = "-"
-identifier = "G"
-update22two = "g"
+identifier = "g"
trade = 4
# jungle.
@@ -653,8 +645,7 @@
name = _("Buffalo")
graphic = "ts.buffalo"
graphic_alt = "-"
-identifier = "I"
-update22two = "b"
+identifier = "b"
shield = 2
# plains (horses => buffalo => cattle).
@@ -670,8 +661,7 @@
name = _("Oasis")
graphic = "ts.oasis"
graphic_alt = "-"
-identifier = "O"
-update22two = "o"
+identifier = "o"
food = 3
# desert.
@@ -679,8 +669,7 @@
name = _("Peat")
graphic = "ts.peat"
graphic_alt = "-"
-identifier = "P"
-update22two = "a"
+identifier = "a"
shield = 4
# swamp (petroleum => peat => petroleum).
@@ -696,8 +685,7 @@
name = _("Resources")
graphic = "ts.grassland_resources"
graphic_alt = "-"
-identifier = "R"
-update22two = "r"
+identifier = "r"
shield = 1
# grassland.
@@ -705,8 +693,7 @@
name = _("Ivory")
graphic = "ts.arctic_ivory"
graphic_alt = "-"
-identifier = "S"
-update22two = "i"
+identifier = "i"
food = 1
shield = 1
trade = 4
@@ -758,8 +745,7 @@
name = _("Oil")
graphic = "ts.oil"
graphic_alt = "-"
-identifier = "X"
-update22two = "P"
+identifier = "P"
shield = 3
# desert-only, special processing, see savegame map_load().
diff -Nurd -X.diff_ignore freeciv/data/default/terrain.ruleset
freeciv/data/default/terrain.ruleset
--- freeciv/data/default/terrain.ruleset 2009-06-06 23:53:43.000000000
+0300
+++ freeciv/data/default/terrain.ruleset 2009-06-07 00:56:11.000000000
+0300
@@ -301,7 +301,7 @@
food = 0
shield = 0
trade = 0
-resources = "resource_icy_ivory", "resource_icy_oil"
+resources = "resource_icy_ivory", "resource_oil"
road_trade_incr = 0
road_time = 4
irrigation_result = "no"
@@ -338,7 +338,7 @@
food = 0
shield = 1
trade = 0
-resources = "resource_oasis", "resource_desert_oil"
+resources = "resource_oasis", "resource_oil"
road_trade_incr = 1
road_time = 2
irrigation_result = "yes"
@@ -674,8 +674,6 @@
; identifier = single-character identifier used in savegames. This
; must be unique for each resource, and changing it will
; break savegame compatibility.
-; update22one = single-character identifier in < 2.2 civ1 savegames.
-; update22two = single-character identifier in < 2.2 civ2 savegames.
; food = increased food production
; shield = increased shield production
; trade = increased trade production
@@ -685,7 +683,6 @@
graphic = "ts.gold"
graphic_alt = "-"
identifier = "$"
-update22one = "H"
trade = 6
# glacier, hills, mountains.
@@ -701,8 +698,7 @@
name = _("?animals:Game")
graphic = "ts.tundra_game"
graphic_alt = "-"
-identifier = "A"
-update22two = "e"
+identifier = "e"
food = 2
shield = 1
# tundra.
@@ -711,8 +707,7 @@
name = _("Furs")
graphic = "ts.furs"
graphic_alt = "-"
-identifier = "b"
-update22two = "u"
+identifier = "u"
food = 1
trade = 3
# tundra-only (beaver pelts).
@@ -721,8 +716,7 @@
name = _("Coal")
graphic = "ts.coal"
graphic_alt = "-"
-identifier = "C"
-update22two = "c"
+identifier = "c"
shield = 2
# hills.
@@ -730,8 +724,7 @@
name = _("Fish")
graphic = "ts.fish"
graphic_alt = "-"
-identifier = "F"
-update22two = "y"
+identifier = "y"
food = 2
# ocean.
@@ -748,23 +741,17 @@
name = _("Gems")
graphic = "ts.gems"
graphic_alt = "-"
-identifier = "G"
-update22two = "g"
+identifier = "g"
trade = 4
# jungle.
; "h" reserved for strategic horses
-; "H" formerly for update22one gold
-
-; "i" reserved for incense
-
[resource_buffalo]
name = _("Buffalo")
graphic = "ts.buffalo"
graphic_alt = "-"
-identifier = "I"
-update22two = "b"
+identifier = "b"
shield = 2
# plains (horses => buffalo => cattle).
@@ -786,8 +773,7 @@
name = _("Oasis")
graphic = "ts.oasis"
graphic_alt = "-"
-identifier = "O"
-update22two = "o"
+identifier = "o"
food = 3
# desert.
@@ -795,8 +781,7 @@
name = _("Peat")
graphic = "ts.peat"
graphic_alt = "-"
-identifier = "P"
-update22two = "a"
+identifier = "a"
shield = 4
# swamp (petroleum => peat => petroleum).
@@ -814,8 +799,7 @@
name = _("Resources")
graphic = "ts.grassland_resources"
graphic_alt = "-"
-identifier = "R"
-update22two = "r"
+identifier = "r"
shield = 1
# grassland.
@@ -823,8 +807,7 @@
name = _("Ivory")
graphic = "ts.arctic_ivory"
graphic_alt = "-"
-identifier = "S"
-update22two = "i"
+identifier = "i"
food = 1
shield = 1
trade = 4
@@ -866,22 +849,13 @@
trade = 4
# hills-only.
-[resource_icy_oil]
+[resource_oil]
name = _("Oil")
graphic = "ts.oil"
graphic_alt = "-"
identifier = "x"
-shield = 3 ;reduced from 4
-# glacier-only.
-
-[resource_desert_oil]
-name = _("Oil")
-graphic = "ts.oil"
-graphic_alt = "-"
-identifier = "X"
-update22two = "P"
-shield = 3
-# desert-only, special processing, see savegame map_load().
+shield = 3 ; glacier used to have 4
+# glacier, desert
; Base types:
;
diff -Nurd -X.diff_ignore freeciv/server/ruleset.c freeciv/server/ruleset.c
--- freeciv/server/ruleset.c 2009-06-06 23:53:43.000000000 +0300
+++ freeciv/server/ruleset.c 2009-06-07 00:34:25.000000000 +0300
@@ -74,10 +74,6 @@
#define UNIT_CLASS_SECTION_PREFIX "unitclass_"
#define UNIT_SECTION_PREFIX "unit_"
-/* savegame conversion: resource identifiers */
-char *update22one = NULL;
-char *update22two = NULL;
-
static const char name_too_long[] = "Name \"%s\" too long; truncating.";
#define check_name(name) (check_strlen(name, MAX_LEN_NAME, name_too_long))
#define name_strlcpy(dst, src) \
@@ -1643,16 +1639,6 @@
}
game.control.resource_count = nval;
- if (update22one) {
- free(update22one);
- }
- update22one = fc_calloc(nval, sizeof(char));
-
- if (update22two) {
- free(update22two);
- }
- update22two = fc_calloc(nval, sizeof(char));
-
/* avoid re-reading files */
if (resource_sections) {
free(resource_sections);
@@ -1953,33 +1939,6 @@
}
}
- update22one[i]
- = secfile_lookup_str_default(file, identifier,
- "%s.update22one", rsection)[0];
- if (RESOURCE_NULL_IDENTIFIER == update22one[i]) {
- ruleset_error(LOG_ERROR, "\"%s\" [%s] update22one missing value.",
- filename, rsection);
- }
- if (RESOURCE_NONE_IDENTIFIER == update22one[i]) {
- ruleset_error(LOG_ERROR,
- "\"%s\" [%s] cannot use '%c' as an identifier;"
- " it is reserved.",
- filename, rsection, update22one[i]);
- }
-
- update22two[i]
- = secfile_lookup_str_default(file, identifier,
- "%s.update22two", rsection)[0];
- if (RESOURCE_NULL_IDENTIFIER == update22two[i]) {
- ruleset_error(LOG_ERROR, "\"%s\" [%s] update22two missing value.",
- filename, rsection);
- }
- if (RESOURCE_NONE_IDENTIFIER == update22two[i]) {
- ruleset_error(LOG_ERROR,
- "\"%s\" [%s] cannot use '%c' as an identifier;"
- " it is reserved.",
- filename, rsection, update22two[i]);
- }
} resource_type_iterate_end;
/* base details */
diff -Nurd -X.diff_ignore freeciv/server/ruleset.h freeciv/server/ruleset.h
--- freeciv/server/ruleset.h 2008-10-27 04:13:36.000000000 +0200
+++ freeciv/server/ruleset.h 2009-06-07 00:34:25.000000000 +0300
@@ -15,10 +15,6 @@
struct conn_list;
-/* savegame conversion: resource identifiers */
-extern char *update22one;
-extern char *update22two;
-
/* functions */
void load_rulesets(void);
void send_rulesets(struct conn_list *dest);
diff -Nurd -X.diff_ignore freeciv/server/savegame.c freeciv/server/savegame.c
--- freeciv/server/savegame.c 2009-06-04 23:34:41.000000000 +0300
+++ freeciv/server/savegame.c 2009-06-07 00:55:00.000000000 +0300
@@ -914,28 +914,6 @@
}
/****************************************************************************
- Convert an older resource into the current value.
-****************************************************************************/
-static struct resource *update22_resource(char c)
-{
- /* Different rulesets had different resources. */
- if (strcmp(game.rulesetdir, "civ1") == 0) {
- resource_type_iterate(presource) {
- if (update22one[resource_index(presource)] == c) {
- return presource;
- }
- } resource_type_iterate_end;
- } else {
- resource_type_iterate(presource) {
- if (update22two[resource_index(presource)] == c) {
- return presource;
- }
- } resource_type_iterate_end;
- }
- return NULL;
-}
-
-/****************************************************************************
Return the resource for the given identifier.
****************************************************************************/
static struct resource *identifier_to_resource(char c)
@@ -945,9 +923,6 @@
|| c == RESOURCE_NONE_IDENTIFIER) {
return NULL;
}
- if (20199 > game.version) {
- return update22_resource(c);
- }
return find_resource_by_identifier(c);
}
@@ -1022,12 +997,6 @@
|| NULL == ptile->terrain) {
continue;
}
- if ('x' == ptile->resource->identifier
- && 'd' == ptile->terrain->identifier
- && 20199 > game.version) {
- /* for compatibility with civ2 split of desert oil */
- ptile->resource = find_resource_by_identifier('X');
- }
if (terrain_has_resource(ptile->terrain, ptile->resource)) {
/* cannot use set_special() for internal values */
BV_SET(ptile->special, S_RESOURCE_VALID);
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev