Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2005:
[Freeciv-Dev] Re: (PR#14760) More govt generalization
Home

[Freeciv-Dev] Re: (PR#14760) More govt generalization

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Subject: [Freeciv-Dev] Re: (PR#14760) More govt generalization
From: "Per I. Mathisen" <per@xxxxxxxxxxx>
Date: Fri, 9 Dec 2005 14:34:12 -0800
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=14760 >

On Sat, 3 Dec 2005, Per I. Mathisen wrote:
> This pushes the last pieces of government special attributes over into
> effects, that is production_*_bonus and production_*_penalty, adding two
> new effects Output_Penalty_Tile and Output_Inc_Tile_Celebrate. The ability
> to set a separate penalty for cities that celebrate is lost - it was never
> used either.

New patch to be committed:
 - add helptext support (also for waste)
 - make clear that we remove the communism bonus to incite and bribe costs
 - remove superfluous helptexts from civ1/2 rulesets (really unrelated)
 - tile penalty does not apply if city is celebrating (as before)
 - add capability
 - add civ1/2 ruleset support

 - Per

Index: server/cityturn.c
===================================================================
--- server/cityturn.c   (revision 11322)
+++ server/cityturn.c   (working copy)
@@ -1387,10 +1387,6 @@
     dist = 32;
   }
 
-  if (g->waste[O_TRADE].fixed_distance != 0) {
-    dist = MIN(g->waste[O_TRADE].fixed_distance, dist);
-  }
-
   size = MAX(1, pcity->size
                 + pcity->ppl_happy[4]
                 - pcity->ppl_unhappy[4]
Index: server/ruleset.c
===================================================================
--- server/ruleset.c    (revision 11322)
+++ server/ruleset.c    (working copy)
@@ -1692,24 +1692,6 @@
     sz_strlcpy(g->graphic_alt,
               secfile_lookup_str(file, "%s.graphic_alt", sec[i]));
 
-    output_type_iterate(o) {
-      g->output_inc_tile[o]
-       = secfile_lookup_int_default(file, 0, "%s.production_%s_bonus",
-                                    sec[i], get_output_identifier(o));
-      g->celeb_output_inc_tile[o]
-       = secfile_lookup_int_default(file, 0, "%s.production_%s_bonus,1",
-                                    sec[i], get_output_identifier(o));
-
-      g->output_before_penalty[o]
-       = secfile_lookup_int_default(file, FC_INFINITY,
-                                    "%s.production_%s_penalty", sec[i],
-                                    get_output_identifier(o));
-      g->celeb_output_before_penalty[o]
-       = secfile_lookup_int_default(file, FC_INFINITY,
-                                    "%s.production_%s_penalty,1", sec[i],
-                                    get_output_identifier(o));
-    } output_type_iterate_end;
-    
     g->helptext = lookup_helptext(file, sec[i]);
   } government_iterate_end;
 
@@ -2829,13 +2811,6 @@
     } requirement_vector_iterate_end;
     gov.reqs_count = j;
 
-    output_type_iterate(o) {
-      gov.output_before_penalty[o] = g->output_before_penalty[o];
-      gov.celeb_output_before_penalty[o] = g->celeb_output_before_penalty[o];
-      gov.output_inc_tile[o] = g->output_inc_tile[o];
-      gov.celeb_output_inc_tile[o] = g->celeb_output_inc_tile[o];
-    } output_type_iterate_end;
-        
     gov.num_ruler_titles = g->num_ruler_titles;
 
     sz_strlcpy(gov.name, g->name_orig);
Index: server/diplomats.c
===================================================================
--- server/diplomats.c  (revision 11322)
+++ server/diplomats.c  (working copy)
@@ -1296,7 +1296,6 @@
 **************************************************************************/
 int unit_bribe_cost(struct unit *punit)
 {  
-  struct government *g = get_gov_pplayer(unit_owner(punit));
   int cost;
   struct city *capital;
   int dist;
@@ -1310,8 +1309,6 @@
   }
   else
     dist=32;
-  if (g->waste[O_TRADE].fixed_distance != 0)
-    dist = MIN(g->waste[O_TRADE].fixed_distance, dist);
   cost /= dist + 2;
 
   cost *= unit_build_shield_cost(punit->type) / 10;
Index: data/default/effects.ruleset
===================================================================
--- data/default/effects.ruleset        (revision 11322)
+++ data/default/effects.ruleset        (working copy)
@@ -538,6 +538,58 @@
       "UnitFlag", "Diplomat", "Local"
     }
 
+[effect_gov_tile_bonus_0]
+name    = "Output_Penalty_Tile"
+value   = 2
+reqs   =
+    { "type",       "name",      "range"
+      "Gov", "Anarchy", "Player"
+    }
+
+[effect_gov_tile_bonus_1]
+name    = "Output_Penalty_Tile"
+value   = 2
+reqs   =
+    { "type",       "name",      "range"
+      "Gov", "Despotism", "Player"
+    }
+
+[effect_gov_tile_bonus_2]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs   =
+    { "type",       "name",      "range"
+      "OutputType", "Trade", "Local"
+      "Gov", "Monarchy", "Player"
+    }
+
+[effect_gov_tile_bonus_3]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs   =
+    { "type",       "name",      "range"
+      "OutputType", "Trade", "Local"
+      "Gov", "Communism", "Player"
+    }
+
+[effect_gov_tile_bonus_4]
+name    = "Output_Inc_Tile"
+value   = 1
+reqs   =
+    { "type",       "name",      "range"
+      "Gov", "Republic", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
+[effect_gov_tile_bonus_5]
+name    = "Output_Inc_Tile"
+value   = 1
+reqs   =
+    { "type",       "name",      "range"
+      "Gov", "Democracy", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
 [effect_revolution_0]
 name    = "Revolution_When_Unhappy"
 value   = 1
Index: data/default/governments.ruleset
===================================================================
--- data/default/governments.ruleset    (revision 11322)
+++ data/default/governments.ruleset    (working copy)
@@ -39,11 +39,6 @@
 ; ai_better   = AI will not consider this government for use if the
 ;               government listed here is available
 
-; production_*_bonus   = added to base production for each worked tile;
-;                       second value is used instead when city is celebrating
-; production_*_penalty = if non-zero, tile production above this amount is 
-;                       reduced by one; second value used when celebrating
-
 ; ruler_titles = ruler titles by nation, "-" is default, and non-matched 
 ;               nations are ignored 
 
@@ -58,14 +53,6 @@
 graphic     = "gov.anarchy"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 0
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty   = 2, 0
-
 ruler_male_title = _("Mr.")
 ruler_female_title = _("Ms.")
 
@@ -88,14 +75,6 @@
 graphic_alt = "-"
 ai_better   = "Monarchy"
 
-production_trade_bonus    = 0, 0
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty   = 2, 0
-
 ruler_male_title = _("Emperor")
 ruler_female_title = _("Empress")
 
@@ -118,14 +97,6 @@
 graphic_alt = "-"
 ai_better   = "Communism"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("King")
 ruler_female_title = _("Queen")
 
@@ -147,14 +118,6 @@
 graphic     = "gov.communism"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("Comrade")
 ruler_female_title = _("Comrade")
 
@@ -166,10 +129,7 @@
 \n\n\
 Under Communism, corruption does not vary by distance from\
  the capital; all cities (including the capital) have a modest amount\
- of corruption.  In addition, Communist cities more than 10\
- squares away from the capital are considered to be only 10 squares\
- away when computing the cost of inciting a revolt. \
- See Units, Diplomat.\
+ of corruption.\
 ")
 
 ;------------------------------------------------------------------------
@@ -182,14 +142,6 @@
 graphic     = "gov.republic"
 graphic_alt = "-"
 
-production_trade_bonus    = 1, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("Consul")
 ruler_female_title = _("Consul")
 
@@ -200,8 +152,6 @@
  degree of freedom.  Citizens under the Republic become unhappy\
  easily, but the self-sufficiency of your citizens allows high levels\
  of trade.\
-\n\n\
-Cities under the Republic suffer a small amount of corruption.\
 ")
 
 ;------------------------------------------------------------------------
@@ -214,14 +164,6 @@
 graphic     = "gov.democracy"
 graphic_alt = "-"
 
-production_trade_bonus    = 1, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("President")
 ruler_female_title = _("President")
 
Index: data/civ1/effects.ruleset
===================================================================
--- data/civ1/effects.ruleset   (revision 11322)
+++ data/civ1/effects.ruleset   (working copy)
@@ -19,6 +19,58 @@
 
 ; Specialist output bonuses
 
+[effect_gov_tile_bonus_0]
+name    = "Output_Penalty_Tile"
+value   = 2
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Anarchy", "Player"
+    }
+
+[effect_gov_tile_bonus_1]
+name    = "Output_Penalty_Tile"
+value   = 2
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Despotism", "Player"
+    }
+
+[effect_gov_tile_bonus_2]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "OutputType", "Trade", "Local"
+      "Gov", "Monarchy", "Player"
+    }
+
+[effect_gov_tile_bonus_3]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "OutputType", "Trade", "Local"
+      "Gov", "Communism", "Player"
+    }
+
+[effect_gov_tile_bonus_4]
+name    = "Output_Inc_Tile"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Republic", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
+[effect_gov_tile_bonus_5]
+name    = "Output_Inc_Tile"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Democracy", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
 [effect_corruption_anarchy0]
 name  = "Output_Waste"
 value = 25
Index: data/civ1/governments.ruleset
===================================================================
--- data/civ1/governments.ruleset       (revision 11322)
+++ data/civ1/governments.ruleset       (working copy)
@@ -39,11 +39,6 @@
 ;               should be a standard tag if preferred is not;
 ;              otherwise may be "-"
 
-; production_*_bonus   = added to base production for each worked tile;
-;                       second value is used instead when city is celebrating
-; production_*_penalty = if non-zero, tile production above this amount is 
-;                       reduced by one; second value used when celebrating
-
 ; ruler_titles = ruler titles by nation, "-" is default, and non-matched 
 ;               nations are ignored 
 
@@ -58,14 +53,6 @@
 graphic     = "gov.anarchy"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 0
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty   = 2, 0
-
 ruler_male_title = _("Mr.")
 ruler_female_title = _("Ms.")
 
@@ -77,20 +64,6 @@
 \n\n\
 Anarchy offers slightly less corruption than Despotism, but slightly\
  more unhappiness.\
-\n\n\
-Settlers consume 1 food per turn under Anarchy.  Squares which would\
- normally yield more than 2 units of food, shields or trade suffer\
- a 1-unit penalty (e.g., an irrigated grassland square which would\
- normally yield 3 food only yields 2 food while you are in Anarchy).\
- (This penalty is removed if the city is celebrating; see Happiness.)\
-\n\n\
-Under Anarchy, each of your cities can support a number of military\
- units equal to its size without paying shields for upkeep.\
- (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Anarchy: each military unit inside\
- a city will keep one unhappy citizen content.  (Or at least, unhappy\
- citizens will act content, and will not cause disorder.)\
 ")
 
 ;------------------------------------------------------------------------
@@ -102,14 +75,6 @@
 graphic_alt = "-"
 ai_better   = "Monarchy"
 
-production_trade_bonus    = 0, 0
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty   = 2, 0
-
 ruler_male_title = _("Emperor")
 ruler_female_title = _("Empress")
 
@@ -119,21 +84,6 @@
 \n\n\
 Despotism suffers the highest level of corruption of all forms of\
  government.\
-\n\n\
-Settlers consume 1 food per turn under Despotism.  Squares which\
- would normally yield more than 2 units of food, shields or trade\
- suffer a 1-unit penalty (e.g., an irrigated grassland square which\
- would normally yield 3 food only yields 2 food while you are under\
- Despotic rule).  (This penalty is removed if the city is\
- celebrating; see Happiness.)\
-\n\n\
-Under Despotism, each of your cities can support a number of\
- military units equal to its size without paying shields for\
- upkeep.  (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Despotism: each military unit\
- inside a city will keep one unhappy citizen content.  (Or at least,\
- unhappy citizens will act content, and will not cause disorder.)\
 ")
 
 ;------------------------------------------------------------------------
@@ -147,14 +97,6 @@
 graphic_alt = "-"
 ai_better   = "Communism"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("King")
 ruler_female_title = _("Queen")
 
@@ -164,19 +106,6 @@
 \n\n\
 Monarchy suffers the same small amount of corruption that the\
  Republic does.\
-\n\n\
-Settlers consume 1 food per turn under Monarchy.\
-\n\n\
-If a city governed by a Monarchy is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade.  See Happiness for details.\
-\n\n\
-Under Monarchy, your cities can support up to 3 military units\
- without paying shields for upkeep.  (Additional units require 1\
- production shield each.)\
-\n\n\
-You may impose martial law under Monarchy: each military unit in a\
- city will keep one unhappy citizen content.\
 ")
 
 ;------------------------------------------------------------------------
@@ -189,14 +118,6 @@
 graphic     = "gov.communism"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("Comrade")
 ruler_female_title = _("Comrade")
 
@@ -208,25 +129,7 @@
 \n\n\
 Under Communism, corruption does not vary by distance from the\
  capital; all cities (including the capital) have a modest amount\
- of corruption.  In addition, Communist cities more than 10 squares\
- away from the capital are considered to be only 10 squares away when\
- computing the cost of inciting a revolt (see Units, Diplomat).\
-\n\n\
-Settlers consume 1 food per turn under Communism.\
-\n\n\
-If a city governed by Communism is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade.  See Happiness for details.\
-\n\n\
-Diplomats and Spies created under Communism are always veterans.\
-\n\n\
-Under Communism, your cities can support up to 3 military units\
- without paying shields for upkeep.  (Additional units require 1\
- production shield each.)\
-\n\n\
-You may impose martial law under Communism: each military unit inside\
- a city will keep one unhappy citizen content.  (Or at least, unhappy\
- citizens will act content, and will not cause disorder.)\
+ of corruption.\
 ")
 
 ;------------------------------------------------------------------------
@@ -239,14 +142,6 @@
 graphic     = "gov.republic"
 graphic_alt = "-"
 
-production_trade_bonus    = 1, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("Consul")
 ruler_female_title = _("Consul")
 
@@ -257,29 +152,6 @@
  degree of freedom.  Citizens under the Republic become unhappy\
  easily, but the self-sufficiency of your citizens allows high levels\
  of trade.\
-\n\n\
-Cities under the Republic suffer a small amount of corruption.\
-\n\n\
-Settlers consume 2 food per turn under the Republic.  Squares with\
- at least 1 trade resource get a trade bonus of 1 under the Republic.\
-\n\n\
-Republican cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-Under the Republic, military units require 1 production shield each\
- for upkeep.  In addition the following units are considered\
- aggressive units:\
-\n\n\
-- units with an attack strength greater than 0 which are not\
- inside a city or inside a fortress within 3 squares of a friendly\
- city\
-\n\n\
-- air units (including missiles and helicopters)\
- with an attack strength greater than 0, regardless of their\
- location\
-\n\n\
-The citizens of a city will tolerate 1 aggressive unit; subsequent\
- units will generate 1 unhappy citizen each.\
 ")
 
 ;------------------------------------------------------------------------
@@ -292,14 +164,6 @@
 graphic     = "gov.democracy"
 graphic_alt = "-"
 
-production_trade_bonus    = 1, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("President")
 ruler_female_title = _("President")
 
@@ -309,26 +173,6 @@
  offers the most potential for unhappiness.  There is no corruption\
  during Democracy, but citizens become very upset during wars.\
 \n\n\
-Settlers consume 2 food per turn under Democracy.  Squares with\
- at least 1 trade resource get a trade bonus of 1 under Democracy.\
-\n\n\
-Democratic cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-Under Democracy, military units require 1 production shield each for\
- upkeep.  In addition the following units generate unhappiness:\
-\n\n\
-- Units with an attack strength greater than 0 which are not\
- inside a city, or inside a fortress within 3 squares of a\
- friendly city, generate 2 unhappy citizens.\
-\n\n\
-- Air units with an attack strength greater than 0 which are\
- inside a city generate only 1 unhappy citizen.\
-\n\n\
-If a city remains in disorder more than 2 turns under Democratic\
- rule, the citizens will spontaneously revolt and plunge your\
- civilization into Anarchy.\
-\n\n\
 Because (happy) citizens of Democracy believe strongly in the\
  government, their loyalty is unswerving.  Military units of\
  Democratic civilizations cannot be bribed, and Democratic cities\
Index: data/civ2/effects.ruleset
===================================================================
--- data/civ2/effects.ruleset   (revision 11322)
+++ data/civ2/effects.ruleset   (working copy)
@@ -16,6 +16,67 @@
 ; /* <-- avoid gettext warnings
 ; */ <-- avoid gettext warnings
 
+[effect_gov_tile_bonus_0]
+name    = "Output_Penalty_Tile"
+value   = 2
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Anarchy", "Player"
+    }
+
+[effect_gov_tile_bonus_1]
+name    = "Output_Penalty_Tile"
+value   = 2
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Despotism", "Player"
+    }
+
+[effect_gov_tile_bonus_2]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "OutputType", "Trade", "Local"
+      "Gov", "Monarchy", "Player"
+    }
+
+[effect_gov_tile_bonus_3]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "OutputType", "Trade", "Local"
+      "Gov", "Communism", "Player"
+    }
+
+[effect_gov_tile_bonus_4]
+name    = "Output_Inc_Tile"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Republic", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
+[effect_gov_tile_bonus_5]
+name    = "Output_Inc_Tile"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Democracy", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
+[effect_gov_tile_bonus_6]
+name    = "Output_Inc_Tile_Celebrate"
+value   = 1
+reqs  =
+    { "type",       "name",      "range"
+      "Gov", "Fundamentalism", "Player"
+      "OutputType", "Trade", "Local"
+    }
+
 [effect_corruption_anarchy0]
 name  = "Output_Waste"
 value = 37
Index: data/civ2/governments.ruleset
===================================================================
--- data/civ2/governments.ruleset       (revision 11322)
+++ data/civ2/governments.ruleset       (working copy)
@@ -37,11 +37,6 @@
 ;               should be a standard tag if preferred is not;
 ;              otherwise may be "-"
 
-; production_*_bonus   = added to base production for each worked tile;
-;                       second value is used instead when city is celebrating
-; production_*_penalty = if non-zero, tile production above this amount is 
-;                       reduced by one; second value used when celebrating
-
 ; ruler_titles = ruler titles by nation, "-" is default, and non-matched 
 ;               nations are ignored 
 
@@ -56,14 +51,6 @@
 graphic     = "gov.anarchy"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 0
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty   = 2, 0
-
 ruler_male_title = _("Mr.")
 ruler_female_title = _("Ms.")
 
@@ -75,20 +62,6 @@
 \n\n\
 Anarchy offers slightly less corruption and waste than Despotism, but\
  slightly more unhappiness.\
-\n\n\
-Settlers consume 1 food per turn under Anarchy.  Squares which would\
- normally yield more than 2 units of food, shields or trade suffer\
- a 1-unit penalty (e.g., an irrigated grassland square which would\
- normally yield 3 food only yields 2 food while you are in Anarchy).\
- (This penalty is removed if the city is celebrating; see Happiness.)\
-\n\n\
-Under Anarchy, each of your cities can support a number of military\
- units equal to its size without paying shields for upkeep.\
- (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Anarchy: each military unit inside\
- a city will keep one unhappy citizen content.  (Or at least, unhappy\
- citizens will act content, and will not cause disorder.)\
 ")
 
 ;------------------------------------------------------------------------
@@ -100,14 +73,6 @@
 graphic_alt = "-"
 ai_better   = "Monarchy"
 
-production_trade_bonus    = 0, 0
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty   = 2, 0
-
 ruler_male_title = _("Emperor")
 ruler_female_title = _("Empress")
 
@@ -117,23 +82,6 @@
 \n\n\
 Despotism suffers the highest level of corruption and waste of all\
  forms of government.\
-\n\n\
-Settlers consume 1 food per turn under Despotism.  Squares which\
- would normally yield more than 2 units of food, shields or trade\
- suffer a 1-unit penalty (e.g., an irrigated grassland square which\
- would normally yield 3 food only yields 2 food while you are under\
- Despotic rule).  (This penalty is removed if the city is\
- celebrating; see Happiness.)\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 60%.\
-\n\n\
-Under Despotism, each of your cities can support a number of\
- military units equal to its size without paying shields for\
- upkeep.  (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Despotism: each military unit\
- inside a city will keep one unhappy citizen content.  (Or at least,\
- unhappy citizens will act content, and will not cause disorder.)\
 ")
 
 ;------------------------------------------------------------------------
@@ -147,14 +95,6 @@
 graphic_alt = "-"
 ai_better   = "Communism"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("King")
 ruler_female_title = _("Queen")
 
@@ -164,22 +104,6 @@
 \n\n\
 Monarchy suffers the same small amount of corruption and waste that\
  the Republic does.\
-\n\n\
-Settlers consume 1 food per turn under Monarchy.\
-\n\n\
-If a city governed by a Monarchy is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade.  See Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 70%.\
-\n\n\
-Under Monarchy, your cities can support up to 3 military units\
- without paying shields for upkeep.  (Additional units require 1\
- production shield each.)\
-\n\n\
-You may impose limited martial law under Monarchy: each military\
- unit in a city, up to a maximum of 3, will keep one unhappy citizen\
- content.\
 ")
 
 ;------------------------------------------------------------------------
@@ -192,14 +116,6 @@
 graphic     = "gov.communism"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("Comrade")
 ruler_female_title = _("Comrade")
 
@@ -211,27 +127,7 @@
 \n\n\
 Under Communism, corruption and waste does not vary by distance from\
  the capital; all cities (including the capital) have a modest amount\
- of corruption.  In addition, Communist cities more than 10 squares\
- away from the capital are considered to be only 10 squares away when\
- computing the cost of inciting a revolt (see Units, Diplomat).\
-\n\n\
-Settlers consume 2 food per turn under Communism.\
-\n\n\
-If a city governed by Communism is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade.  See Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 80%.\
-\n\n\
-Diplomats and Spies created under Communism are always veterans.\
-\n\n\
-Under Communism, your cities can support up to 3 military units\
- without paying shields for upkeep.  (Additional units require 1\
- production shield each.)\
-\n\n\
-You impose limited but efficient martial law under Communism.  Each\
- military unit inside a city, up to a maximum of 3, will keep 2\
- unhappy citizens content.\
+ of corruption.\
 ")
 
 ;------------------------------------------------------------------------
@@ -244,14 +140,6 @@
 graphic     = "gov.fundamentalism"
 graphic_alt = "-"
 
-production_trade_bonus    = 0, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("High Priest")
 ruler_female_title = _("High Priestess")
 
@@ -265,25 +153,6 @@
  devoted to their beliefs, and are usually willing to die to\
  preserve them.\
 \n\n\
-Under Fundamentalism, your cities can support up to 10 military\
- units without paying shields for upkeep. (Additional units\
- require 1 production shield each.) Fanatics units need no upkeep.\
-\n\n\
-Settlers consume 2 food per turn under Fundamentalism.\
-\n\n\
-If a city governed by Fundamentalism is celebrating, it will receive\
- a bonus of 1 trade in each square which already produces at least 1\
- trade.  See Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 80%.\
-\n\n\
-The maximum effective rate for science is 50%, the surplus is used\
- for collecting tax, and furthermore the science production is\
- halved.\
-\n\n\
-Cities under Fundamentalism suffer a small amount of corruption and\
- waste.\
-\n\n\
 Improvement that normally convert unhappy citizens to content\
  citizens, produces `tithes' (gold) equivalent to the number\
  of people they would convert, and require no maintenance.\
@@ -299,14 +168,6 @@
 graphic     = "gov.republic"
 graphic_alt = "-"
 
-production_trade_bonus    = 1, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("Consul")
 ruler_female_title = _("Consul")
 
@@ -317,32 +178,6 @@
  degree of freedom.  Citizens under the Republic become unhappy\
  easily, but the self-sufficiency of your citizens allows high levels\
  of trade.\
-\n\n\
-Cities under the Republic suffer a small amount of corruption and\
- waste.\
-\n\n\
-Settlers consume 2 food per turn under the Republic.  Squares with\
- at least 1 trade resource get a trade bonus of 1 under the Republic.\
-\n\n\
-Republican cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 80%.\
-\n\n\
-Under the Republic, military units require 1 production shield each\
- for upkeep.  In addition the following units are considered\
- aggressive units:\
-\n\n\
-- units with an attack strength greater than 0 which are not\
- inside a city or inside a fortress within 3 squares of a friendly\
- city\
-\n\n\
-- air units (including missiles and helicopters, but not fighters)\
- with an attack strength greater than 0, regardless of their\
- location\
-\n\n\
-The citizens of a city will tolerate 1 aggressive unit; subsequent\
- units will generate 1 unhappy citizen each.\
 ")
 
 ;------------------------------------------------------------------------
@@ -355,14 +190,6 @@
 graphic     = "gov.democracy"
 graphic_alt = "-"
 
-production_trade_bonus    = 1, 1
-production_shield_bonus   = 0, 0
-production_food_bonus     = 0, 0
-
-production_trade_penalty  = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty   = 0, 0
-
 ruler_male_title = _("President")
 ruler_female_title = _("President")
 
@@ -373,30 +200,6 @@
  or waste during Democracy, but citizens become very upset during\
  wars.\
 \n\n\
-Settlers consume 2 food per turn under Democracy.  Squares with\
- at least 1 trade resource get a trade bonus of 1 under Democracy.\
-\n\n\
-Democratic cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-There are no taxation limits under Democracy; you can set science, tax\
- or luxuries to 100%.\
-\n\n\
-Under Democracy, military units require 1 production shield each for\
- upkeep.  In addition the following units generate unhappiness:\
-\n\n\
-- Units with an attack strength greater than 0 which are not\
- inside a city, or inside a fortress within 3 squares of a\
- friendly city, generate 2 unhappy citizens.\
-\n\n\
-- Air units with an attack strength greater than 0 which are\
- inside a city generate only 1 unhappy citizen.  Fighters generate\
- no unhappiness.\
-\n\n\
-If a city remains in disorder more than 2 turns under Democratic\
- rule, the citizens will spontaneously revolt and plunge your\
- civilization into Anarchy.\
-\n\n\
 Because (happy) citizens of Democracy believe strongly in the\
  government, their loyalty is unswerving.  Military units of\
  Democratic civilizations cannot be bribed, and Democratic cities\
Index: common/packets.def
===================================================================
--- common/packets.def  (revision 11322)
+++ common/packets.def  (working copy)
@@ -1115,11 +1115,6 @@
   UINT8 reqs_count;
   REQUIREMENT reqs[MAX_NUM_REQS:reqs_count];
 
-  UINT8 output_before_penalty[O_MAX];
-  UINT8 celeb_output_before_penalty[O_MAX];
-  UINT8 output_inc_tile[O_MAX];
-  UINT8 celeb_output_inc_tile[O_MAX];
-
   UINT8 num_ruler_titles;
        
   STRING name[MAX_LEN_NAME];
Index: common/city.c
===================================================================
--- common/city.c       (revision 11322)
+++ common/city.c       (working copy)
@@ -650,29 +650,27 @@
   }
 
   if (pcity) {
-    struct government *g = get_gov_pcity(pcity);
-    int before_penalty = (is_celebrating
-                         ? g->celeb_output_before_penalty[otype]
-                         : g->output_before_penalty[otype]);
-
     prod += get_city_tile_output_bonus(pcity, ptile, output,
                                       EFT_OUTPUT_ADD_TILE);
-
-    /* Government & effect bonus/penalty. */
     if (prod > 0) {
-      prod += (is_celebrating
-           ? g->celeb_output_inc_tile[otype]
-           : g->output_inc_tile[otype]);
+      int penalty_limit = get_city_tile_output_bonus(pcity, ptile, output,
+                                                   EFT_OUTPUT_PENALTY_TILE);
+
+      if (is_celebrating) {
+        prod += get_city_tile_output_bonus(pcity, ptile, output,
+                                           EFT_OUTPUT_INC_TILE_CELEBRATE);
+        penalty_limit = 0; /* no penalty if celebrating */
+      }
       prod += get_city_tile_output_bonus(pcity, ptile, output,
-                                        EFT_OUTPUT_INC_TILE);
+                                         EFT_OUTPUT_INC_TILE);
+      prod += (prod 
+               * get_city_tile_output_bonus(pcity, ptile, output,
+                                            EFT_OUTPUT_PER_TILE)) 
+              / 100;
+      if (!is_celebrating && penalty_limit > 0 && prod > penalty_limit) {
+        prod--;
+      }
     }
-
-    prod += (prod * get_city_tile_output_bonus(pcity, ptile, output,
-                                              EFT_OUTPUT_PER_TILE)) / 100;
-
-    if (before_penalty > 0 && prod > before_penalty) {
-      prod--;
-    }
   }
 
   if (contains_special(tile.special, S_POLLUTION)) {
Index: common/capstr.c
===================================================================
--- common/capstr.c     (revision 11322)
+++ common/capstr.c     (working copy)
@@ -82,7 +82,7 @@
  *     as long as possible.  We want to maintain network compatibility with
  *     the stable branch for as long as possible.
  */
-#define CAPABILITY "+Freeciv.Devel.2005.Dec.03"
+#define CAPABILITY "+Freeciv.Devel.2005.Dec.09"
 
 void init_our_capability(void)
 {
Index: common/effects.c
===================================================================
--- common/effects.c    (revision 11322)
+++ common/effects.c    (working copy)
@@ -113,7 +113,9 @@
   "Upkeep_Factor",
   "Unit_Upkeep_Free_Per_City",
   "Output_Waste",
-  "Output_Waste_By_Distance"
+  "Output_Waste_By_Distance",
+  "Output_Penalty_Tile",
+  "Output_Inc_Tile_Celebrate"
 };
 
 static bool initialized = FALSE;
Index: common/effects.h
===================================================================
--- common/effects.h    (revision 11322)
+++ common/effects.h    (working copy)
@@ -33,9 +33,9 @@
   EFT_SPECIALIST_OUTPUT,
   EFT_OUTPUT_BONUS,
   EFT_OUTPUT_BONUS_2,
-  EFT_OUTPUT_ADD_TILE,
-  EFT_OUTPUT_INC_TILE,
-  EFT_OUTPUT_PER_TILE,
+  EFT_OUTPUT_ADD_TILE,  /* add to each worked tile */
+  EFT_OUTPUT_INC_TILE,  /* add to each worked tile that already has output */
+  EFT_OUTPUT_PER_TILE,  /* increase tile output by given % */
   EFT_OUTPUT_WASTE_PCT,
   EFT_FORCE_CONTENT,
   /* TODO: EFT_FORCE_CONTENT_PCT, */
@@ -102,6 +102,8 @@
   EFT_UNIT_UPKEEP_FREE_PER_CITY, /* this many units are free from upkeep */
   EFT_OUTPUT_WASTE,
   EFT_OUTPUT_WASTE_BY_DISTANCE,
+  EFT_OUTPUT_PENALTY_TILE, /* -1 penalty to tiles producing more than this */
+  EFT_OUTPUT_INC_TILE_CELEBRATE,
   EFT_LAST     /* keep this last */
 };
 
Index: common/government.h
===================================================================
--- common/government.h (revision 11322)
+++ common/government.h (working copy)
@@ -54,26 +54,6 @@
   struct ruler_title *ruler_titles;
   int   num_ruler_titles;
 
-  /* government production penalties (when celebrating and when not) */
-  int output_before_penalty[O_MAX];
-  int celeb_output_before_penalty[O_MAX];
-
-  /* government production bonuses.  These act as an EFT_XXX_INC_TILE
-   * effect.  There are separate values for celebrating versus normal
-   * cities. */
-  int output_inc_tile[O_MAX];
-  int celeb_output_inc_tile[O_MAX];
-
-  /* waste/corruption modifiers - see governments.ruleset for more detail */
-  struct gov_waste {
-    int level;
-    int modifier;
-    int fixed_distance;
-    int distance_factor;
-    int extra_distance;
-    int max_distance_cap;
-  } waste[O_MAX];
-
   char *helptext;
 
   /* AI cached data for this government. */
Index: ai/aicity.c
===================================================================
--- ai/aicity.c (revision 11322)
+++ ai/aicity.c (working copy)
@@ -347,7 +347,6 @@
       case EFT_OUTPUT_WASTE_BY_DISTANCE:
       case EFT_OUTPUT_WASTE_PCT:
       case EFT_SPECIALIST_OUTPUT:
-      case EFT_NO_DIPLOMACY:
          break;
 
       case EFT_CITY_VISION_RADIUS_SQ:
@@ -643,6 +642,9 @@
         case EFT_INSPIRE_PARTISANS:
         case EFT_HAPPINESS_TO_GOLD:
         case EFT_FANATICS:
+        case EFT_NO_DIPLOMACY:
+        case EFT_OUTPUT_PENALTY_TILE:
+        case EFT_OUTPUT_INC_TILE_CELEBRATE:
        case EFT_TRADE_REVENUE_BONUS:
           break;
        case EFT_LAST:
Index: ai/aihand.c
===================================================================
--- ai/aihand.c (revision 11322)
+++ ai/aihand.c (working copy)
@@ -320,9 +320,7 @@
       bonus += get_player_bonus(pplayer, EFT_INSPIRE_PARTISANS) ? 3 : 0;
       bonus += get_player_bonus(pplayer, EFT_RAPTURE_GROW) ? 2 : 0;
       bonus += get_player_bonus(pplayer, EFT_FANATICS) ? 3 : 0;
-      output_type_iterate(o) {
-       val += gov->output_inc_tile[o];
-      } output_type_iterate_end;
+      bonus += get_player_bonus(pplayer, EFT_OUTPUT_INC_TILE) * 8;
 
       val += (val * bonus) / 100;
 
Index: client/text.c
===================================================================
--- client/text.c       (revision 11322)
+++ client/text.c       (working copy)
@@ -47,7 +47,9 @@
     int x = get_output_tile(ptile, i);
 
     if (game.player_ptr) {
-      before_penalty = game.player_ptr->government->output_before_penalty[i];
+      before_penalty = get_player_output_bonus(game.player_ptr,
+                                               get_output_type(i),
+                                               EFT_OUTPUT_PENALTY_TILE);
     }
 
     if (before_penalty > 0 && x > before_penalty) {
Index: client/packhand.c
===================================================================
--- client/packhand.c   (revision 11322)
+++ client/packhand.c   (working copy)
@@ -2258,13 +2258,6 @@
   }
   assert(gov->reqs.size == p->reqs_count);
 
-  output_type_iterate(o) {
-    gov->output_before_penalty[o] = p->output_before_penalty[o];
-    gov->celeb_output_before_penalty[o] = p->celeb_output_before_penalty[o];
-    gov->output_inc_tile[o] = p->output_inc_tile[o];
-    gov->celeb_output_inc_tile[o] = p->celeb_output_inc_tile[o];
-  } output_type_iterate_end;
-  
   gov->num_ruler_titles    = p->num_ruler_titles;
     
   sz_strlcpy(gov->name_orig, p->name);
Index: client/helpdata.c
===================================================================
--- client/helpdata.c   (revision 11322)
+++ client/helpdata.c   (working copy)
@@ -1265,14 +1265,16 @@
   /* Effects */
   sprintf(buf + strlen(buf), _("Features:\n"));
   effect_list_iterate(get_req_source_effects(&source), peffect) {
-    Output_type_id output = O_LAST;
+    Output_type_id output_type = O_LAST;
     struct unit_class *unitclass = NULL;
     enum unit_flag_id unitflag = F_LAST;
+    const char *output = "All";
 
     /* Grab output type, if there is one */
     requirement_list_iterate(peffect->reqs, preq) {
       if (preq->source.type == REQ_OUTPUTTYPE) {
-        output = preq->source.value.outputtype;
+        output_type = preq->source.value.outputtype;
+        output = get_output_name(output_type);
       } else if (preq->source.type == REQ_UNITCLASS) {
         unitclass = preq->source.value.unitclass;
       } else if (preq->source.type == REQ_UNITFLAG) {
@@ -1298,20 +1300,19 @@
                 peffect->value);
         break;
       case EFT_UPKEEP_FACTOR:
-        if (peffect->value > 1 && output != O_LAST) {
+        if (peffect->value > 1 && output_type != O_LAST) {
           sprintf(buf + strlen(buf), _("* You pay %d times normal %s "
-                  "upkeep for your units.\n"), peffect->value,
-                  get_output_name(output));
+                  "upkeep for your units.\n"), peffect->value, output);
         } else if (peffect->value > 1) {
           sprintf(buf + strlen(buf), _("* You pay %d times normal "
                   "upkeep for your units.\n"), peffect->value);
         }
         break;
       case EFT_UNIT_UPKEEP_FREE_PER_CITY:
-        if (output != O_LAST) {
+        if (output_type != O_LAST) {
           sprintf(buf + strlen(buf), _("* Each of your cities will avoid "
                   "paying %d %s towards unit upkeep.\n"), peffect->value, 
-                  get_output_name(output));
+                  output);
         } else {
           sprintf(buf + strlen(buf), _("* Each of your cities will avoid "
                   "paying %d towards unit upkeep.\n"), peffect->value);
@@ -1404,68 +1405,49 @@
           sprintf(buf + strlen(buf), _("* Veteran units.\n"));
         }
         break;
+      case EFT_OUTPUT_PENALTY_TILE:
+        sprintf(buf + strlen(buf), _("* Each worked tile that gives more "
+                "than %d %s will suffer a -1 penalty when not "
+                "celebrating.\n"), peffect->value, output);
+        break;
+      case EFT_OUTPUT_INC_TILE_CELEBRATE:
+        sprintf(buf + strlen(buf), _("* Each worked tile with at least 1 "
+                "%s will yield %d additional %s when celebrating.\n"),
+                output, peffect->value, output);
+        break;
+      case EFT_OUTPUT_INC_TILE:
+        sprintf(buf + strlen(buf), _("* Each worked tile with at least 1 "
+                "%s will yield %d additional %s.\n"), output, 
+                peffect->value, output);
+        break;
+      case EFT_OUTPUT_WASTE:
+        if (peffect->value > 30) {
+          sprintf(buf + strlen(buf), _("* %s production will suffer "
+                  "massive waste.\n"), output);
+        } else if (peffect->value >= 15) {
+          sprintf(buf + strlen(buf), _("* %s production will suffer "
+                  "some waste.\n"), output);
+        } else {
+          sprintf(buf + strlen(buf), _("* %s production will suffer "
+                  "a small amount of waste.\n"), output);
+        }
+        break;
+      case EFT_OUTPUT_WASTE_BY_DISTANCE:
+        if (peffect->value >= 3) {
+          sprintf(buf + strlen(buf), _("* %s waste will increase quickly "
+                  "with distance from capital.\n"), output);
+        } else if (peffect->value == 2) {
+          sprintf(buf + strlen(buf), _("* %s waste will increase "
+                  "with distance from capital.\n"), output);
+        } else {
+          sprintf(buf + strlen(buf), _("* %s waste will increase slowly "
+                  "with distance from capital.\n"), output);
+        }
       default:
         break;
     }
   } effect_list_iterate_end;
 
-  output_type_iterate(ot) {
-    if (gov->output_before_penalty[ot] > 0
-        && gov->output_before_penalty[ot] 
-           == gov->celeb_output_before_penalty[ot]) {
-      sprintf(buf + strlen(buf),
-             _("* Each worked tile that gives more "
-               "than %d %s will suffer a -1 penalty.\n"), 
-              gov->output_before_penalty[ot], get_output_name(ot));
-    } else if (gov->output_before_penalty[ot] > 0) {
-      sprintf(buf + strlen(buf),
-             _("* Each worked tile that gives more than %d %s will "
-               "suffer a -1 penalty when not celebrating.\n"), 
-              gov->output_before_penalty[ot], get_output_name(ot));
-    }
-  } output_type_iterate_end;
-  output_type_iterate(ot) {
-    if (gov->celeb_output_before_penalty[ot] > 0
-        && gov->celeb_output_before_penalty[ot] 
-           != gov->output_before_penalty[ot]) {
-      sprintf(buf + strlen(buf),
-             _("* Each worked tile that gives more "
-               "than %d %s will suffer a -1 penalty when celebrating.\n"), 
-              gov->celeb_output_before_penalty[ot], get_output_name(ot));
-    }
-  } output_type_iterate_end;
-  output_type_iterate(ot) {
-    if (gov->output_inc_tile[ot] > 0
-        && gov->output_inc_tile[ot] == gov->celeb_output_inc_tile[ot]) {
-      sprintf(buf + strlen(buf),
-             _("* Each worked tile with at least 1 "
-               "%s will yield %d additional %s.\n"), get_output_name(ot), 
-              gov->output_inc_tile[ot], get_output_name(ot));
-    } else if (gov->output_inc_tile[ot] > 0) {
-      sprintf(buf + strlen(buf),
-             _("* Each worked tile with at least 1 "
-               "%s will yield %d additional %s when not celebrating.\n"), 
-              get_output_name(ot), gov->output_inc_tile[ot], 
-              get_output_name(ot));
-    }
-  } output_type_iterate_end;
-  output_type_iterate(ot) {
-    if (gov->celeb_output_inc_tile[ot] > 0
-        && gov->celeb_output_inc_tile[ot] != gov->output_inc_tile[ot]) {
-      sprintf(buf + strlen(buf),
-             _("* Each worked tile with at least 1 "
-               "%s will yield %d additional %s when celebrating.\n"), 
-             get_output_name(ot), gov->celeb_output_inc_tile[ot], 
-             get_output_name(ot));
-    }
-  } output_type_iterate_end;
-  output_type_iterate(ot) {
-    if (gov->waste[ot].level > 0) {
-      sprintf(buf + strlen(buf), _("* %s production will suffer "
-                                  "waste.\n"), get_output_name(ot));
-    }
-  } output_type_iterate_end;
-
   unit_type_iterate(utype) {
     if (utype->gov_requirement == gov) {
       sprintf(buf + strlen(buf),

[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] Re: (PR#14760) More govt generalization, Per I. Mathisen <=