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