Author: sveinung Date: Thu Aug 13 14:52:24 2015 New Revision: 29484 URL: http://svn.gna.org/viewcvs/freeciv?rev=29484&view=rev Log: Make exceptions to slow_invasions possible
Introduce the new unit type flag BeachLander. Units with this flag won't lose all movement when moving from non native to native terrain even when slow_invasions is enabled. See patch #6212 Modified: trunk/client/helpdata.c trunk/common/map.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 trunk/fc_version Modified: trunk/client/helpdata.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/helpdata.c?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/client/helpdata.c (original) +++ trunk/client/helpdata.c Thu Aug 13 14:52:24 2015 @@ -3917,6 +3917,13 @@ CATLSTR(buf, bufsz, _("* Can launch attack from non-native tiles.\n")); } + if (game.info.slow_invasions + && utype_has_flag(utype, UTYF_BEACH_LANDER)) { + /* BeachLander only matters when slow_invasions are enabled. */ + CATLSTR(buf, bufsz, + _("* Won't lose all movement when moving from non-native " + "terrain to native terrain.\n")); + } if (utype_has_flag(utype, UTYF_PARATROOPERS)) { cat_snprintf(buf, bufsz, _("* Can be paradropped from a friendly city or suitable base" Modified: trunk/common/map.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/map.c?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/common/map.c (original) +++ trunk/common/map.c Thu Aug 13 14:52:24 2015 @@ -697,10 +697,11 @@ } else if (!is_native_tile_to_class(pclass, t1)) { if (game.info.slow_invasions + && !(punit && unit_has_type_flag(punit, UTYF_BEACH_LANDER)) && tile_city(t1) == NULL) { /* If "slowinvasions" option is turned on, units moving from * non-native terrain (from transport) to native terrain lose all - * their movement. + * their movement unless they have the BeachLander unit type flag. * e.g. ground units moving from sea to land */ if (punit != NULL) { return punit->moves_left; Modified: trunk/common/unittype.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/unittype.h?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/common/unittype.h (original) +++ trunk/common/unittype.h Thu Aug 13 14:52:24 2015 @@ -218,47 +218,51 @@ /* Only barbarians can build this unit */ #define SPECENUM_VALUE27 UTYF_BARBARIAN_ONLY #define SPECENUM_VALUE27NAME N_("?unitflag:BarbarianOnly") - -#define SPECENUM_VALUE28 UTYF_USER_FLAG_1 -#define SPECENUM_VALUE29 UTYF_USER_FLAG_2 -#define SPECENUM_VALUE30 UTYF_USER_FLAG_3 -#define SPECENUM_VALUE31 UTYF_USER_FLAG_4 -#define SPECENUM_VALUE32 UTYF_USER_FLAG_5 -#define SPECENUM_VALUE33 UTYF_USER_FLAG_6 -#define SPECENUM_VALUE34 UTYF_USER_FLAG_7 -#define SPECENUM_VALUE35 UTYF_USER_FLAG_8 -#define SPECENUM_VALUE36 UTYF_USER_FLAG_9 -#define SPECENUM_VALUE37 UTYF_USER_FLAG_10 -#define SPECENUM_VALUE38 UTYF_USER_FLAG_11 -#define SPECENUM_VALUE39 UTYF_USER_FLAG_12 -#define SPECENUM_VALUE40 UTYF_USER_FLAG_13 -#define SPECENUM_VALUE41 UTYF_USER_FLAG_14 -#define SPECENUM_VALUE42 UTYF_USER_FLAG_15 -#define SPECENUM_VALUE43 UTYF_USER_FLAG_16 -#define SPECENUM_VALUE44 UTYF_USER_FLAG_17 -#define SPECENUM_VALUE45 UTYF_USER_FLAG_18 -#define SPECENUM_VALUE46 UTYF_USER_FLAG_19 -#define SPECENUM_VALUE47 UTYF_USER_FLAG_20 -#define SPECENUM_VALUE48 UTYF_USER_FLAG_21 -#define SPECENUM_VALUE49 UTYF_USER_FLAG_22 -#define SPECENUM_VALUE50 UTYF_USER_FLAG_23 -#define SPECENUM_VALUE51 UTYF_USER_FLAG_24 -#define SPECENUM_VALUE52 UTYF_USER_FLAG_25 -#define SPECENUM_VALUE53 UTYF_USER_FLAG_26 -#define SPECENUM_VALUE54 UTYF_USER_FLAG_27 -#define SPECENUM_VALUE55 UTYF_USER_FLAG_28 -#define SPECENUM_VALUE56 UTYF_USER_FLAG_29 -#define SPECENUM_VALUE57 UTYF_USER_FLAG_30 -#define SPECENUM_VALUE58 UTYF_USER_FLAG_31 -#define SPECENUM_VALUE59 UTYF_USER_FLAG_32 -#define SPECENUM_VALUE60 UTYF_USER_FLAG_33 -#define SPECENUM_VALUE61 UTYF_USER_FLAG_34 -#define SPECENUM_VALUE62 UTYF_USER_FLAG_35 -#define SPECENUM_VALUE63 UTYF_USER_FLAG_36 -#define SPECENUM_VALUE64 UTYF_USER_FLAG_37 -#define SPECENUM_VALUE65 UTYF_USER_FLAG_38 -#define SPECENUM_VALUE66 UTYF_USER_FLAG_39 -#define SPECENUM_VALUE67 UTYF_USER_FLAG_40 +/* Unit won't lose all its movement when moving from non-nantive terrain to + * 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 /* Note that first role must have value next to last flag */ #define UTYF_LAST_USER_FLAG UTYF_USER_FLAG_40 @@ -283,74 +287,74 @@ #define SPECENUM_NAME unit_role_id /* is built first when city established */ -#define SPECENUM_VALUE68 L_FIRSTBUILD -#define SPECENUM_VALUE68NAME N_("?unitflag:FirstBuild") +#define SPECENUM_VALUE69 L_FIRSTBUILD +#define SPECENUM_VALUE69NAME N_("?unitflag:FirstBuild") /* initial explorer unit */ -#define SPECENUM_VALUE69 L_EXPLORER -#define SPECENUM_VALUE69NAME N_("?unitflag:Explorer") +#define SPECENUM_VALUE70 L_EXPLORER +#define SPECENUM_VALUE70NAME N_("?unitflag:Explorer") /* can be found in hut */ -#define SPECENUM_VALUE70 L_HUT -#define SPECENUM_VALUE70NAME N_("?unitflag:Hut") +#define SPECENUM_VALUE71 L_HUT +#define SPECENUM_VALUE71NAME N_("?unitflag:Hut") /* can be found in hut, global tech required */ -#define SPECENUM_VALUE71 L_HUT_TECH -#define SPECENUM_VALUE71NAME N_("?unitflag:HutTech") +#define SPECENUM_VALUE72 L_HUT_TECH +#define SPECENUM_VALUE72NAME N_("?unitflag:HutTech") /* is created in Partisan circumstances */ -#define SPECENUM_VALUE72 L_PARTISAN -#define SPECENUM_VALUE72NAME N_("?unitflag:Partisan") +#define SPECENUM_VALUE73 L_PARTISAN +#define SPECENUM_VALUE73NAME N_("?unitflag:Partisan") /* ok on defense (AI) */ -#define SPECENUM_VALUE73 L_DEFEND_OK -#define SPECENUM_VALUE73NAME N_("?unitflag:DefendOk") +#define SPECENUM_VALUE74 L_DEFEND_OK +#define SPECENUM_VALUE74NAME N_("?unitflag:DefendOk") /* primary purpose is defense (AI) */ -#define SPECENUM_VALUE74 L_DEFEND_GOOD -#define SPECENUM_VALUE74NAME N_("?unitflag:DefendGood") +#define SPECENUM_VALUE75 L_DEFEND_GOOD +#define SPECENUM_VALUE75NAME N_("?unitflag:DefendGood") /* quick attacking unit (Horse..Armor) (unused)*/ -#define SPECENUM_VALUE75 L_ATTACK_FAST -#define SPECENUM_VALUE75NAME N_("?unitflag:AttackFast") +#define SPECENUM_VALUE76 L_ATTACK_FAST +#define SPECENUM_VALUE76NAME N_("?unitflag:AttackFast") /* powerful attacking unit (Catapult..) (unused) */ -#define SPECENUM_VALUE76 L_ATTACK_STRONG -#define SPECENUM_VALUE76NAME N_("?unitflag:AttackStrong") +#define SPECENUM_VALUE77 L_ATTACK_STRONG +#define SPECENUM_VALUE77NAME N_("?unitflag:AttackStrong") /* is useful for ferrying (AI) */ -#define SPECENUM_VALUE77 L_FERRYBOAT -#define SPECENUM_VALUE77NAME N_("?unitflag:FerryBoat") +#define SPECENUM_VALUE78 L_FERRYBOAT +#define SPECENUM_VALUE78NAME N_("?unitflag:FerryBoat") /* barbarians unit, land only */ -#define SPECENUM_VALUE78 L_BARBARIAN -#define SPECENUM_VALUE78NAME N_("?unitflag:Barbarian") +#define SPECENUM_VALUE79 L_BARBARIAN +#define SPECENUM_VALUE79NAME N_("?unitflag:Barbarian") /* barbarians unit, global tech required */ -#define SPECENUM_VALUE79 L_BARBARIAN_TECH -#define SPECENUM_VALUE79NAME N_("?unitflag:BarbarianTech") +#define SPECENUM_VALUE80 L_BARBARIAN_TECH +#define SPECENUM_VALUE80NAME N_("?unitflag:BarbarianTech") /* barbarian boat */ -#define SPECENUM_VALUE80 L_BARBARIAN_BOAT -#define SPECENUM_VALUE80NAME N_("?unitflag:BarbarianBoat") +#define SPECENUM_VALUE81 L_BARBARIAN_BOAT +#define SPECENUM_VALUE81NAME N_("?unitflag:BarbarianBoat") /* what barbarians should build */ -#define SPECENUM_VALUE81 L_BARBARIAN_BUILD -#define SPECENUM_VALUE81NAME N_("BarbarianBuild") +#define SPECENUM_VALUE82 L_BARBARIAN_BUILD +#define SPECENUM_VALUE82NAME N_("BarbarianBuild") /* barbarians build when global tech */ -#define SPECENUM_VALUE82 L_BARBARIAN_BUILD_TECH -#define SPECENUM_VALUE82NAME N_("?unitflag:BarbarianBuildTech") +#define SPECENUM_VALUE83 L_BARBARIAN_BUILD_TECH +#define SPECENUM_VALUE83NAME N_("?unitflag:BarbarianBuildTech") /* barbarian leader */ -#define SPECENUM_VALUE83 L_BARBARIAN_LEADER -#define SPECENUM_VALUE83NAME N_("?unitflag:BarbarianLeader") +#define SPECENUM_VALUE84 L_BARBARIAN_LEADER +#define SPECENUM_VALUE84NAME N_("?unitflag:BarbarianLeader") /* sea raider unit */ -#define SPECENUM_VALUE84 L_BARBARIAN_SEA -#define SPECENUM_VALUE84NAME N_("?unitflag:BarbarianSea") +#define SPECENUM_VALUE85 L_BARBARIAN_SEA +#define SPECENUM_VALUE85NAME N_("?unitflag:BarbarianSea") /* sea raider unit, global tech required */ -#define SPECENUM_VALUE85 L_BARBARIAN_SEA_TECH -#define SPECENUM_VALUE85NAME N_("?unitflag:BarbarianSeaTech") +#define SPECENUM_VALUE86 L_BARBARIAN_SEA_TECH +#define SPECENUM_VALUE86NAME N_("?unitflag:BarbarianSeaTech") /* can found cities */ -#define SPECENUM_VALUE86 L_CITIES -#define SPECENUM_VALUE86NAME N_("?unitflag:Cities") +#define SPECENUM_VALUE87 L_CITIES +#define SPECENUM_VALUE87NAME N_("?unitflag:Cities") /* can improve terrain */ -#define SPECENUM_VALUE87 L_SETTLERS -#define SPECENUM_VALUE87NAME N_("?unitflag:Settlers") +#define SPECENUM_VALUE88 L_SETTLERS +#define SPECENUM_VALUE88NAME N_("?unitflag:Settlers") /* loss results in loss of game */ -#define SPECENUM_VALUE88 L_GAMELOSS -#define SPECENUM_VALUE88NAME N_("?unitflag:GameLoss") +#define SPECENUM_VALUE89 L_GAMELOSS +#define SPECENUM_VALUE89NAME N_("?unitflag:GameLoss") /* can do diplomat actions */ -#define SPECENUM_VALUE89 L_DIPLOMAT -#define SPECENUM_VALUE89NAME N_("?unitflag:Diplomat") +#define SPECENUM_VALUE90 L_DIPLOMAT +#define SPECENUM_VALUE90NAME N_("?unitflag:Diplomat") /* AI hunter type unit */ -#define SPECENUM_VALUE90 L_HUNTER -#define SPECENUM_VALUE90NAME N_("?unitflag:Hunter") +#define SPECENUM_VALUE91 L_HUNTER +#define SPECENUM_VALUE91NAME N_("?unitflag:Hunter") #define L_LAST (L_HUNTER+1) #include "specenum_gen.h" Modified: trunk/data/alien/units.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/alien/units.ruleset?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/data/alien/units.ruleset (original) +++ trunk/data/alien/units.ruleset Thu Aug 13 14:52:24 2015 @@ -267,6 +267,8 @@ ; "FieldUnit" = cause unhappiness even when not being aggressive ; "AttackAny" = can attack unreachable units ; "Marines" = can attack from non-native tile (from transport or city) +; "BeachLander" = won't lose all its movement when moving from non-native +; terrain to native terrain even if slow_invasions is on. ; "Partial_Invis" = visible only to adjancent units; does not hide transported ; units other than missiles ; "Settlers" = can irrigate and build roads Modified: trunk/data/civ2civ3/units.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/civ2civ3/units.ruleset?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/data/civ2civ3/units.ruleset (original) +++ trunk/data/civ2civ3/units.ruleset Thu Aug 13 14:52:24 2015 @@ -308,6 +308,8 @@ ; "OneAttack" = can only make a single attack, regardless of movement points ; "FieldUnit" = cause unhappiness even when not being aggressive ; "Marines" = can attack from non-native tile (from transport or city) +; "BeachLander" = won't lose all its movement when moving from non-native +; terrain to native terrain even if slow_invasions is on. ; "Partial_Invis" = visible only to adjancent units; does not hide transported ; units other than missiles ; "Settlers" = can irrigate and build roads Modified: trunk/data/classic/units.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/classic/units.ruleset?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/data/classic/units.ruleset (original) +++ trunk/data/classic/units.ruleset Thu Aug 13 14:52:24 2015 @@ -282,6 +282,8 @@ ; "OneAttack" = can only make a single attack, regardless of movement points ; "FieldUnit" = cause unhappiness even when not being aggressive ; "Marines" = can attack from non-native tile (from transport or city) +; "BeachLander" = won't lose all its movement when moving from non-native +; terrain to native terrain even if slow_invasions is on. ; "Partial_Invis" = visible only to adjancent units; does not hide transported ; units other than missiles ; "Settlers" = can irrigate and build roads Modified: trunk/data/experimental/units.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/experimental/units.ruleset?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/data/experimental/units.ruleset (original) +++ trunk/data/experimental/units.ruleset Thu Aug 13 14:52:24 2015 @@ -296,6 +296,8 @@ ; "OneAttack" = can only make a single attack, regardless of movement points ; "FieldUnit" = cause unhappiness even when not being aggressive ; "Marines" = can attack from non-native tile (from transport or city) +; "BeachLander" = won't lose all its movement when moving from non-native +; terrain to native terrain even if slow_invasions is on. ; "Partial_Invis" = visible only to adjancent units; does not hide transported ; units other than missiles ; "Settlers" = can irrigate and build roads Modified: trunk/data/multiplayer/units.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/multiplayer/units.ruleset?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/data/multiplayer/units.ruleset (original) +++ trunk/data/multiplayer/units.ruleset Thu Aug 13 14:52:24 2015 @@ -281,6 +281,8 @@ ; "OneAttack" = can only make a single attack, regardless of movement points ; "FieldUnit" = cause unhappiness even when not being aggressive ; "Marines" = can attack from non-native tile (from transport or city) +; "BeachLander" = won't lose all its movement when moving from non-native +; terrain to native terrain even if slow_invasions is on. ; "Partial_Invis" = visible only to adjancent units; does not hide transported ; units other than missiles ; "Settlers" = can irrigate and build roads Modified: trunk/data/stub/units.ruleset URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/stub/units.ruleset?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/data/stub/units.ruleset (original) +++ trunk/data/stub/units.ruleset Thu Aug 13 14:52:24 2015 @@ -200,6 +200,8 @@ ; "FieldUnit" = cause unhappiness even when not being aggressive ; "AttackAny" = can attack unreachable units ; "Marines" = can attack from non-native tile (from transport or city) +; "BeachLander" = won't lose all its movement when moving from non-native +; terrain to native terrain even if slow_invasions is on. ; "Partial_Invis" = visible only to adjancent units; does not hide transported ; units other than missiles ; "Settlers" = can irrigate and build roads Modified: trunk/fc_version URL: http://svn.gna.org/viewcvs/freeciv/trunk/fc_version?rev=29484&r1=29483&r2=29484&view=diff ============================================================================== --- trunk/fc_version (original) +++ trunk/fc_version Thu Aug 13 14:52:24 2015 @@ -54,7 +54,7 @@ # - Avoid adding a new mandatory capability to the development branch for # as long as possible. We want to maintain network compatibility with # the stable branch for as long as possible. -NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2015.Aug.12c" +NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2015.Aug.13" NETWORK_CAPSTRING_OPTIONAL="" FREECIV_DISTRIBUTOR="" _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits