Author: cazfi
Date: Sat Oct 17 21:46:17 2015
New Revision: 30117

URL: http://svn.gna.org/viewcvs/freeciv?rev=30117&view=rev
Log:
Added unit type flag "NewCityGamesOnly".
Units with that flag are not available in scenario games where
founding new cities is prevented. 

See patch #6424

Modified:
    trunk/client/helpdata.c
    trunk/common/unittype.c
    trunk/common/unittype.h
    trunk/data/alien/units.ruleset
    trunk/data/civ2civ3/units.ruleset
    trunk/data/classic/units.ruleset
    trunk/data/experimental/units.ruleset
    trunk/data/multiplayer/units.ruleset
    trunk/data/stub/units.ruleset

Modified: trunk/client/helpdata.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/helpdata.c?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/client/helpdata.c     (original)
+++ trunk/client/helpdata.c     Sat Oct 17 21:46:17 2015
@@ -3676,6 +3676,14 @@
   if (utype_has_flag(utype, UTYF_BARBARIAN_ONLY)) {
     CATLSTR(buf, bufsz, _("* Only barbarians may build this.\n"));
   }
+  if (utype_has_flag(utype, UTYF_NEWCITY_GAMES_ONLY)) {
+    CATLSTR(buf, bufsz, _("* This may be built only in games where new cities 
are allowed.\n"));
+    if (game.scenario.prevent_new_cities) {
+      CATLSTR(buf, bufsz, _("  - New cities are not allowed in current 
game.\n"));
+    } else {
+      CATLSTR(buf, bufsz, _("  - New cities are allowed in current game.\n"));
+    }
+  }
   nations_iterate(pnation) {
     int i, count = 0;
 

Modified: trunk/common/unittype.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/unittype.c?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/common/unittype.c     (original)
+++ trunk/common/unittype.c     Sat Oct 17 21:46:17 2015
@@ -1151,6 +1151,12 @@
       && !is_barbarian(p)) {
     /* Unit can be built by barbarians only and this player is
      * not barbarian */
+    return FALSE;
+  }
+
+  if (utype_has_flag(punittype, UTYF_NEWCITY_GAMES_ONLY)
+      && game.scenario.prevent_new_cities) {
+    /* Unit is usable only in games where founding of new cities is allowed. */
     return FALSE;
   }
 

Modified: trunk/common/unittype.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/unittype.h?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/common/unittype.h     (original)
+++ trunk/common/unittype.h     Sat Oct 17 21:46:17 2015
@@ -224,47 +224,50 @@
  * native terrain even if slow_invasions is turned on. */
 #define SPECENUM_VALUE28 UTYF_BEACH_LANDER
 #define SPECENUM_VALUE28NAME N_("?unitflag:BeachLander")
-
-#define SPECENUM_VALUE29 UTYF_USER_FLAG_1
-#define SPECENUM_VALUE30 UTYF_USER_FLAG_2
-#define SPECENUM_VALUE31 UTYF_USER_FLAG_3
-#define SPECENUM_VALUE32 UTYF_USER_FLAG_4
-#define SPECENUM_VALUE33 UTYF_USER_FLAG_5
-#define SPECENUM_VALUE34 UTYF_USER_FLAG_6
-#define SPECENUM_VALUE35 UTYF_USER_FLAG_7
-#define SPECENUM_VALUE36 UTYF_USER_FLAG_8
-#define SPECENUM_VALUE37 UTYF_USER_FLAG_9
-#define SPECENUM_VALUE38 UTYF_USER_FLAG_10
-#define SPECENUM_VALUE39 UTYF_USER_FLAG_11
-#define SPECENUM_VALUE40 UTYF_USER_FLAG_12
-#define SPECENUM_VALUE41 UTYF_USER_FLAG_13
-#define SPECENUM_VALUE42 UTYF_USER_FLAG_14
-#define SPECENUM_VALUE43 UTYF_USER_FLAG_15
-#define SPECENUM_VALUE44 UTYF_USER_FLAG_16
-#define SPECENUM_VALUE45 UTYF_USER_FLAG_17
-#define SPECENUM_VALUE46 UTYF_USER_FLAG_18
-#define SPECENUM_VALUE47 UTYF_USER_FLAG_19
-#define SPECENUM_VALUE48 UTYF_USER_FLAG_20
-#define SPECENUM_VALUE49 UTYF_USER_FLAG_21
-#define SPECENUM_VALUE50 UTYF_USER_FLAG_22
-#define SPECENUM_VALUE51 UTYF_USER_FLAG_23
-#define SPECENUM_VALUE52 UTYF_USER_FLAG_24
-#define SPECENUM_VALUE53 UTYF_USER_FLAG_25
-#define SPECENUM_VALUE54 UTYF_USER_FLAG_26
-#define SPECENUM_VALUE55 UTYF_USER_FLAG_27
-#define SPECENUM_VALUE56 UTYF_USER_FLAG_28
-#define SPECENUM_VALUE57 UTYF_USER_FLAG_29
-#define SPECENUM_VALUE58 UTYF_USER_FLAG_30
-#define SPECENUM_VALUE59 UTYF_USER_FLAG_31
-#define SPECENUM_VALUE60 UTYF_USER_FLAG_32
-#define SPECENUM_VALUE61 UTYF_USER_FLAG_33
-#define SPECENUM_VALUE62 UTYF_USER_FLAG_34
-#define SPECENUM_VALUE63 UTYF_USER_FLAG_35
-#define SPECENUM_VALUE64 UTYF_USER_FLAG_36
-#define SPECENUM_VALUE65 UTYF_USER_FLAG_37
-#define SPECENUM_VALUE66 UTYF_USER_FLAG_38
-#define SPECENUM_VALUE67 UTYF_USER_FLAG_39
-#define SPECENUM_VALUE68 UTYF_USER_FLAG_40
+/* Unit can't be built in scenarios where founding new cities is prevented. */
+#define SPECENUM_VALUE29 UTYF_NEWCITY_GAMES_ONLY
+#define SPECENUM_VALUE29NAME N_("?unitflag:NewCityGamesOnly")
+
+#define SPECENUM_VALUE30 UTYF_USER_FLAG_1
+#define SPECENUM_VALUE31 UTYF_USER_FLAG_2
+#define SPECENUM_VALUE32 UTYF_USER_FLAG_3
+#define SPECENUM_VALUE33 UTYF_USER_FLAG_4
+#define SPECENUM_VALUE34 UTYF_USER_FLAG_5
+#define SPECENUM_VALUE35 UTYF_USER_FLAG_6
+#define SPECENUM_VALUE36 UTYF_USER_FLAG_7
+#define SPECENUM_VALUE37 UTYF_USER_FLAG_8
+#define SPECENUM_VALUE38 UTYF_USER_FLAG_9
+#define SPECENUM_VALUE39 UTYF_USER_FLAG_10
+#define SPECENUM_VALUE40 UTYF_USER_FLAG_11
+#define SPECENUM_VALUE41 UTYF_USER_FLAG_12
+#define SPECENUM_VALUE42 UTYF_USER_FLAG_13
+#define SPECENUM_VALUE43 UTYF_USER_FLAG_14
+#define SPECENUM_VALUE44 UTYF_USER_FLAG_15
+#define SPECENUM_VALUE45 UTYF_USER_FLAG_16
+#define SPECENUM_VALUE46 UTYF_USER_FLAG_17
+#define SPECENUM_VALUE47 UTYF_USER_FLAG_18
+#define SPECENUM_VALUE48 UTYF_USER_FLAG_19
+#define SPECENUM_VALUE49 UTYF_USER_FLAG_20
+#define SPECENUM_VALUE50 UTYF_USER_FLAG_21
+#define SPECENUM_VALUE51 UTYF_USER_FLAG_22
+#define SPECENUM_VALUE52 UTYF_USER_FLAG_23
+#define SPECENUM_VALUE53 UTYF_USER_FLAG_24
+#define SPECENUM_VALUE54 UTYF_USER_FLAG_25
+#define SPECENUM_VALUE55 UTYF_USER_FLAG_26
+#define SPECENUM_VALUE56 UTYF_USER_FLAG_27
+#define SPECENUM_VALUE57 UTYF_USER_FLAG_28
+#define SPECENUM_VALUE58 UTYF_USER_FLAG_29
+#define SPECENUM_VALUE59 UTYF_USER_FLAG_30
+#define SPECENUM_VALUE60 UTYF_USER_FLAG_31
+#define SPECENUM_VALUE61 UTYF_USER_FLAG_32
+#define SPECENUM_VALUE62 UTYF_USER_FLAG_33
+#define SPECENUM_VALUE63 UTYF_USER_FLAG_34
+#define SPECENUM_VALUE64 UTYF_USER_FLAG_35
+#define SPECENUM_VALUE65 UTYF_USER_FLAG_36
+#define SPECENUM_VALUE66 UTYF_USER_FLAG_37
+#define SPECENUM_VALUE67 UTYF_USER_FLAG_38
+#define SPECENUM_VALUE68 UTYF_USER_FLAG_39
+#define SPECENUM_VALUE69 UTYF_USER_FLAG_40
 /* Note that first role must have value next to last flag */
 
 #define UTYF_LAST_USER_FLAG UTYF_USER_FLAG_40
@@ -289,89 +292,89 @@
 
 #define SPECENUM_NAME unit_role_id
 /* is built first when city established */
-#define SPECENUM_VALUE69 L_FIRSTBUILD
-#define SPECENUM_VALUE69NAME N_("?unitflag:FirstBuild")
+#define SPECENUM_VALUE70 L_FIRSTBUILD
+#define SPECENUM_VALUE70NAME N_("?unitflag:FirstBuild")
 /* initial explorer unit */
-#define SPECENUM_VALUE70 L_EXPLORER
-#define SPECENUM_VALUE70NAME N_("?unitflag:Explorer")
+#define SPECENUM_VALUE71 L_EXPLORER
+#define SPECENUM_VALUE71NAME N_("?unitflag:Explorer")
 /* can be found in hut */
-#define SPECENUM_VALUE71 L_HUT
-#define SPECENUM_VALUE71NAME N_("?unitflag:Hut")
+#define SPECENUM_VALUE72 L_HUT
+#define SPECENUM_VALUE72NAME N_("?unitflag:Hut")
 /* can be found in hut, global tech required */
-#define SPECENUM_VALUE72 L_HUT_TECH
-#define SPECENUM_VALUE72NAME N_("?unitflag:HutTech")
+#define SPECENUM_VALUE73 L_HUT_TECH
+#define SPECENUM_VALUE73NAME N_("?unitflag:HutTech")
 /* is created in Partisan circumstances */
-#define SPECENUM_VALUE73 L_PARTISAN
-#define SPECENUM_VALUE73NAME N_("?unitflag:Partisan")
+#define SPECENUM_VALUE74 L_PARTISAN
+#define SPECENUM_VALUE74NAME N_("?unitflag:Partisan")
 /* ok on defense (AI) */
-#define SPECENUM_VALUE74 L_DEFEND_OK
-#define SPECENUM_VALUE74NAME N_("?unitflag:DefendOk")
+#define SPECENUM_VALUE75 L_DEFEND_OK
+#define SPECENUM_VALUE75NAME N_("?unitflag:DefendOk")
 /* primary purpose is defense (AI) */
-#define SPECENUM_VALUE75 L_DEFEND_GOOD
-#define SPECENUM_VALUE75NAME N_("?unitflag:DefendGood")
+#define SPECENUM_VALUE76 L_DEFEND_GOOD
+#define SPECENUM_VALUE76NAME N_("?unitflag:DefendGood")
 /* is useful for ferrying (AI) */
-#define SPECENUM_VALUE76 L_FERRYBOAT
-#define SPECENUM_VALUE76NAME N_("?unitflag:FerryBoat")
+#define SPECENUM_VALUE77 L_FERRYBOAT
+#define SPECENUM_VALUE77NAME N_("?unitflag:FerryBoat")
 /* barbarians unit, land only */
-#define SPECENUM_VALUE77 L_BARBARIAN
-#define SPECENUM_VALUE77NAME N_("?unitflag:Barbarian")
+#define SPECENUM_VALUE78 L_BARBARIAN
+#define SPECENUM_VALUE78NAME N_("?unitflag:Barbarian")
 /* barbarians unit, global tech required */
-#define SPECENUM_VALUE78 L_BARBARIAN_TECH
-#define SPECENUM_VALUE78NAME N_("?unitflag:BarbarianTech")
+#define SPECENUM_VALUE79 L_BARBARIAN_TECH
+#define SPECENUM_VALUE79NAME N_("?unitflag:BarbarianTech")
 /* barbarian boat */
-#define SPECENUM_VALUE79 L_BARBARIAN_BOAT
-#define SPECENUM_VALUE79NAME N_("?unitflag:BarbarianBoat")
+#define SPECENUM_VALUE80 L_BARBARIAN_BOAT
+#define SPECENUM_VALUE80NAME N_("?unitflag:BarbarianBoat")
 /* what barbarians should build */
-#define SPECENUM_VALUE80 L_BARBARIAN_BUILD
-#define SPECENUM_VALUE80NAME N_("BarbarianBuild")
+#define SPECENUM_VALUE81 L_BARBARIAN_BUILD
+#define SPECENUM_VALUE81NAME N_("BarbarianBuild")
 /* barbarians build when global tech */
-#define SPECENUM_VALUE81 L_BARBARIAN_BUILD_TECH
-#define SPECENUM_VALUE81NAME N_("?unitflag:BarbarianBuildTech")
+#define SPECENUM_VALUE82 L_BARBARIAN_BUILD_TECH
+#define SPECENUM_VALUE82NAME N_("?unitflag:BarbarianBuildTech")
 /* barbarian leader */
-#define SPECENUM_VALUE82 L_BARBARIAN_LEADER
-#define SPECENUM_VALUE82NAME N_("?unitflag:BarbarianLeader")
+#define SPECENUM_VALUE83 L_BARBARIAN_LEADER
+#define SPECENUM_VALUE83NAME N_("?unitflag:BarbarianLeader")
 /* sea raider unit */
-#define SPECENUM_VALUE83 L_BARBARIAN_SEA
-#define SPECENUM_VALUE83NAME N_("?unitflag:BarbarianSea")
+#define SPECENUM_VALUE84 L_BARBARIAN_SEA
+#define SPECENUM_VALUE84NAME N_("?unitflag:BarbarianSea")
 /* sea raider unit, global tech required */
-#define SPECENUM_VALUE84 L_BARBARIAN_SEA_TECH
-#define SPECENUM_VALUE84NAME N_("?unitflag:BarbarianSeaTech")
+#define SPECENUM_VALUE85 L_BARBARIAN_SEA_TECH
+#define SPECENUM_VALUE85NAME N_("?unitflag:BarbarianSeaTech")
 /* Startunit: Cities */
-#define SPECENUM_VALUE85 L_START_CITIES
-#define SPECENUM_VALUE85NAME N_("?unitflag:CitiesStartunit")
+#define SPECENUM_VALUE86 L_START_CITIES
+#define SPECENUM_VALUE86NAME N_("?unitflag:CitiesStartunit")
 /* Startunit: Worker */
-#define SPECENUM_VALUE86 L_START_WORKER
-#define SPECENUM_VALUE86NAME N_("?unitflag:WorkerStartunit")
+#define SPECENUM_VALUE87 L_START_WORKER
+#define SPECENUM_VALUE87NAME N_("?unitflag:WorkerStartunit")
 /* Startunit: Explorer */
-#define SPECENUM_VALUE87 L_START_EXPLORER
-#define SPECENUM_VALUE87NAME N_("?unitflag:ExplorerStartunit")
+#define SPECENUM_VALUE88 L_START_EXPLORER
+#define SPECENUM_VALUE88NAME N_("?unitflag:ExplorerStartunit")
 /* Startunit: King */
-#define SPECENUM_VALUE88 L_START_KING
-#define SPECENUM_VALUE88NAME N_("?unitflag:KingStartunit")
+#define SPECENUM_VALUE89 L_START_KING
+#define SPECENUM_VALUE89NAME N_("?unitflag:KingStartunit")
 /* Startunit: Diplomat */
-#define SPECENUM_VALUE89 L_START_DIPLOMAT
-#define SPECENUM_VALUE89NAME N_("?unitflag:DiplomatStartunit")
+#define SPECENUM_VALUE90 L_START_DIPLOMAT
+#define SPECENUM_VALUE90NAME N_("?unitflag:DiplomatStartunit")
 /* Startunit: Ferryboat */
-#define SPECENUM_VALUE90 L_START_FERRY
-#define SPECENUM_VALUE90NAME N_("?unitflag:FerryStartunit")
+#define SPECENUM_VALUE91 L_START_FERRY
+#define SPECENUM_VALUE91NAME N_("?unitflag:FerryStartunit")
 /* Startunit: DefendOk */
-#define SPECENUM_VALUE91 L_START_DEFEND_OK
-#define SPECENUM_VALUE91NAME N_("?unitflag:DefendOkStartunit")
+#define SPECENUM_VALUE92 L_START_DEFEND_OK
+#define SPECENUM_VALUE92NAME N_("?unitflag:DefendOkStartunit")
 /* Startunit: DefendGood */
-#define SPECENUM_VALUE92 L_START_DEFEND_GOOD
-#define SPECENUM_VALUE92NAME N_("?unitflag:DefendGoodStartunit")
+#define SPECENUM_VALUE93 L_START_DEFEND_GOOD
+#define SPECENUM_VALUE93NAME N_("?unitflag:DefendGoodStartunit")
 /* Startunit: AttackFast */
-#define SPECENUM_VALUE93 L_START_ATTACK_FAST
-#define SPECENUM_VALUE93NAME N_("?unitflag:AttackFastStartunit")
+#define SPECENUM_VALUE94 L_START_ATTACK_FAST
+#define SPECENUM_VALUE94NAME N_("?unitflag:AttackFastStartunit")
 /* Startunit: AttackStrong */
-#define SPECENUM_VALUE94 L_START_ATTACK_STRONG
-#define SPECENUM_VALUE94NAME N_("?unitflag:AttackStrongStartunit")
+#define SPECENUM_VALUE95 L_START_ATTACK_STRONG
+#define SPECENUM_VALUE95NAME N_("?unitflag:AttackStrongStartunit")
 /* AI hunter type unit */
-#define SPECENUM_VALUE95 L_HUNTER
-#define SPECENUM_VALUE95NAME N_("?unitflag:Hunter")
+#define SPECENUM_VALUE96 L_HUNTER
+#define SPECENUM_VALUE96NAME N_("?unitflag:Hunter")
 /* can improve terrain */
-#define SPECENUM_VALUE96 L_SETTLERS
-#define SPECENUM_VALUE96NAME N_("?unitflag:Settlers")
+#define SPECENUM_VALUE97 L_SETTLERS
+#define SPECENUM_VALUE97NAME N_("?unitflag:Settlers")
 #define L_LAST (L_SETTLERS + 1)
 
 #include "specenum_gen.h"

Modified: trunk/data/alien/units.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/alien/units.ruleset?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/data/alien/units.ruleset      (original)
+++ trunk/data/alien/units.ruleset      Sat Oct 17 21:46:17 2015
@@ -312,6 +312,9 @@
 ;                 rule)
 ; "BarbarianOnly" = only barbarians can build this unit
 ; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
+; "NewCityGamesOnly" = unit can't be built on scenarios where founding new 
cities
+;                 is not allowed. Give this flag to units that would make no 
sense
+;                 to have in a game with such a scenario
 ;
 ; Following flag strings require extra fields:
 ;  "Paratroopers"

Modified: trunk/data/civ2civ3/units.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/civ2civ3/units.ruleset?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/data/civ2civ3/units.ruleset   (original)
+++ trunk/data/civ2civ3/units.ruleset   Sat Oct 17 21:46:17 2015
@@ -354,6 +354,9 @@
 ;                 rule)
 ; "BarbarianOnly" = only barbarians can build this unit
 ; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
+; "NewCityGamesOnly" = unit can't be built on scenarios where founding new 
cities
+;                 is not allowed. Give this flag to units that would make no 
sense
+;                 to have in a game with such a scenario
 ;
 ; Following flag strings require extra fields:
 ;  "Paratroopers"

Modified: trunk/data/classic/units.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/classic/units.ruleset?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/data/classic/units.ruleset    (original)
+++ trunk/data/classic/units.ruleset    Sat Oct 17 21:46:17 2015
@@ -328,6 +328,9 @@
 ;                 rule)
 ; "BarbarianOnly" = only barbarians can build this unit
 ; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
+; "NewCityGamesOnly" = unit can't be built on scenarios where founding new 
cities
+;                 is not allowed. Give this flag to units that would make no 
sense
+;                 to have in a game with such a scenario
 ;
 ; Following flag strings require extra fields:
 ;  "Paratroopers"

Modified: trunk/data/experimental/units.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/experimental/units.ruleset?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/data/experimental/units.ruleset       (original)
+++ trunk/data/experimental/units.ruleset       Sat Oct 17 21:46:17 2015
@@ -342,6 +342,9 @@
 ;                 rule)
 ; "BarbarianOnly" = only barbarians can build this unit
 ; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
+; "NewCityGamesOnly" = unit can't be built on scenarios where founding new 
cities
+;                 is not allowed. Give this flag to units that would make no 
sense
+;                 to have in a game with such a scenario
 ;
 ; Following flag strings require extra fields:
 ;  "Paratroopers"

Modified: trunk/data/multiplayer/units.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/multiplayer/units.ruleset?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/data/multiplayer/units.ruleset        (original)
+++ trunk/data/multiplayer/units.ruleset        Sat Oct 17 21:46:17 2015
@@ -327,6 +327,9 @@
 ;                 rule)
 ; "BarbarianOnly" = only barbarians can build this unit
 ; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
+; "NewCityGamesOnly" = unit can't be built on scenarios where founding new 
cities
+;                 is not allowed. Give this flag to units that would make no 
sense
+;                 to have in a game with such a scenario
 ;
 ; Following flag strings require extra fields:
 ;  "Paratroopers"

Modified: trunk/data/stub/units.ruleset
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/data/stub/units.ruleset?rev=30117&r1=30116&r2=30117&view=diff
==============================================================================
--- trunk/data/stub/units.ruleset       (original)
+++ trunk/data/stub/units.ruleset       Sat Oct 17 21:46:17 2015
@@ -246,6 +246,9 @@
 ;                 rule)
 ; "BarbarianOnly" = only barbarians can build this unit
 ; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
+; "NewCityGamesOnly" = unit can't be built on scenarios where founding new 
cities
+;                 is not allowed. Give this flag to units that would make no 
sense
+;                 to have in a game with such a scenario
 ;
 ; Following flag strings require extra fields:
 ;  "Paratroopers"


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to