[Freeciv-Dev] (PR#40607) City Health patch
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40607 [cazf...@gmail.com - Mo 04. Mai. 2009, 09:53:10]: 2009/1/7 Marko Lindqvist cazf...@gmail.com: 2008/12/21 Yoav Luft: Hi, I think it's pretty much finished, at least the basic functionality. The attached .diff file adds the functionality of cities losing population when they grow too large due to diseases. I found additional comments in RT ticket that were not sent to mailing list. I looked latest version of the patch, 40607-freeciv-svn15395-health.patch.diff. Is anybody working on this? I did try to adapt the patch, especially the AI effect evaluation. But I did not understand how and why it is calculated ... After some time I moved on to the gold upkeep patch. I still observe this patch but at the moment my time to work on this is very limited and if I find some time it is the upkeep patch. I attached my last version. Changes: * reduced formula for the AI effect evaluation * change calculation of trade illness * save plague status for each city (never or turn x) * ruleset updates Matthias PS: If it is possible I would like to get an email if a comment to this patch is added (matthias.pfaffer...@mapfa.de) - ML diff -urN -X./freeciv-2.1.99svn15584/diff_ignore freeciv-2.1.99svn15584/ai/aicity.c freeciv-2.1.99svn15584.health/ai/aicity.c --- freeciv-2.1.99svn15584/ai/aicity.c 2009-01-05 11:54:27.0 +0100 +++ freeciv-2.1.99svn15584.health/ai/aicity.c 2009-03-23 20:48:22.937206187 +0100 @@ -520,6 +520,11 @@ case EFT_GROWTH_FOOD: v += c * 4 + (amount / 7) * pcity-surplus[O_FOOD]; break; + case EFT_ILLNESS: +/* old formula: + * v += c * 5 + (amount / 5) * pcity-illness + pcity-had_plague * 20; */ +v += c * 5 + (amount / 5) * pcity-illness; +break; case EFT_AIRLIFT: /* FIXME: We need some smart algorithm here. The below is * totally braindead. */ diff -urN -X./freeciv-2.1.99svn15584/diff_ignore freeciv-2.1.99svn15584/client/citydlg_common.c freeciv-2.1.99svn15584.health/client/citydlg_common.c --- freeciv-2.1.99svn15584/client/citydlg_common.c 2009-01-10 20:17:51.0 +0100 +++ freeciv-2.1.99svn15584.health/client/citydlg_common.c 2009-03-23 20:48:22.941206067 +0100 @@ -490,6 +490,28 @@ } /** + Return text describing the chance for a plague. +**/ +void get_city_dialog_illness_text(const struct city *pcity, + char *buf, size_t bufsz) +{ + int illness, trade, effects, from_size; + + illness = city_illness(pcity, trade, effects, from_size); + buf[0] = '\0'; + + cat_snprintf(buf, bufsz, %+2.1f : Risk from trade\n, + ((float)(trade) / 10.0)); + cat_snprintf(buf, bufsz, %+2.1f : Risk from over crowdness\n, + ((float)(from_size) / 10.0)); + cat_snprintf(buf, bufsz, %+2.1f : Effect of buildings\n, + ((float)(effects) / 10.0)); + cat_snprintf(buf, bufsz, : Adds up to\n); + cat_snprintf(buf, bufsz, %2.1f : Total chance for a plgue, + ((float)(illness) / 10.0)); +} + +/** Return text describing the pollution output. **/ void get_city_dialog_pollution_text(const struct city *pcity, diff -urN -X./freeciv-2.1.99svn15584/diff_ignore freeciv-2.1.99svn15584/client/citydlg_common.h freeciv-2.1.99svn15584.health/client/citydlg_common.h --- freeciv-2.1.99svn15584/client/citydlg_common.h 2009-01-05 11:56:00.0 +0100 +++ freeciv-2.1.99svn15584.health/client/citydlg_common.h 2009-03-23 20:48:22.941206067 +0100 @@ -49,6 +49,8 @@ char *buffer, size_t bufsz); void get_city_dialog_pollution_text(const struct city *pcity, char *buffer, size_t bufsz); +void get_city_dialog_illness_text(const struct city *pcity, + char *buf, size_t bufsz); int get_city_citizen_types(struct city *pcity, enum citizen_feeling index, enum citizen_category *citizens); diff -urN -X./freeciv-2.1.99svn15584/diff_ignore freeciv-2.1.99svn15584/client/gui-gtk-2.0/citydlg.c freeciv-2.1.99svn15584.health/client/gui-gtk-2.0/citydlg.c --- freeciv-2.1.99svn15584/client/gui-gtk-2.0/citydlg.c 2009-02-01 19:26:51.0 +0100 +++ freeciv-2.1.99svn15584.health/client/gui-gtk-2.0/citydlg.c 2009-03-23 20:48:22.945205388 +0100 @@ -95,7 +95,7 @@ enum info_style { NORMAL, ORANGE, RED, NUM_INFO_STYLES }; #define NUM_CITIZENS_SHOWN 23 -#define NUM_INFO_FIELDS 11 /* number of fields in city_info */ +#define NUM_INFO_FIELDS 12 /* number of fields in city_info */ #define NUM_PAGES 6 /* the number of pages in city dialog notebook * (+1) if you change this, you must add an
[Freeciv-Dev] (PR#40759) [patch] calc_city_units_upkeep
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40759 The upkeep information is now send to the client and the values are updated each turn and if * a unit is disbanded * a unit is bribed by a spy * a unit is disbanded and * a unit is updated if the creation of a unit is added the function does not have to be called on each turn - or are there buildings / events which change the upkeep of units (government change?) ... I have to think about this. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40758) Bug with SVN Trunk rev 15609- disappearing grasslands shield
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40758 I've created and tested a rollback patch, which removes all update22* references/code and revert back resource identifiers to the 2.1.x default. Should you need the dictionary approach, I could come up with a patch for that too. - Stéphane Messerli But I am still wondering if it would not just be simpler for the identifiers to be changed back to what they were before, i.e. the values they have in the update22* fields. I will check this and perhaps make a patch later if nobody can figure out a good reason why not to do this. Index: server/ruleset.c === --- server/ruleset.c (revision 15611) +++ server/ruleset.c (working copy) @@ -69,10 +69,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) \ @@ -1622,16 +1618,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); @@ -1932,33 +1918,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 */ Index: server/ruleset.h === --- server/ruleset.h (revision 15611) +++ server/ruleset.h (working copy) @@ -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); Index: server/savegame.c === --- server/savegame.c (revision 15611) +++ server/savegame.c (working copy) @@ -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); } Index: data/default/terrain.ruleset === --- data/default/terrain.ruleset (revision 15611) +++ data/default/terrain.ruleset (working copy) @@ -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. -;
[Freeciv-Dev] (PR#40767) Revert resource identifiers and remove update22* fields
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40767 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). Thanks for doing this tedious work. :) No problem :-) - Stéphane Messerli Index: server/ruleset.c === --- server/ruleset.c (revision 15611) +++ server/ruleset.c (working copy) @@ -69,10 +69,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) \ @@ -1622,16 +1618,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); @@ -1932,33 +1918,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 */ Index: server/ruleset.h === --- server/ruleset.h (revision 15611) +++ server/ruleset.h (working copy) @@ -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); Index: server/savegame.c === --- server/savegame.c (revision 15611) +++ server/savegame.c (working copy) @@ -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); } Index: data/civ1/terrain.ruleset === --- data/civ1/terrain.ruleset (revision 15611) +++ data/civ1/terrain.ruleset (working copy) @@ -552,8 +552,6 @@ ; identifier = single-character identifier used in savegames. This ;must be unique for each resource, and changing it will ;
[Freeciv-Dev] (PR#40759) [patch] calc_city_units_upkeep
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40759 - Perhaps the values of the unit upkeep field should be sent in unit info packets so that they do not have to be recomputed at the client side. I will look into this. Should this be something like in the attached file (unit_upkeep_packages.patch.diff)? Or are additional changes needed? diff -ur freeciv-2.1.99svn15584.gold//common/packets.def freeciv-2.1.99svn15584.unit_upkeep//common/packets.def --- freeciv-2.1.99svn15584.gold//common/packets.def 2009-03-23 20:47:57.0 +0100 +++ freeciv-2.1.99svn15584.unit_upkeep//common/packets.def 2009-04-12 11:57:22.082023611 +0200 @@ -747,6 +747,7 @@ PLAYER owner; COORD x,y; CITY homecity; + UINT16 upkeep[O_MAX]; UINT8 veteran; BOOL ai, paradropped; diff -ur freeciv-2.1.99svn15584.gold//server/unittools.c freeciv-2.1.99svn15584.unit_upkeep//server/unittools.c --- freeciv-2.1.99svn15584.gold//server/unittools.c 2009-03-23 20:47:57.0 +0100 +++ freeciv-2.1.99svn15584.unit_upkeep//server/unittools.c 2009-04-12 11:57:22.874025827 +0200 @@ -1827,6 +1827,7 @@ packet-x = punit-tile-x; packet-y = punit-tile-y; packet-homecity = punit-homecity; + packet-upkeep = punit-upkeep; packet-veteran = punit-veteran; packet-type = utype_number(unit_type(punit)); packet-movesleft = punit-moves_left; ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40758) Bug with SVN Trunk rev 15609- disappearing grasslands shield
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40758 Indeed, loading a civ1/2 game with the default ruleset is kind of weird. Perhaps a dictionary (in terrain.ruleset) could look like this: [resourceids_dictionary] game_version = 2.2 gold = $ iron = / game = A ... [resourceids_dictionary] game_version = 2.1 gold = H iron = / game = e ... That would allow to load saved games from previous versions without messing up the resources. What do you think? - Stéphane Messerli -- I am not sure if the whole update22 system should kept. It appears terribly hackish with the hard-coded version numbers and ruleset names (why should the default ruleset ever care about savegames in the civ1 or civ2 rulesets?). I am thinking that perhaps the resource identifiers should be changed back to remove the need for the update22* fields, or the entire identifier system replaced by something more robust (e.g. a dictionary mapping identifiers to resource names included in the ruleset definition). ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40758) Bug with SVN Trunk rev 15609- disappearing grasslands shield
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40758 Indeed, loading a civ1/2 game with the default ruleset is kind of weird. Perhaps a dictionary (in terrain.ruleset) could look like this: [resourceids_dictionary] game_version = 2.2 gold = $ iron = / game = A ... [resourceids_dictionary] game_version = 2.1 gold = H iron = / game = e ... That would allow to load saved games from previous versions without messing up the resources. What do you think? - Stéphane Messerli -- I am not sure if the whole update22 system should kept. It appears terribly hackish with the hard-coded version numbers and ruleset names (why should the default ruleset ever care about savegames in the civ1 or civ2 rulesets?). I am thinking that perhaps the resource identifiers should be changed back to remove the need for the update22* fields, or the entire identifier system replaced by something more robust (e.g. a dictionary mapping identifiers to resource names included in the ruleset definition). ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40760) [patch] extended_gold_upkeep_style
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40760 [matthias.pfaffer...@mapfa.de - Sa 11. Apr 2009, 23:45:40]: extend the gold upkeep system: 0 - old system 1 - cities pay for buildings; the nation pays for units 2 - the nation pays for buildings and units depends on ticket 40619, 40759 compile tested and also with a short game the missing patch file ... diff -ur freeciv-2.1.99svn15584.gold1//common/game.h freeciv-2.1.99svn15584.gold2//common/game.h --- freeciv-2.1.99svn15584.gold1//common/game.h 2009-03-23 20:47:57.0 +0100 +++ freeciv-2.1.99svn15584.gold2//common/game.h 2009-04-11 18:40:24.790630188 +0200 @@ -185,7 +185,7 @@ #define GAME_DEFAULT_GOLD_UPKEEP_STYLE 0 #define GAME_MIN_GOLD_UPKEEP_STYLE 0 -#define GAME_MAX_GOLD_UPKEEP_STYLE 1 +#define GAME_MAX_GOLD_UPKEEP_STYLE 2 #define GAME_DEFAULT_FOODBOX 100 #define GAME_MIN_FOODBOX 1 diff -ur freeciv-2.1.99svn15584.gold1//data/default/game.ruleset freeciv-2.1.99svn15584.gold2//data/default/game.ruleset --- freeciv-2.1.99svn15584.gold1//data/default/game.ruleset 2009-04-11 18:04:27.290128240 +0200 +++ freeciv-2.1.99svn15584.gold2//data/default/game.ruleset 2009-04-11 18:11:47.986126143 +0200 @@ -74,7 +74,13 @@ ; is negative, random buildings in the city are sold off. If the gold ; is still negative, then supported units with gold upkeep are ; disbanded. -; 1 - Gold upkeep for all buildings and units is paid in a lump sum after +; 1 - In the first step, the player's total gold must be non-negative after +; paying upkeep for all buildings within a city. If for any city the +; player's gold is negative, random buildings in the city are sold off. +; In the second step, gold upkeep for all units is paid in a lump sum. +; If the player does not have enough gold, random units with gold upkeep +; are disbanded. +; 2 - Gold upkeep for all buildings and units is paid in a lump sum after ; all cities have been processed. If the player does not have enough ; gold, random buildings from random cities are sold. If still more ; gold is needed, then random units with gold upkeep are disbanded. diff -ur freeciv-2.1.99svn15584.gold1//server/cityturn.c freeciv-2.1.99svn15584.gold2//server/cityturn.c --- freeciv-2.1.99svn15584.gold1//server/cityturn.c 2009-04-12 00:48:34.806125540 +0200 +++ freeciv-2.1.99svn15584.gold2//server/cityturn.c 2009-04-12 01:12:40.0 +0200 @@ -109,8 +109,10 @@ struct cityimpr_vector *imprs); static bool sell_random_units(struct player *pplayer, struct unitgold_vector *units); -static void city_balance_treasury(struct city *pcity); -static void player_balance_treasury(struct player *pplayer); +static bool city_balance_treasury_buildings(struct city *pcity); +static bool city_balance_treasury_units(struct city *pcity); +static bool player_balance_treasury_buildings(struct player *pplayer); +static bool player_balance_treasury_units(struct player *pplayer); static bool disband_city(struct city *pcity); @@ -468,7 +470,9 @@ * 'game.info.gold_upkeep_style': * 0 - Each city tries to balance its upkeep individually * (this is done in update_city_activity()). - * 1 - The nation as a whole balances the treasury. */ + * 1 - Each city tries to balance its upkeep for buildings individually; + * the upkeep for units is paid by the nation. + * 2 - The nation as a whole balances the treasury. */ /* Iterate over cities in a random order. */ while (i 0) { @@ -477,8 +481,20 @@ cities[r] = cities[--i]; } -if (game.info.gold_upkeep_style == 1 pplayer-economic.gold 0) { - player_balance_treasury(pplayer); +if (pplayer-economic.gold 0 game.info.gold_upkeep_style 0) { + switch (game.info.gold_upkeep_style) { +case 2: + /* nation pays for buildings and units */ + player_balance_treasury_buildings(pplayer); + /* no break */ +case 1: + /* nation pays for units */ + player_balance_treasury_units(pplayer); + break; +default: + /* fallthru */ + break; + } } /* Should not happen. */ @@ -1773,22 +1789,18 @@ } /** - Balance the gold of a nation by selling some random buildings. If this - does not help, then disband some units which need gold upkeep. + Balance the gold of a nation by selling some random buildings. **/ -static void player_balance_treasury(struct player *pplayer) +static bool player_balance_treasury_buildings(struct player *pplayer) { struct cityimpr_vector imprs; struct cityimpr ci; - struct unitgold_vector units; - struct unitgold ug; if (!pplayer) { -return; +return false; }
[Freeciv-Dev] (PR#40758) Bug with SVN Trunk rev 15609- disappearing grasslands shield
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40758 Hi, The issue is caused by the server/savegame.c code considering the dev version 2.1.99 to be a 2.1 instead of a 2.2. Resource identifiers are then converted when loading a 2.1.99 game, but they shouldn't be as they're already using 2.2 identifiers. I've attached a patch. I've quickly checked Tundra/Furs, and the resource now remains after loading a 2.1.99 game, while it disappeared without the patch. - Stéphane Messerli -- [book - Jeu. Avr. 09 23:54:45 2009]: Hi, I've experienced an extremely strange bug that I cannot track down the cause of. Any game that is started, find a grasslands shield resource. That shield resource will disappear if a savegame is loaded. I am not sure what this is a bug in. No other resources disappear, only grasslands shields. The square that previously claimed grassland (resource)2/1/0 will become just grassland 2/0/0. The two grasslands squares near Tokyo are a good example, here today, gone tomorrow. This only happens after reloading a game, if a game is just continually played through, no grassland squares disappear. I suspect the problem is in either saving or loading the game. I also cannot log in to RT with guest/viceerf, so I hope someone will give me a RT login when they fix the website problems. Aloha, RK. freeciv-2.1.99-patch-issue-40758.patch Description: Binary data ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40316) enemy cities not shown in fogged tiles
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40316 [EMAIL PROTECTED] - Fr 25. Jul 2008, 16:12:11]: It seems to me that problem has to be in server side sending such information in the first place. Something wrong with send_tile_info()? Thanks for the hint. The same I did on the client side can also be done in this function on the server, see the attached patch. diff -Nur -X.diff_ignore trunk/server/maphand.c changed/server/maphand.c --- trunk/server/maphand.c 2008-07-24 23:03:15.0 +0200 +++ changed/server/maphand.c 2008-07-25 23:50:56.0 +0200 @@ -412,7 +412,9 @@ info.owner = (NULL != tile_owner(ptile)) ? player_number(tile_owner(ptile)) : MAP_TILE_OWNER_NULL; - info.worked = IDENTITY_NUMBER_ZERO; + info.worked = (NULL != tile_city(ptile)) +? tile_worked(ptile)-id +: IDENTITY_NUMBER_ZERO; info.terrain = (NULL != plrtile-terrain) ? terrain_number(plrtile-terrain) ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40316) enemy cities not shown in fogged tiles
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40316 [EMAIL PROTECTED] - Fr 25. Jul 2008, 16:12:11]: It seems to me that problem has to be in server side sending such information in the first place. Something wrong with send_tile_info()? Thanks for the hint. The same I did on the client side can also be done in this function on the server, see the attached patch. Greetings, Nico diff -Nur -X.diff_ignore trunk/server/maphand.c changed/server/maphand.c --- trunk/server/maphand.c 2008-07-24 23:03:15.0 +0200 +++ changed/server/maphand.c 2008-07-25 23:50:56.0 +0200 @@ -412,7 +412,9 @@ info.owner = (NULL != tile_owner(ptile)) ? player_number(tile_owner(ptile)) : MAP_TILE_OWNER_NULL; - info.worked = IDENTITY_NUMBER_ZERO; + info.worked = (NULL != tile_city(ptile)) +? tile_worked(ptile)-id +: IDENTITY_NUMBER_ZERO; info.terrain = (NULL != plrtile-terrain) ? terrain_number(plrtile-terrain) ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39864) helicopter goto overly cautious
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39864 [book - Sat Jul 19 04:02:14 2008]: My opinion is that the current behaviour is excessively nannying and adds needless complications. The goto code should just make the unit go where you tell it to go, taking a safe route if one exists, and should not try to second guess your intentions and protect you from yourself. -- 皇帝陛下のために戦う神風が要るんだから。 Why is it that in previous versions of FreeCiv, I could send my aircraft anywhere in the world that I wanted to, but in this last version (2.1.5) it doesn't work like that? I also agree that having to move aircraft short distances at a time does not work very well. Personally, for me, it makes the game not worth the time to play. In fact, even with using waypoints, I still cannot move the aircraft very far at a time. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40316) enemy cities not shown in fogged tiles
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40316 [EMAIL PROTECTED] Well I probably have the time for working on this but my experience doesn't quite match yours with neither the C programming language nor the freeciv source code, so I'm not all that confident that it would be just a matter of a few weeks... ;) I can see books point, all of which quite sensible, and understand that the actual problem is quite somewhere else. It just isn't quite reassuring for me that an incredible complex and obscure code block I believe could be the source of the problem is commented on top of it with the words This was once very ugly In this tradition you could maybe use my current patch as temporarily solution if you want to branch S2_3 any time soon, as reverting back to the old S2_1 state would probably mean killing off a lot of good work related to the border algorithms (which seems to be the key change between versions that screwed all this fogged stuff up). Greetings, Nico the n00b ;) ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40316) enemy cities not shown in fogged tiles
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40316 pcity-tile and ptile-city are both set to the correct values. In general ptile-city-tile == ptile and pcity-tile-city == pcity all the time (that would be a useful assertion to add somewhere - in fact client-side sanity checks might be a good thing in general, but that's off topic). There is the catch: Between the versions the ptile-city member has been replaced by ptile-worked which points to the city working on the tile, so many tiles are pointing to the same city (in the city radius I suppose). That is what the tile_city function is all about (in S2_1 it didn't exist and the put_one_element function got just passed ptile-city), as it checks whether the tile that is worked on (if at all) is the center tile of the city itself or if not returns NULL (meaning it is just a tile in the vicinity of the given city and worked by it). This worked member is used quite extensively for calculating the owners of the tiles and their surrounding borders, so it seems to be working quite fine. Only problem is that somewhere on the client (or more likely on the server) this member isn't updated correctly, maybe because somebody thought that the client shouldn't be supposed to know about what tiles are worked by other players if they can't see it (hich sounds quite sensible at first glance). Question: if you disconnect and reconnect to the server, are the fogged cities shown then? I cannot recall testing this. Wow, that was a GREAT idea! I just tested it and noticed that the cities are updated correctly (meaning they are visible when fogged) after rejoining the game. I moved up to one visible fogged city with an explorer and left again et voila: once the city got fogged again it disappeared from the map. The problem seems to occur when the fogged city becomes visible again or is fogged again. So the problem with the updating must be happening somewhere when the TILE_KNOWN_UNSEEN flag is set for a formerly seen tile or vice versa when it is reset to the TILE_KNOWN_SEEN. I'll try to check through all the code blocks where these status flags are checked and/or changed and compare them with the former code of S2_1. Maybe I'll get lucky and find the needle in the haystack before the few weeks pass by. ;) ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40213) No way to turn worker display from main map
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40213 [book - So 20. Jul 2008, 22:29:40]: [EMAIL PROTECTED] - So 20. Jul 2008, 18:15:03] Since there hasn't been done anything here for a month I assumed that this would be an ideal training ground for newbies. ;) It was very low on my list of things to do, despite the always-drawn output being quite an eyesore. Great that you saved me the trouble of having to implement this myself. Thank you book, I really appreciate your quick and helpfull responses. I'm glad if I helped you to save some time for doing other more important stuff with this. I tried to supply an option for the view menu in the same manner as all the other options have been coded before. However, I don't really understand the necessarity for the key_x_toggle() wrapper function, when you could just use directly the request_toggle_x() function in control.c. Yet I still used the same way arround for I may be too stupid to understand this. :D My guess is that one day keys will be configurable and the key_* functions correspond to bindable operations. Well that doesn't really sound convincing to me (not that it would matter to convince me ;) ). If you would make the key combos configureable for the user, wouldn't it be all the same if you'd call either key_*_toggle or request_toggle_* as both functions do the same and are prototyped in the same header file anyways? Also I used the key combo ctrl + t instead of only t, since all the other view options are also using the ctrl modifier. This patch only works for the GTK client, but should be addaptable for other clients. Not having found any problems with your patch, I'll commit it after the usual few day wait. Well take all the time you like, no need to hurry for me. ;) Greetings, Nico ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40334) save/load game to/from web
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40334 I don't know how this is best implemented... maybe by a single dedicated server (like del.icio.us http://del.icio.us ... obviously your games would be associated with your login), or maybe by letting individual players configure where their games will be stored. Maybe there's a free web storage service that could be used for the purpose. Checked out a few web storage possibilities. One that looks like a perfect fit is box.net http://enabled.box.net. They specifically give you an API, and give you a way to let users create an account easily. There are already a number of free programs that use it, such as a Firefox bookmark synchronizer. See http://enabled.box.net/docs Sounds like you ned to create a box.net project, for which you create an API key. Would be nice (according to the TOS) if this project could be more general-purpose than just for freeciv; e.g. if it could apply to saving/loading game files for multiple games. To do that, I suppose it would need to be external to freeciv; maybe just a separate folder-sync program (of which some already exist). In that case no modification of freeciv would be necessary. is already one sufficiently generic to handle this need, e.g. a general saved-game-storage project. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40337) Failing to load interstellar modpack maps
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40337 Should this savegame work? In reality, it doesn't if a client is started using my own 'starplio' tileset, but does if a client is started using amplio and then changed to starplio once the game has started. interstellar80x40.sav Description: Binary data ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#34276) clients default to the wrong port
URL: http://bugs.freeciv.org/Ticket/Display.html?id=34276 [EMAIL PROTECTED] - Mar. Sep. 04 12:00:48 2007]: On 04/09/07, Jordi Negrevernis i Font wrote: Marko Lindqvist wrote: What Freeciv version and which client are you using? Freeciv 2.1.0 Beta6 compiled from source Can you try what 'grep DEFAULT_SOCK_PORT client/clinet.h' says about default port? I grepped all our sources for '' and found no instance where it could still get it as default. I also greeped the sources and it appears that opensuse installs a default .rc with port . BTW, when i greeped the source for '' there were a lot of fuzzy translated strings with the string ''. Thanks, and sorry for the bug report. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40171) bug in gtk client - select CMA none
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40171 i noticed that PR#40097 is very similar to this report. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#40171) bug in gtk client - select CMA none
URL: http://bugs.freeciv.org/Ticket/Display.html?id=40171 i noticed that PR#40097 is very similar to this report. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39464) metaserver's server list
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39464 Can be solve easy! $row[host] and $row[port] variables are destroy by players list query to database. Resquest sentences are build in same time in the pacth. You can also, use differents variable names than $row for players/variables list query. Regards patch.diff.gz Description: GNU Zip compressed data ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#20395) two bugs in 2.1.0 Beta2
URL: http://bugs.freeciv.org/Ticket/Display.html?id=20395 2. When using default rules, fighters can't engage other units except when immediately adjacent to a city. Aparently both fighters and bombers are completely useless. They might be able to defend, but they cannot attack a city - not even when on a carrier immediately adjacent. I have no problem with it...you just move onto the unit/city and it attacks... in 2.0.8, it sure did. Not in the beta I compiled. And I tried with all flying types (well, I didn't bother with a stealth bomber or an a-bomb, and I didn't see awacs in that rule-set) But I did try helicoptors, cruise missles, stealth fighters, regular fighters, bombers. Paratroopers still work. Is there a later snapshot I should try to compile? I used the srpm from Mandriva Cooker for 2.0.8, removed a few patches, adjusted version numbers, stuck in the new tarball, and rpmbuild -ba -jason This appears to be fixed in 2.1.0 Beta 4 -- Daniel J McDonald, CCIE # 2495 ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39477) svn version 13132 breaks tilesets?
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39477 [wsimpson - Fri Aug 03 18:19:29 2007]: Guest wrote: [wsimpson - Tue Jul 31 06:51:16 2007]: Are you sure you installed correctly? I believe so, unless using svn update has become the incorrect way. ... []$ civclient -t amplio 1: tilespec file appears incompatible: file: ./amplio.tilespec file options: +tilespec4.2007.Jul.13 supported options: +tilespec4 duplicates_ok 0: No usable default tileset found, aborting! What's obvious from the lines above, you are not running the new binary. The amplio.tilespec is not the problem, that binary is wrong! Apparently, there's something wrong with your installation process for ./civclient. Try ./civ in your make directory. I've now tried updating all my installation programs (automake, etc.) and reinstalled again, and it's now working, so it looks like the problem was definitely at my end. My apologies, and thanks for the assistance. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39477) svn version 13132 breaks tilesets?
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39477 [wsimpson - Tue Jul 31 06:51:16 2007]: Michael Fay wrote: I am unable to get any tileset to work with the current svn version (13132). All the included tilesets are working here With Amplio Including Amplio, at this very moment. 1: tilespec file appears incompatible: file: ./amplio.tilespec file options: +tilespec4.2007.Jul.13 If the options line is modified, then get: 0: sectionfile ./amplio.tilespec doesn't contain a 'layer0.match_style' entry If at line 100 and 104 I added match_style = BOOL then get 1: No terrain types supported by tileset. Am now stuck. The trunk tilespec added new features again on Jul.31. Please look at the copious messages on this list, included at the nice website. The amplio tilespec doesn't need any more modifications to run, all the changes have already been made, and are distributed from svn. Are you sure you installed correctly? I believe so, unless using svn update has become the incorrect way. I'd also note that I registered this bug on Mon Jul 30 19:01:30, so nice new features uploaded on the 31st won't have caused it. I also renamed my original amplio tileset and went through the svn update - the new amplio also didn't work. I have also downloaded today's snapshot (2nd August) into a separate folder, and tried that separately. The tilesets here also do not work: []$ civclient -t amplio 1: tilespec file appears incompatible: file: ./amplio.tilespec file options: +tilespec4.2007.Jul.13 supported options: +tilespec4 duplicates_ok 0: No usable default tileset found, aborting! I have also redone svn update, now at Updated to revision 13136. With these nice, shiny new tileset updates, I get []$ civclient 0: No usable default tileset found, aborting! Are you sure the necessary updates have been uploaded to svn? The latest amplio.tilespec I have got from svn, having deleted the previous file before doing svn update, still doesn't contain a 'layer0.match_style' entry. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39469) Desktop Focus with multiple Desktops
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39469 Indeed, with Wesnoth it´s the same. So you can take back the bug report. I'll try to get some support in the Dexpot-Board. Thank you for the help! Greetz Scheich Xodox ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39459) Segfault when founding a city
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39459 [EMAIL PROTECTED] - Tue Jul 17 19:56:51 2007]: URL: http://bugs.freeciv.org/Ticket/Display.html?id=39459 Some debugging says that the faulty place is client/gui-gtk-2.0/wldlg.c function cell_render_func line 1008 (this might change because of commits to SVN): column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(rend), column)); column is set to -1 and this makes this code segfault: g_object_set(rend, text, row[column], NULL); It might be that my GTK2 is bad.. How to check? gcc 4.x miscompiles gtk producing strange crashes that seem to originate in libc (strlen). I don't know if there are some special compiler switches one can use to make gcc 4 compile without this bug; the problem goes away if you compile gtk (and glib, etc.) with gcc 3.x (tested with gcc 3.4.6 gtk 2.10.13 glib 2.12.12). Hope that helps. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39389) BUG: technology/advance name translation
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39389 I don't think you understood very well what is LOG_NORMAL. All the freelog() messages are displayed ONLY in the console if the current log level = to the first argument. LOG_NORMAL messages are not displayed in the chat window. Some messages are duplicated, then they could be translated, but i don't think any freelog() message should be translated. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39129) 'Unassigned' bug
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39129 There is an other problem... When the pregame, when you cut someone, the player is removed, so the players are renumbered. Then, the pplayer pointer point to the next player. :/ I propose to set back: pplayer = ptarget-player; and replace: if (pplayer) by if (pplayer !pplayer-is_connected) This problem is for 2.0 and 2.1 ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#23744) bug in control.c (nuke)
URL: http://bugs.freeciv.org/Ticket/Display.html?id=23744 Bug fixed, see http://rt.freeciv.org/Ticket/Display.html?id=39126 ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39126) Nuke bug
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39126 Apply the patch in reverse mode (i did a mistake with source and destination with diff): patch -Rp1 ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39358) vote in pregame
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39358 [EMAIL PROTECTED] - Wed Apr 25 07:18:33 2007]: When there is a vote while the pregame, and a player leaves or is lost, the players are renumbered. But votes are based on player_no, so the vote are messed up. For exemple: * A (player 0), B (player 1), C (player 2) are connected on the same server * B ask for cut C. * A leaves. The players are renumbered: B (player 0), C (player 1). Vote are not changed so C voted yes, instead of B. * B can vote a second time, and cut this poor C user Sad. He can ask a second vote too, without canceling the first. I don't see any easy solution, just some hack... So i prefer don't give you bad code lines :) _ Découvrez le Blog heroic Fantaisy d'Eragon! http://eragon-heroic-fantasy.spaces.live.com/ I wanted to clarify this cause I think I can fix it just need some more information. You are referring to a pregame vote only correct? If this is occuring during the game itself I will need some more information as the server doesn't actually reorder the player list during a disconnect if not in pregame. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39358) vote in pregame
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39358 I wanted to clarify this cause I think I can fix it just need some more information. You are referring to a pregame vote only correct? If this is occuring during the game itself I will need some more information as the server doesn't actually reorder the player list during a disconnect if not in pregame. The players are not renumbered while the other game state (like running). While the pregame, players are removed when they leaves (or lose connection). But if a player is removed while the game is running, the player lose all his cities and units and he is marked as 'dead', but he isn't removed completely of the game. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39349) Another bugwad (bribing, irrigation, goto, ships, tech, courthouse, peace)
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39349 [per - Sat Apr 21 13:05:50 2007]: Please post each bug in a separate ticket. It is difficult to handle multi-bug reports. Will do. Why are you playing the beta version? Actually, these bugs are from 2.1.0.beta3. Sorry, my bad. Unable to bribe units (says diplomat had failed move). This should have been fixed 2.0.8 - 2.0.9. Can you recheck in 2.0.9 I rechecked in 2.1.0.beta3. It is actually a goto bug. Using goto with a diplomat results in a bribe unit popup in which only cancel is clickable. The message box says orders aborted because of failed move. The pay gold box never appears. If I move the diplomat with the keypad I can bribe the unit, pay the gold, and the unit is mine. In Civ II, Genetic Engineering had Chemistry and Corporation as its prerequisites. The Freeciv tech tree shows the Medicine and Corporation as the prerequisites. Freeciv is not Civ2. If the tech tree were completely different I would not have said anything, but with such a small difference it looked like someone was trying to copy the Civ2 tech tree but made a mistake. Come to think of it, such differences might help Freeciv on copyright issues. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39331) 8 bugs (borders, trade menu, rivers, Sun Tzu, cease fire, attacking city, go to, city growth), plus AI suggestions
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39331 These bugs are actually for 2.1.0-beta3, not 2.0.9-beta3. Sorry about any confusion. In response to whoever made the comment about desalination plants: I like the idea of more techs, more buildings, etc., especially in the modern era and the near (forseeable) future. If you're going to add desalination tech, might as well go all out and add a bunch of others like internet and germ warfare. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#39331) 8 bugs (borders, trade menu, rivers, Sun Tzu, cease fire, attacking city, go to, city growth), plus AI suggestions
URL: http://bugs.freeciv.org/Ticket/Display.html?id=39331 Are you dure you are playing on hard? I can never get the AI to exchange tech, even if I offer all my techs in exchange. The bug for me is that you can't get any reason for why the computer isn't accetping your deal. Yes, the chat screen shows the AIs as hard when I load a game. I'm assuming you established embassies with the AIs? If you didn't, it will grey out their tech selecton at the negotiating table. If you did establish embassies but always got thumbs down, then you found a bug. ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#37321) Veteran status
URL: http://bugs.freeciv.org/Ticket/Display.html?id=37321 [guest - Sun Mar 04 19:29:33 2007]: [EMAIL PROTECTED] - Sat Mar 03 22:22:13 2007]: well i see that some of you say that the status should be dropped at one stage, but i will disagree here. assume you have a elite carvel crew, you assign them to a new galeon. they are very experianced with those kind of ships. so they would probably stay elite same with frigates-ironclads I think that is the main inconsistency. If you are assigned a new technology it does not assume that you become automatically experienced with it. For instance, Pikemen are upgraded to Musketeers. Do you really believe that an elite pikeman will become immediately an elite musketeer? They are using quite different weapons, tactics, etc. The same is for other technologies, such as catapults and cannons. People even need time and training to move from one programming language to another, not talking about being an expert :-) Sincerely, Alexander when it comes to catipults and cannons, they both rely on aim. when you upgrade them, the status should remain right now if you upgrade with money, status remians. the workshop upgrades them for free. so i ask u guys to make an option before u make the game for the upgrading system-which one you prefer to play in -flamehawk96 (aka eadle) ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#37321) Veteran status
URL: http://bugs.freeciv.org/Ticket/Display.html?id=37321 [EMAIL PROTECTED] - Sat Mar 03 22:22:13 2007]: well i see that some of you say that the status should be dropped at one stage, but i will disagree here. assume you have a elite carvel crew, you assign them to a new galeon. they are very experianced with those kind of ships. so they would probably stay elite same with frigates-ironclads when it comes to catipults and cannons, they both rely on aim. when you upgrade them, the status should remain right now if you upgrade with money, status remians. the workshop upgrades them for free. so i ask u guys to make an option before u make the game for the upgrading system-which one you prefer to play in -flamehawk96 (aka eadle) ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] (PR#37321) Veteran status
URL: http://bugs.freeciv.org/Ticket/Display.html?id=37321 [chrisk - Fri Mar 02 11:06:11 2007]: Alexander Sayenko wrote on Mar 01, 22:03 (-0800): There is a bug report based on several discussions in the Freeciv forum. The main inconsistency is that: * while upgrading a unit, the veteran status is preserved * while a unit is upgraded by Leonardo workshop, it cleared, i.e., a unit becomes a novice Possible solutions: * keep the veteran status in all cases I'm for this. Dropping the veteran status makes upgrading quite worthless. BTW, there is a rather old bug report for this, and I *think* this is already fixed in the above way at least in 2.0.9 beta3 Christian * clear the veteran status in all cases * clear the veteran status if a user upgrades a unit but keep it if a unit is upgraded by the Leonardo workshop * keep the veteran status when a user upgrades a unit if he has the Leonardo Worshop; otherwise it is cleared * instead of clearing the veteran status in all the cases above, it can be downgraded by one level Personally, I prefer a case when the veteran status decreases by one level during an upgrade (see my ideas concerning this issue on the forum). However, since the Leonardo workshop is a wonder, both the normal upgrade and the Leonardo upgrade should preserve the veteran status, if a user has this wonder. In other words, the first stage is that you fix the Leonardo worskhop behaviour. The second stage is that you decide what to do with the normal upgrade when a player does not have this wonder. Sincerely, Alexander ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev