From dcc3a74c15037f50aa8c18128f7e9a8e094af6cf Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Thu, 7 Sep 2023 15:19:10 +0300 Subject: [PATCH 14/14] Add support for "Flagless" unit type flag See osdn #48592 Signed-off-by: Marko Lindqvist --- client/tilespec.c | 39 +++--- common/unittype.h | 223 ++++++++++++++++--------------- data/alien/units.ruleset | 5 + data/civ1/units.ruleset | 5 + data/civ2/units.ruleset | 5 + data/civ2civ3/units.ruleset | 5 + data/classic/units.ruleset | 5 + data/goldkeep/units.ruleset | 5 + data/granularity/units.ruleset | 5 + data/multiplayer/units.ruleset | 5 + data/ruledit/comments-3.3.txt | 4 + data/sandbox/units.ruleset | 5 + data/stub/units.ruleset | 5 + data/webperimental/units.ruleset | 5 + 14 files changed, 196 insertions(+), 125 deletions(-) diff --git a/client/tilespec.c b/client/tilespec.c index b6a13b4b67..2efbe98b32 100644 --- a/client/tilespec.c +++ b/client/tilespec.c @@ -3571,7 +3571,7 @@ static void tileset_lookup_sprite_tags(struct tileset *t) break; }; - /* no other place to initialize these variables */ + /* No other place to initialize these variables */ sprite_vector_init(&t->sprites.nation_flag); sprite_vector_init(&t->sprites.nation_shield); } @@ -4573,9 +4573,13 @@ static int fill_unit_sprite_array(const struct tileset *t, if (backdrop) { if (!gui_options.solid_color_behind_units) { - ADD_SPRITE(get_unit_nation_flag_sprite(t, punit), TRUE, - FULL_TILE_X_OFFSET + t->unit_flag_offset_x, - FULL_TILE_Y_OFFSET + t->unit_flag_offset_y); + if (!unit_has_type_flag(punit, UTYF_FLAGLESS) + || client_is_global_observer() + || unit_owner(punit) == client_player()) { + ADD_SPRITE(get_unit_nation_flag_sprite(t, punit), TRUE, + FULL_TILE_X_OFFSET + t->unit_flag_offset_x, + FULL_TILE_Y_OFFSET + t->unit_flag_offset_y); + } } else { /* Taken care of in the LAYER_BACKGROUND. */ } @@ -5801,7 +5805,7 @@ static bool is_extra_drawing_enabled(struct extra_type *pextra) Fill in the sprite array for the given tile, city, and unit. ptile, if specified, gives the tile. If specified the terrain and specials - will be drawn for this tile. In this case (map_x,map_y) should give the + will be drawn for this tile. In this case (map_x, map_y) should give the location of the tile. punit, if specified, gives the unit. For tile drawing this should @@ -5826,22 +5830,27 @@ int fill_sprite_array(struct tileset *t, bv_extras textras_near[8]; bv_extras textras; struct terrain *tterrain_near[8]; - struct terrain *pterrain = NULL; + struct terrain *pterrain = nullptr; struct drawn_sprite *save_sprs = sprs; - struct player *owner = NULL; + struct player *owner = nullptr; /* Unit drawing is disabled when the view options are turned off, * but only where we're drawing on the mapview. */ - bool do_draw_unit = (punit && (gui_options.draw_units || !ptile - || (gui_options.draw_focus_unit - && unit_is_in_focus(punit)))); + bool do_draw_unit = (punit != nullptr && (gui_options.draw_units + || ptile == nullptr + || (gui_options.draw_focus_unit + && unit_is_in_focus(punit)))); + bool flagless = (do_draw_unit + && unit_has_type_flag(punit, UTYF_FLAGLESS) + && !client_is_global_observer() + && unit_owner(punit) != client_player()); bool solid_bg = (gui_options.solid_color_behind_units - && (do_draw_unit - || (pcity && gui_options.draw_cities) - || (ptile && !gui_options.draw_terrain))); + && ((do_draw_unit && !flagless) + || (pcity != nullptr && gui_options.draw_cities) + || (ptile != nullptr && !gui_options.draw_terrain))); if (citymode) { int count = 0, i, cx, cy; - const struct tile *const *tiles = NULL; + const struct tile *const *tiles = nullptr; bool valid = FALSE; if (ptile) { @@ -5890,7 +5899,7 @@ int fill_sprite_array(struct tileset *t, case LAYER_BACKGROUND: /* Set up background color. */ if (gui_options.solid_color_behind_units) { - if (do_draw_unit) { + if (!flagless) { owner = unit_owner(punit); } else if (pcity && gui_options.draw_cities) { owner = city_owner(pcity); diff --git a/common/unittype.h b/common/unittype.h index 467b96aacc..271a91c925 100644 --- a/common/unittype.h +++ b/common/unittype.h @@ -275,58 +275,61 @@ struct unit_class { /* Makes random movement, not under player control */ #define SPECENUM_VALUE29 UTYF_RANDOM_MOVEMENT #define SPECENUM_VALUE29NAME N_("?unitflag:RandomMovement") - -#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 -#define SPECENUM_VALUE70 UTYF_USER_FLAG_41 -#define SPECENUM_VALUE71 UTYF_USER_FLAG_42 -#define SPECENUM_VALUE72 UTYF_USER_FLAG_43 -#define SPECENUM_VALUE73 UTYF_USER_FLAG_44 -#define SPECENUM_VALUE74 UTYF_USER_FLAG_45 -#define SPECENUM_VALUE75 UTYF_USER_FLAG_46 -#define SPECENUM_VALUE76 UTYF_USER_FLAG_47 -#define SPECENUM_VALUE77 UTYF_USER_FLAG_48 -#define SPECENUM_VALUE78 UTYF_USER_FLAG_49 -#define SPECENUM_VALUE79 UTYF_USER_FLAG_50 -#define SPECENUM_VALUE80 UTYF_USER_FLAG_51 +/* Do not show flag for the unit */ +#define SPECENUM_VALUE30 UTYF_FLAGLESS +#define SPECENUM_VALUE30NAME N_("?unitflag:Flagless") + +#define SPECENUM_VALUE31 UTYF_USER_FLAG_1 +#define SPECENUM_VALUE32 UTYF_USER_FLAG_2 +#define SPECENUM_VALUE33 UTYF_USER_FLAG_3 +#define SPECENUM_VALUE34 UTYF_USER_FLAG_4 +#define SPECENUM_VALUE35 UTYF_USER_FLAG_5 +#define SPECENUM_VALUE36 UTYF_USER_FLAG_6 +#define SPECENUM_VALUE37 UTYF_USER_FLAG_7 +#define SPECENUM_VALUE38 UTYF_USER_FLAG_8 +#define SPECENUM_VALUE39 UTYF_USER_FLAG_9 +#define SPECENUM_VALUE40 UTYF_USER_FLAG_10 +#define SPECENUM_VALUE41 UTYF_USER_FLAG_11 +#define SPECENUM_VALUE42 UTYF_USER_FLAG_12 +#define SPECENUM_VALUE43 UTYF_USER_FLAG_13 +#define SPECENUM_VALUE44 UTYF_USER_FLAG_14 +#define SPECENUM_VALUE45 UTYF_USER_FLAG_15 +#define SPECENUM_VALUE46 UTYF_USER_FLAG_16 +#define SPECENUM_VALUE47 UTYF_USER_FLAG_17 +#define SPECENUM_VALUE48 UTYF_USER_FLAG_18 +#define SPECENUM_VALUE49 UTYF_USER_FLAG_19 +#define SPECENUM_VALUE50 UTYF_USER_FLAG_20 +#define SPECENUM_VALUE51 UTYF_USER_FLAG_21 +#define SPECENUM_VALUE52 UTYF_USER_FLAG_22 +#define SPECENUM_VALUE53 UTYF_USER_FLAG_23 +#define SPECENUM_VALUE54 UTYF_USER_FLAG_24 +#define SPECENUM_VALUE55 UTYF_USER_FLAG_25 +#define SPECENUM_VALUE56 UTYF_USER_FLAG_26 +#define SPECENUM_VALUE57 UTYF_USER_FLAG_27 +#define SPECENUM_VALUE58 UTYF_USER_FLAG_28 +#define SPECENUM_VALUE59 UTYF_USER_FLAG_29 +#define SPECENUM_VALUE60 UTYF_USER_FLAG_30 +#define SPECENUM_VALUE61 UTYF_USER_FLAG_31 +#define SPECENUM_VALUE62 UTYF_USER_FLAG_32 +#define SPECENUM_VALUE63 UTYF_USER_FLAG_33 +#define SPECENUM_VALUE64 UTYF_USER_FLAG_34 +#define SPECENUM_VALUE65 UTYF_USER_FLAG_35 +#define SPECENUM_VALUE66 UTYF_USER_FLAG_36 +#define SPECENUM_VALUE67 UTYF_USER_FLAG_37 +#define SPECENUM_VALUE68 UTYF_USER_FLAG_38 +#define SPECENUM_VALUE69 UTYF_USER_FLAG_39 +#define SPECENUM_VALUE70 UTYF_USER_FLAG_40 +#define SPECENUM_VALUE71 UTYF_USER_FLAG_41 +#define SPECENUM_VALUE72 UTYF_USER_FLAG_42 +#define SPECENUM_VALUE73 UTYF_USER_FLAG_43 +#define SPECENUM_VALUE74 UTYF_USER_FLAG_44 +#define SPECENUM_VALUE75 UTYF_USER_FLAG_45 +#define SPECENUM_VALUE76 UTYF_USER_FLAG_46 +#define SPECENUM_VALUE77 UTYF_USER_FLAG_47 +#define SPECENUM_VALUE78 UTYF_USER_FLAG_48 +#define SPECENUM_VALUE79 UTYF_USER_FLAG_49 +#define SPECENUM_VALUE80 UTYF_USER_FLAG_50 +#define SPECENUM_VALUE81 UTYF_USER_FLAG_51 /* Note that first role must have value next to last flag */ #define UTYF_LAST_USER_FLAG UTYF_USER_FLAG_51 @@ -351,92 +354,92 @@ struct unit_class { #define SPECENUM_NAME unit_role_id /* Built first when city established */ -#define SPECENUM_VALUE81 L_FIRSTBUILD -#define SPECENUM_VALUE81NAME N_("?unitflag:FirstBuild") +#define SPECENUM_VALUE82 L_FIRSTBUILD +#define SPECENUM_VALUE82NAME N_("?unitflag:FirstBuild") /* Explorer unit */ -#define SPECENUM_VALUE82 L_EXPLORER -#define SPECENUM_VALUE82NAME N_("?unitflag:Explorer") +#define SPECENUM_VALUE83 L_EXPLORER +#define SPECENUM_VALUE83NAME N_("?unitflag:Explorer") /* Can be found in hut */ -#define SPECENUM_VALUE83 L_HUT -#define SPECENUM_VALUE83NAME N_("?unitflag:Hut") +#define SPECENUM_VALUE84 L_HUT +#define SPECENUM_VALUE84NAME N_("?unitflag:Hut") /* Can be found in hut, tech required */ -#define SPECENUM_VALUE84 L_HUT_TECH -#define SPECENUM_VALUE84NAME N_("?unitflag:HutTech") +#define SPECENUM_VALUE85 L_HUT_TECH +#define SPECENUM_VALUE85NAME N_("?unitflag:HutTech") /* Created in Partisan circumstances */ -#define SPECENUM_VALUE85 L_PARTISAN -#define SPECENUM_VALUE85NAME N_("?unitflag:Partisan") +#define SPECENUM_VALUE86 L_PARTISAN +#define SPECENUM_VALUE86NAME N_("?unitflag:Partisan") /* Ok on defense (AI) */ -#define SPECENUM_VALUE86 L_DEFEND_OK -#define SPECENUM_VALUE86NAME N_("?unitflag:DefendOk") +#define SPECENUM_VALUE87 L_DEFEND_OK +#define SPECENUM_VALUE87NAME N_("?unitflag:DefendOk") /* Primary purpose is defense (AI) */ -#define SPECENUM_VALUE87 L_DEFEND_GOOD -#define SPECENUM_VALUE87NAME N_("?unitflag:DefendGood") +#define SPECENUM_VALUE88 L_DEFEND_GOOD +#define SPECENUM_VALUE88NAME N_("?unitflag:DefendGood") /* Useful for ferrying (AI) */ -#define SPECENUM_VALUE88 L_FERRYBOAT -#define SPECENUM_VALUE88NAME N_("?unitflag:FerryBoat") +#define SPECENUM_VALUE89 L_FERRYBOAT +#define SPECENUM_VALUE89NAME N_("?unitflag:FerryBoat") /* Barbarians unit, land only */ -#define SPECENUM_VALUE89 L_BARBARIAN -#define SPECENUM_VALUE89NAME N_("?unitflag:Barbarian") +#define SPECENUM_VALUE90 L_BARBARIAN +#define SPECENUM_VALUE90NAME N_("?unitflag:Barbarian") /* Barbarians unit, global tech required */ -#define SPECENUM_VALUE90 L_BARBARIAN_TECH -#define SPECENUM_VALUE90NAME N_("?unitflag:BarbarianTech") +#define SPECENUM_VALUE91 L_BARBARIAN_TECH +#define SPECENUM_VALUE91NAME N_("?unitflag:BarbarianTech") /* Barbarian boat */ -#define SPECENUM_VALUE91 L_BARBARIAN_BOAT -#define SPECENUM_VALUE91NAME N_("?unitflag:BarbarianBoat") +#define SPECENUM_VALUE92 L_BARBARIAN_BOAT +#define SPECENUM_VALUE92NAME N_("?unitflag:BarbarianBoat") /* Barbarians boat, global tech required */ -#define SPECENUM_VALUE92 L_BARBARIAN_BOAT_TECH -#define SPECENUM_VALUE92NAME N_("?unitflag:BarbarianBoatTech") +#define SPECENUM_VALUE93 L_BARBARIAN_BOAT_TECH +#define SPECENUM_VALUE93NAME N_("?unitflag:BarbarianBoatTech") /* What barbarians should build */ -#define SPECENUM_VALUE93 L_BARBARIAN_BUILD -#define SPECENUM_VALUE93NAME N_("?unitflag:BarbarianBuild") +#define SPECENUM_VALUE94 L_BARBARIAN_BUILD +#define SPECENUM_VALUE94NAME N_("?unitflag:BarbarianBuild") /* Barbarians build when global tech */ -#define SPECENUM_VALUE94 L_BARBARIAN_BUILD_TECH -#define SPECENUM_VALUE94NAME N_("?unitflag:BarbarianBuildTech") +#define SPECENUM_VALUE95 L_BARBARIAN_BUILD_TECH +#define SPECENUM_VALUE95NAME N_("?unitflag:BarbarianBuildTech") /* Barbarian leader */ -#define SPECENUM_VALUE95 L_BARBARIAN_LEADER -#define SPECENUM_VALUE95NAME N_("?unitflag:BarbarianLeader") +#define SPECENUM_VALUE96 L_BARBARIAN_LEADER +#define SPECENUM_VALUE96NAME N_("?unitflag:BarbarianLeader") /* Sea raider unit */ -#define SPECENUM_VALUE96 L_BARBARIAN_SEA -#define SPECENUM_VALUE96NAME N_("?unitflag:BarbarianSea") +#define SPECENUM_VALUE97 L_BARBARIAN_SEA +#define SPECENUM_VALUE97NAME N_("?unitflag:BarbarianSea") /* Sea raider unit, global tech required */ -#define SPECENUM_VALUE97 L_BARBARIAN_SEA_TECH -#define SPECENUM_VALUE97NAME N_("?unitflag:BarbarianSeaTech") +#define SPECENUM_VALUE98 L_BARBARIAN_SEA_TECH +#define SPECENUM_VALUE98NAME N_("?unitflag:BarbarianSeaTech") /* StartUnit: Cities */ -#define SPECENUM_VALUE98 L_START_CITIES -#define SPECENUM_VALUE98NAME N_("?unitflag:CitiesStartUnit") +#define SPECENUM_VALUE99 L_START_CITIES +#define SPECENUM_VALUE99NAME N_("?unitflag:CitiesStartUnit") /* StartUnit: Worker */ -#define SPECENUM_VALUE99 L_START_WORKER -#define SPECENUM_VALUE99NAME N_("?unitflag:WorkerStartUnit") +#define SPECENUM_VALUE100 L_START_WORKER +#define SPECENUM_VALUE100NAME N_("?unitflag:WorkerStartUnit") /* StartUnit: Explorer */ -#define SPECENUM_VALUE100 L_START_EXPLORER -#define SPECENUM_VALUE100NAME N_("?unitflag:ExplorerStartUnit") +#define SPECENUM_VALUE101 L_START_EXPLORER +#define SPECENUM_VALUE101NAME N_("?unitflag:ExplorerStartUnit") /* StartUnit: King */ -#define SPECENUM_VALUE101 L_START_KING -#define SPECENUM_VALUE101NAME N_("?unitflag:KingStartUnit") +#define SPECENUM_VALUE102 L_START_KING +#define SPECENUM_VALUE102NAME N_("?unitflag:KingStartUnit") /* StartUnit: Diplomat */ -#define SPECENUM_VALUE102 L_START_DIPLOMAT -#define SPECENUM_VALUE102NAME N_("?unitflag:DiplomatStartUnit") +#define SPECENUM_VALUE103 L_START_DIPLOMAT +#define SPECENUM_VALUE103NAME N_("?unitflag:DiplomatStartUnit") /* StartUnit: Ferryboat */ -#define SPECENUM_VALUE103 L_START_FERRY -#define SPECENUM_VALUE103NAME N_("?unitflag:FerryStartUnit") +#define SPECENUM_VALUE104 L_START_FERRY +#define SPECENUM_VALUE104NAME N_("?unitflag:FerryStartUnit") /* StartUnit: DefendOk */ -#define SPECENUM_VALUE104 L_START_DEFEND_OK -#define SPECENUM_VALUE104NAME N_("?unitflag:DefendOkStartUnit") +#define SPECENUM_VALUE105 L_START_DEFEND_OK +#define SPECENUM_VALUE105NAME N_("?unitflag:DefendOkStartUnit") /* StartUnit: DefendGood */ -#define SPECENUM_VALUE105 L_START_DEFEND_GOOD -#define SPECENUM_VALUE105NAME N_("?unitflag:DefendGoodStartUnit") +#define SPECENUM_VALUE106 L_START_DEFEND_GOOD +#define SPECENUM_VALUE106NAME N_("?unitflag:DefendGoodStartUnit") /* StartUnit: AttackFast */ -#define SPECENUM_VALUE106 L_START_ATTACK_FAST -#define SPECENUM_VALUE106NAME N_("?unitflag:AttackFastStartUnit") +#define SPECENUM_VALUE107 L_START_ATTACK_FAST +#define SPECENUM_VALUE107NAME N_("?unitflag:AttackFastStartUnit") /* StartUnit: AttackStrong */ -#define SPECENUM_VALUE107 L_START_ATTACK_STRONG -#define SPECENUM_VALUE107NAME N_("?unitflag:AttackStrongStartUnit") +#define SPECENUM_VALUE108 L_START_ATTACK_STRONG +#define SPECENUM_VALUE108NAME N_("?unitflag:AttackStrongStartUnit") /* AI hunter type unit */ -#define SPECENUM_VALUE108 L_HUNTER -#define SPECENUM_VALUE108NAME N_("?unitflag:Hunter") +#define SPECENUM_VALUE109 L_HUNTER +#define SPECENUM_VALUE109NAME N_("?unitflag:Hunter") /* Can improve terrain */ -#define SPECENUM_VALUE109 L_SETTLERS -#define SPECENUM_VALUE109NAME N_("?unitflag:Settlers") +#define SPECENUM_VALUE110 L_SETTLERS +#define SPECENUM_VALUE110NAME N_("?unitflag:Settlers") #define L_LAST (L_SETTLERS + 1) #include "specenum_gen.h" diff --git a/data/alien/units.ruleset b/data/alien/units.ruleset index 61d8d846df..d992e8c622 100644 --- a/data/alien/units.ruleset +++ b/data/alien/units.ruleset @@ -385,6 +385,11 @@ flags = "Missile", "DoesntOccupyTile" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/civ1/units.ruleset b/data/civ1/units.ruleset index def56f7123..387076ed19 100644 --- a/data/civ1/units.ruleset +++ b/data/civ1/units.ruleset @@ -360,6 +360,11 @@ flags = "Missile", "Unreachable", "HutNothing" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/civ2/units.ruleset b/data/civ2/units.ruleset index 3aad88db87..66883335b3 100644 --- a/data/civ2/units.ruleset +++ b/data/civ2/units.ruleset @@ -378,6 +378,11 @@ flags = "Unreachable", "DoesntOccupyTile", "HutFrighten" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/civ2civ3/units.ruleset b/data/civ2civ3/units.ruleset index e3f772d764..e7ef66f8a0 100644 --- a/data/civ2civ3/units.ruleset +++ b/data/civ2civ3/units.ruleset @@ -419,6 +419,11 @@ flags = "Unreachable", "DoesntOccupyTile", "CanPillage", ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/classic/units.ruleset b/data/classic/units.ruleset index 9d2982c456..476615591a 100644 --- a/data/classic/units.ruleset +++ b/data/classic/units.ruleset @@ -388,6 +388,11 @@ flags = "Unreachable", "DoesntOccupyTile", "HutFrighten" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/goldkeep/units.ruleset b/data/goldkeep/units.ruleset index 3f6162e692..fdaf4cdc78 100644 --- a/data/goldkeep/units.ruleset +++ b/data/goldkeep/units.ruleset @@ -400,6 +400,11 @@ flags = "Unreachable", "DoesntOccupyTile", "HutFrighten" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/granularity/units.ruleset b/data/granularity/units.ruleset index 0743a88586..3e04bb1266 100644 --- a/data/granularity/units.ruleset +++ b/data/granularity/units.ruleset @@ -326,6 +326,11 @@ flags = "TerrainSpeed" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/multiplayer/units.ruleset b/data/multiplayer/units.ruleset index d14ccec376..731495589f 100644 --- a/data/multiplayer/units.ruleset +++ b/data/multiplayer/units.ruleset @@ -388,6 +388,11 @@ flags = "Unreachable", "DoesntOccupyTile", "HutFrighten" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/ruledit/comments-3.3.txt b/data/ruledit/comments-3.3.txt index ae47559122..f87a6fc6ec 100644 --- a/data/ruledit/comments-3.3.txt +++ b/data/ruledit/comments-3.3.txt @@ -502,6 +502,10 @@ utypes = "\ ; is enabled and the unit class is unreachable\n\ ; \"RandomMovement\" = Unit makes random movements in the beginning of the turn,\n\ ; player has no control over its movement\n\ +; \"Flagless\" = Unit national flag is not shown on client, except for\n\ +; the owner.\n\ +; Note that currently the information is available for\n\ +; the client anyway, so this is not a rule like a feature yet.\n\ ;\n\ ; Following actions require extra fields:\n\ ; \"Attack\" and \"Suicide Attack\"\n\ diff --git a/data/sandbox/units.ruleset b/data/sandbox/units.ruleset index 6417d3101f..8e7f4b38db 100644 --- a/data/sandbox/units.ruleset +++ b/data/sandbox/units.ruleset @@ -432,6 +432,11 @@ flags = "Unreachable", "DoesntOccupyTile", "CanPillage", ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/stub/units.ruleset b/data/stub/units.ruleset index b7efbe970e..be2568f884 100644 --- a/data/stub/units.ruleset +++ b/data/stub/units.ruleset @@ -308,6 +308,11 @@ flags = "" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" diff --git a/data/webperimental/units.ruleset b/data/webperimental/units.ruleset index 056f321394..d6b1e2d564 100644 --- a/data/webperimental/units.ruleset +++ b/data/webperimental/units.ruleset @@ -392,6 +392,11 @@ flags = "Unreachable", "DoesntOccupyTile", "HutFrighten" ; is enabled and the unit class is unreachable ; "RandomMovement" = Unit makes random movements in the beginning of the turn, ; player has no control over its movement +; "Flagless" = Unit national flag is not shown on client, except for +; the owner. +; Note that currently the information is available for +; the client anyway, so this is not a rule like a feature yet. +; ; ; Following actions require extra fields: ; "Attack" and "Suicide Attack" -- 2.40.1