From fff97ccfe963e5afb78be6b21f8b52442bb4106d Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Mon, 2 Jun 2025 21:58:55 +0300
Subject: [PATCH 90/90] Add support for animated units

See RM #1480

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/tilespec.c                             |   60 +-
 data/amplio/units.spec                        |  116 +-
 data/amplio2/extra_units.spec                 |  202 ++--
 data/amplio2/units.spec                       |  118 +-
 data/cimpletoon/orient_units.spec             | 1006 ++++++++---------
 data/cimpletoon/units/ROMB/xxx.spec           |   16 +-
 data/cimpletoon/units/abrams/xxx.spec         |   16 +-
 data/cimpletoon/units/assaultgun/xxx.spec     |   16 +-
 data/cimpletoon/units/biplane/xxx.spec        |   16 +-
 data/cimpletoon/units/container_ship/xxx.spec |   16 +-
 data/cimpletoon/units/flak88/xxx.spec         |   16 +-
 data/cimpletoon/units/icebreaker/xxx.spec     |   16 +-
 data/cimpletoon/units/light_howitzer/xxx.spec |   16 +-
 data/cimpletoon/units/locomotive/xxx.spec     |   16 +-
 data/cimpletoon/units/m4sherman/xxx.spec      |   16 +-
 data/cimpletoon/units/mig15/xxx.spec          |   16 +-
 data/cimpletoon/units/missile_sub/xxx.spec    |   16 +-
 data/cimpletoon/units/panther/xxx.spec        |   16 +-
 data/cimpletoon/units/panzer_iii/xxx.spec     |   16 +-
 data/cimpletoon/units/pt-boat/xxx.spec        |   16 +-
 data/cimpletoon/units/stationary_sam/xxx.spec |   16 +-
 data/cimpletoon/units/steamer/xxx.spec        |   16 +-
 data/cimpletoon/units/storm/xxx.spec          |   16 +-
 data/cimpletoon/units/technical/xxx.spec      |   16 +-
 data/cimpletoon/units/tiger/xxx.spec          |   16 +-
 data/cimpletoon/units/truck/xxx.spec          |   16 +-
 data/cimpletoon/units/zeppelin/xxx.spec       |   16 +-
 data/trident/units.spec                       |  114 +-
 28 files changed, 986 insertions(+), 982 deletions(-)

diff --git a/client/tilespec.c b/client/tilespec.c
index bd9e365d73..85de2c9402 100644
--- a/client/tilespec.c
+++ b/client/tilespec.c
@@ -269,8 +269,8 @@ struct named_sprites {
   struct sprite *government[G_LAST];
 
   struct {
-    struct sprite *icon[U_LAST][ACTIVITY_LAST];
-    struct sprite *facing[U_LAST][DIR8_MAGIC_MAX][ACTIVITY_LAST];
+    struct anim *icon[U_LAST][ACTIVITY_LAST];
+    struct anim *facing[U_LAST][DIR8_MAGIC_MAX][ACTIVITY_LAST];
   } units;
 
   struct sprite_vector nation_flag;
@@ -3886,7 +3886,7 @@ static bool tileset_setup_unit_direction(struct tileset *t,
   char buf[2048];
   const char *act_name = unit_activity_name(activity);
 
-  if (act_name == NULL) {
+  if (act_name == nullptr) {
     /* gcc-9 thinks this is possible. */
     return FALSE;
   }
@@ -3916,20 +3916,18 @@ static bool tileset_setup_unit_direction(struct tileset *t,
   /* We don't use _alt graphics here, as that could lead to loading
    * real icon gfx, but alternative orientation gfx. Tileset author
    * probably meant icon gfx to be used as fallback for all orientations */
-  t->sprites.units.facing[uidx][dir][activity] = load_sprite(t, buf,
-                                                             TRUE, TRUE, FALSE);
+  t->sprites.units.facing[uidx][dir][activity] = anim_load(t, buf, 0);
 
   if (activity == ACTIVITY_IDLE
-      && t->sprites.units.facing[uidx][dir][activity] == NULL) {
+      && t->sprites.units.facing[uidx][dir][activity] == nullptr) {
     /* Backward compatibility: Set Idle sprite from tag with no activity defined. */
     fc_snprintf(buf, sizeof(buf), "%s_%s", base_str,
                 dir_get_tileset_name(loaddir));
 
-    t->sprites.units.facing[uidx][dir][activity] = load_sprite(t, buf,
-                                                               TRUE, TRUE, FALSE);
+    t->sprites.units.facing[uidx][dir][activity] = anim_load(t, buf, 0);
   }
 
-  if (t->sprites.units.facing[uidx][dir][activity] != NULL) {
+  if (t->sprites.units.facing[uidx][dir][activity] != nullptr) {
     return TRUE;
   }
 
@@ -3950,18 +3948,16 @@ static bool tileset_setup_unit_type_from_tag(struct tileset *t,
 
     fc_snprintf(buffer, sizeof(buffer), "%s_%s",
                 tag, unit_activity_name(activity));
-    t->sprites.units.icon[uidx][activity] = load_sprite(t, buffer,
-                                                        TRUE, TRUE, FALSE);
+    t->sprites.units.icon[uidx][activity] = anim_load(t, buffer, 0);
 
     if (activity == ACTIVITY_IDLE
-        && t->sprites.units.icon[uidx][activity] == NULL) {
+        && t->sprites.units.icon[uidx][activity] == nullptr) {
       /* Backward compatibility: Set Idle sprite from tag with no activity defined. */
-      t->sprites.units.icon[uidx][activity] = load_sprite(t, tag,
-                                                          TRUE, TRUE, FALSE);
+      t->sprites.units.icon[uidx][activity] = anim_load(t, tag, 0);
     }
   } activity_type_iterate_end;
 
-  has_icon = t->sprites.units.icon[uidx][ACTIVITY_IDLE] != NULL;
+  has_icon = t->sprites.units.icon[uidx][ACTIVITY_IDLE] != nullptr;
 
 #define LOAD_FACING_SPRITE(dir)                                                 \
   if (!tileset_setup_unit_direction(t, uidx, tag, dir, activity, has_icon)) {   \
@@ -4004,7 +4000,7 @@ void tileset_setup_unit_type(struct tileset *t, struct unit_type *ut)
       && !tileset_setup_unit_type_from_tag(t, uidx, ut->graphic_alt)
       && !tileset_setup_unit_type_from_tag(t, uidx, ut->graphic_alt2)) {
     tileset_error(LOG_FATAL, tileset_name_get(t),
-                  _("Missing %s unit sprite for tags \"%s\" and alternatives "
+                  _("Missing %s unit sprites for tags \"%s\" and alternatives "
                     "\"%s\" and \"%s\"."),
                   utype_rule_name(ut), ut->graphic_str,
                   ut->graphic_alt, ut->graphic_alt2);
@@ -4013,7 +4009,7 @@ void tileset_setup_unit_type(struct tileset *t, struct unit_type *ut)
   if (!t->sprites.units.icon[uidx][ACTIVITY_IDLE]) {
     if (!direction8_is_valid(t->unit_default_orientation)) {
       tileset_error(LOG_FATAL, tileset_name_get(t),
-                    _("Unit type %s has no unoriented sprite and "
+                    _("Unit type %s has no unoriented sprites and "
                       "tileset has no unit_default_orientation."),
                     utype_rule_name(ut));
     } else {
@@ -4021,7 +4017,7 @@ void tileset_setup_unit_type(struct tileset *t, struct unit_type *ut)
        * unit_default_orientation, because tileset_setup_unit_type_from_tag()
        * checked for this. */
       fc_assert(t->sprites.units.facing[uidx][t->unit_default_orientation]
-                != NULL);
+                != nullptr);
     }
   }
 }
@@ -7062,26 +7058,34 @@ struct sprite *get_unittype_sprite(const struct tileset *t,
      * turn out to have an icon sprite */
   }
 
-  if (t->sprites.units.icon[uidx][activity] != NULL
-      && (icon || t->sprites.units.facing[uidx][facing][activity] == NULL)) {
+  if (t->sprites.units.icon[uidx][activity] != nullptr
+      && (icon || t->sprites.units.facing[uidx][facing][activity] == nullptr)) {
     /* Has icon sprite, and we prefer to (or must) use it */
-    return t->sprites.units.icon[uidx][activity];
-  } else if (t->sprites.units.icon[uidx][ACTIVITY_IDLE] != NULL
+    if (icon) {
+      return t->sprites.units.icon[uidx][activity]->sprites[0];
+    } else {
+      return anim_get_current_frame(t->sprites.units.icon[uidx][activity]);
+    }
+  } else if (t->sprites.units.icon[uidx][ACTIVITY_IDLE] != nullptr
              && (icon
-                 || t->sprites.units.facing[uidx][facing][ACTIVITY_IDLE] == NULL)) {
+                 || t->sprites.units.facing[uidx][facing][ACTIVITY_IDLE] == nullptr)) {
     /* Has icon sprite, and we prefer to (or must) use it */
-    return t->sprites.units.icon[uidx][ACTIVITY_IDLE];
+    if (icon) {
+      return t->sprites.units.icon[uidx][ACTIVITY_IDLE]->sprites[0];
+    } else {
+      return anim_get_current_frame(t->sprites.units.icon[uidx][ACTIVITY_IDLE]);
+    }
   } else {
     /* We should have a valid orientation by now. Failure to have either
      * an icon sprite or default orientation should have been caught at
      * tileset load. */
-    fc_assert_ret_val(direction8_is_valid(facing), NULL);
+    fc_assert_ret_val(direction8_is_valid(facing), nullptr);
 
-    if (t->sprites.units.facing[uidx][facing][activity] == NULL) {
-      return t->sprites.units.facing[uidx][facing][ACTIVITY_IDLE];
+    if (t->sprites.units.facing[uidx][facing][activity] == nullptr) {
+      return anim_get_current_frame(t->sprites.units.facing[uidx][facing][ACTIVITY_IDLE]);
     }
 
-    return t->sprites.units.facing[uidx][facing][activity];
+    return anim_get_current_frame(t->sprites.units.facing[uidx][facing][activity]);
   }
 }
 
diff --git a/data/amplio/units.spec b/data/amplio/units.spec
index e6bca64e9a..1045016f53 100644
--- a/data/amplio/units.spec
+++ b/data/amplio/units.spec
@@ -46,64 +46,64 @@ dx = 64
 dy = 48
 
 tiles = { "row", "column", "tag"
-                                ; Scenario League tags in brackets
-  0,  0, "u.armor_Idle"         ; [Nemo]
-  0,  1, "u.howitzer_Idle"      ; [Nemo]
-  0,  2, "u.battleship_Idle"    ; [Nemo]
-  0,  3, "u.bomber_Idle"        ; [GB]
-  0,  4, "u.cannon_Idle"        ; [CT]
-  0,  5, "u.caravan_Idle"       ; [Alex] & [CT]
-  0,  6, "u.carrier_Idle"       ; [Nemo]
-  0,  7, "u.catapult_Idle"      ; [CT]
-  0,  8, "u.horsemen_Idle"      ; [GB]
-  0,  9, "u.chariot_Idle"       ; [BB] & [GB]
-  0, 10, "u.cruiser_Idle"       ; [Nemo]
-  0, 11, "u.diplomat_Idle"      ; [Nemo]
-  0, 12, "u.fighter_Idle"       ; [Sor]
-  0, 13, "u.frigate_Idle"       ; [BB]
-  0, 14, "u.ironclad_Idle"      ; [Nemo]
-  0, 15, "u.knights_Idle"       ; [BB]
-  0, 16, "u.legion_Idle"        ; [GB]
-  0, 17, "u.mech_inf_Idle"      ; [GB]
-  0, 18, "u.warriors_Idle"      ; [GB]
-  0, 19, "u.musketeers_Idle"    ; [Alex] & [CT]
-  1,  0, "u.nuclear_Idle"       ; [Nemo] & [CS]
-  1,  1, "u.phalanx_Idle"       ; [GB] & [CT]
-  1,  2, "u.riflemen_Idle"      ; [Alex]
-  1,  3, "u.caravel_Idle"       ; [BB]
-  1,  4, "u.settlers_Idle"      ; [MHN]
-  1,  5, "u.submarine_Idle"     ; [GP]
-  1,  6, "u.transport_Idle"     ; [Nemo]
-  1,  7, "u.trireme_Idle"       ; [BB]
-  1,  8, "u.archers_Idle"       ; [GB]
-  1,  9, "u.cavalry_Idle"       ; [Alex]
-  1, 10, "u.cruise_missile_Idle" ; [CS]
-  1, 11, "u.destroyer_Idle"     ; [Nemo]
-  1, 12, "u.dragoons_Idle"      ; [GB]
-  1, 13, "u.explorer_Idle"      ; [Alex] & [CT]
-  1, 14, "u.freight_Idle"       ; [CT] & qwm
-  1, 15, "u.galleon_Idle"       ; [BB]
-  1, 16, "u.partisan_Idle"      ; [BB] & [CT]
-  1, 17, "u.pikemen_Idle"       ; [T]
-  2,  0, "u.marines_Idle"       ; [GB]
-  2,  1, "u.spy_Idle"           ; [EW] & [CT]
-  2,  2, "u.engineers_Idle"     ; [Nemo] & [CT]
-  2,  3, "u.artillery_Idle"     ; [GB]
-  2,  4, "u.helicopter_Idle"    ; [T]
-  2,  5, "u.alpine_troops_Idle" ; [Nemo]
-  2,  6, "u.stealth_bomber_Idle" ; [GB]
-  2,  7, "u.stealth_fighter_Idle" ; [Nemo] & [AHS]
-  2,  8, "u.aegis_cruiser_Idle" ; [GP]
-  2,  9, "u.paratroopers_Idle"  ; [Alex]
-  2, 10, "u.elephants_Idle"     ; [Alex] & [GG] & [CT]
-  2, 11, "u.crusaders_Idle"     ; [BB]
-  2, 12, "u.fanatics_Idle"      ; [GB] & [CT]
-  2, 13, "u.awacs_Idle"         ; [APL]
-  2, 14, "u.worker_Idle"        ; [GB]
-  2, 15, "u.leader_Idle"        ; [GB]
-  2, 16, "u.barbarian_leader_Idle" ; FiftyNine
-  2, 17, "u.migrants_Idle"      ; Eleazar
-;  3, 15, "u.train_Idle"        ; Eleazar
+                                  ; Scenario League tags in brackets
+  0,  0, "u.armor_Idle:0"         ; [Nemo]
+  0,  1, "u.howitzer_Idle:0"      ; [Nemo]
+  0,  2, "u.battleship_Idle:0"    ; [Nemo]
+  0,  3, "u.bomber_Idle:0"        ; [GB]
+  0,  4, "u.cannon_Idle:0"        ; [CT]
+  0,  5, "u.caravan_Idle:0"       ; [Alex] & [CT]
+  0,  6, "u.carrier_Idle:0"       ; [Nemo]
+  0,  7, "u.catapult_Idle:0"      ; [CT]
+  0,  8, "u.horsemen_Idle:0"      ; [GB]
+  0,  9, "u.chariot_Idle:0"       ; [BB] & [GB]
+  0, 10, "u.cruiser_Idle:0"       ; [Nemo]
+  0, 11, "u.diplomat_Idle:0"      ; [Nemo]
+  0, 12, "u.fighter_Idle:0"       ; [Sor]
+  0, 13, "u.frigate_Idle:0"       ; [BB]
+  0, 14, "u.ironclad_Idle:0"      ; [Nemo]
+  0, 15, "u.knights_Idle:0"       ; [BB]
+  0, 16, "u.legion_Idle:0"        ; [GB]
+  0, 17, "u.mech_inf_Idle:0"      ; [GB]
+  0, 18, "u.warriors_Idle:0"      ; [GB]
+  0, 19, "u.musketeers_Idle:0"    ; [Alex] & [CT]
+  1,  0, "u.nuclear_Idle:0"       ; [Nemo] & [CS]
+  1,  1, "u.phalanx_Idle:0"       ; [GB] & [CT]
+  1,  2, "u.riflemen_Idle:0"      ; [Alex]
+  1,  3, "u.caravel_Idle:0"       ; [BB]
+  1,  4, "u.settlers_Idle:0"      ; [MHN]
+  1,  5, "u.submarine_Idle:0"     ; [GP]
+  1,  6, "u.transport_Idle:0"     ; [Nemo]
+  1,  7, "u.trireme_Idle:0"       ; [BB]
+  1,  8, "u.archers_Idle:0"       ; [GB]
+  1,  9, "u.cavalry_Idle:0"       ; [Alex]
+  1, 10, "u.cruise_missile_Idle:0" ; [CS]
+  1, 11, "u.destroyer_Idle:0"     ; [Nemo]
+  1, 12, "u.dragoons_Idle:0"      ; [GB]
+  1, 13, "u.explorer_Idle:0"      ; [Alex] & [CT]
+  1, 14, "u.freight_Idle:0"       ; [CT] & qwm
+  1, 15, "u.galleon_Idle:0"       ; [BB]
+  1, 16, "u.partisan_Idle:0"      ; [BB] & [CT]
+  1, 17, "u.pikemen_Idle:0"       ; [T]
+  2,  0, "u.marines_Idle:0"       ; [GB]
+  2,  1, "u.spy_Idle:0"           ; [EW] & [CT]
+  2,  2, "u.engineers_Idle:0"     ; [Nemo] & [CT]
+  2,  3, "u.artillery_Idle:0"     ; [GB]
+  2,  4, "u.helicopter_Idle:0"    ; [T]
+  2,  5, "u.alpine_troops_Idle:0" ; [Nemo]
+  2,  6, "u.stealth_bomber_Idle:0" ; [GB]
+  2,  7, "u.stealth_fighter_Idle:0" ; [Nemo] & [AHS]
+  2,  8, "u.aegis_cruiser_Idle:0" ; [GP]
+  2,  9, "u.paratroopers_Idle:0"  ; [Alex]
+  2, 10, "u.elephants_Idle:0"     ; [Alex] & [GG] & [CT]
+  2, 11, "u.crusaders_Idle:0"     ; [BB]
+  2, 12, "u.fanatics_Idle:0"      ; [GB] & [CT]
+  2, 13, "u.awacs_Idle:0"         ; [APL]
+  2, 14, "u.worker_Idle:0"        ; [GB]
+  2, 15, "u.leader_Idle:0"        ; [GB]
+  2, 16, "u.barbarian_leader_Idle:0" ; FiftyNine
+  2, 17, "u.migrants_Idle:0"      ; Eleazar
+;  3, 15, "u.train_Idle:0"        ; Eleazar
 
 ; Veteran Levels: up to 9 military honors for experienced units
 
diff --git a/data/amplio2/extra_units.spec b/data/amplio2/extra_units.spec
index 92c2baa7ca..459c5f0e76 100644
--- a/data/amplio2/extra_units.spec
+++ b/data/amplio2/extra_units.spec
@@ -26,105 +26,105 @@ dy = 48
 pixel_border = 1
 
 tiles = { "row", "column", "tag"
-  0,  0, "u.gladiators_Idle"
-  0,  1, "u.arbalests_Idle"
-  0,  2, "u.halberdiers_Idle"
-  0,  3, "u.samurai_Idle"
-  0,  4, "u.militia_Idle"
-  0,  5, "u.line_infantry_Idle"
-  0,  6, "u.grenadier_Idle"
-  0,  7, "u.fusiliers_Idle"
-  0,  8, "u.musket_militia_Idle"
-  0,  9, "u.marksman_Idle"
-
-  1,  0, "u.stormtroopers_Idle"
-  1,  1, "u.commando_Idle"
-  1,  7, "u.motorized_infantry_Idle"
-  1,  8, "u.tachanka_Idle"
-  1,  9, "u.mobile_fanatics_Idle"
-
-  2,  0, "u.dromedari_Idle"
-  2,  1, "u.mounted_archers_Idle"
-  2,  2, "u.mounted_samurai_Idle"
-  2,  3, "u.uhlan_Idle"
-  2,  4, "u.mounted_militia_Idle"
-  2,  5, "u.mounted_marksman_Idle"
-
-  3,  0, "u.early_light_tank_Idle", "u.mark_iv_Idle"
-  3,  1, "u.early_tank_Idle", "u.whippet_Idle"
-  3,  2, "u.early_heavy_tank_Idle", "u.renault_ft_Idle"
-  3,  3, "u.tank_Idle", "u.sherman_Idle"
-  3,  4, "u.heavy_tank_Idle", "u.leopard_Idle"
-  3,  5, "u.reactive_armor_Idle", "u.abrahams_Idle"
-  3,  6, "u.armored_car_Idle", "u.rolls_royce_armored_car_Idle"
-  3,  7, "u.armored_recon_vehicle_Idle", "u.rooikat_Idle"
-
-  4,  0, "u.trebuchet_Idle"
-  4,  1, "u.cannon_alternative_Idle"
-  4,  2, "u.longrange_howitzer_Idle", "u.panzerhaubitze2000_Idle"
-  4,  3, "u.ballista_Idle"
-  4,  4, "u.siege_tower_Idle"
-  4,  5, "u.battering_ram_Idle"
-
-  5,  0, "u.biplane_Idle"
-  5,  1, "u.gliderplane_Idle", "u.gotha_Idle"
-  5,  2, "u.ekranoplan_Idle"
-  5,  3, "u.divebomber_Idle"
-  5,  4, "u.transportplane_Idle", "u.c47_Idle"
-  5,  5, "u.jetfighter_Idle", "u.mig_Idle"
-  5,  6, "u.jetbomber_Idle"
-  5,  7, "u.supersonic_fighter_Idle"
-  5,  8, "u.transportjet_Idle"
-  5,  9, "u.strikeplane_Idle", "u.a10_warthog_Idle"
-  5, 10, "u.strikejet_Idle", "u.f4_Idle"
-  5, 12, "u.balloon_Idle"
-  5, 13, "u.zeppelin_Idle"
-
-  6,  0, "u.light_helicopter_Idle", "u.alouette_iii_Idle"
-  6,  1, "u.transport_helicopter_Idle", "u.chinook_Idle"
-  6,  2, "u.attack_transport_helicopter_Idle", "u.mi24_Idle"
-  6,  4, "u.drone_Idle"
-  6,  6, "u.v2_rocket_Idle"
-
-  7,  0, "u.quinquireme_Idle"
-  7,  1, "u.longboat_Idle"
-  7,  2, "u.junk_Idle"
-  7,  3, "u.cog_Idle"
-  7,  4, "u.galleon_alternative_Idle"
-  7,  5, "u.frigate_alternative_Idle"
-  7,  6, "u.flagship_Idle"
-  7,  7, "u.paddle_steamer_Idle"
-  7,  8, "u.patrol_boat_Idle"
-  7,  9, "u.feluca_Idle"
-  7, 10, "u.container_ship_Idle"
-
-  8,  0, "u.dredger_Idle"
-  8,  1, "u.icebreaker_Idle"
-  8,  2, "u.minesweeper_Idle"
-  8,  4, "u.rowboat_Idle"
-  8,  6, "u.early_submarine_Idle"
-
-  9,  0, "u.slave_Idle"
-  9,  1, "u.emissary_Idle"
-  9,  2, "u.barbarian_leader_alternative_Idle"
-  9,  3, "u.early_explorer_Idle"
-  9,  4, "u.operative_Idle"
-  9,  5, "u.armoured_train_Idle"
-  9,  6, "u.rail_artillery_Idle"
-
- 10,  0, "u.wolves_Idle"
- 10,  1, "u.panther_Idle"
- 10,  2, "u.tiger_Idle"
- 10,  3, "u.lion_Idle"
- 10,  4, "u.bear_Idle"
- 10,  5, "u.snake_Idle"
- 10,  6, "u.alligator_Idle"
- 10,  7, "u.orangutan_Idle"
- 10,  8, "u.hippopotamus_Idle"
- 10,  9, "u.rhinoceros_Idle"
- 10, 10, "u.elephant_Idle"
- 10, 11, "u.polar_bear_Idle"
- 10, 12, "u.squid_Idle"
-
- 10, 14, "u.mammoth_Idle"
+  0,  0, "u.gladiators_Idle:0"
+  0,  1, "u.arbalests_Idle:0"
+  0,  2, "u.halberdiers_Idle:0"
+  0,  3, "u.samurai_Idle:0"
+  0,  4, "u.militia_Idle:0"
+  0,  5, "u.line_infantry_Idle:0"
+  0,  6, "u.grenadier_Idle:0"
+  0,  7, "u.fusiliers_Idle:0"
+  0,  8, "u.musket_militia_Idle:0"
+  0,  9, "u.marksman_Idle:0"
+
+  1,  0, "u.stormtroopers_Idle:0"
+  1,  1, "u.commando_Idle:0"
+  1,  7, "u.motorized_infantry_Idle:0"
+  1,  8, "u.tachanka_Idle:0"
+  1,  9, "u.mobile_fanatics_Idle:0"
+
+  2,  0, "u.dromedari_Idle:0"
+  2,  1, "u.mounted_archers_Idle:0"
+  2,  2, "u.mounted_samurai_Idle:0"
+  2,  3, "u.uhlan_Idle:0"
+  2,  4, "u.mounted_militia_Idle:0"
+  2,  5, "u.mounted_marksman_Idle:0"
+
+  3,  0, "u.early_light_tank_Idle:0", "u.mark_iv_Idle:0"
+  3,  1, "u.early_tank_Idle:0", "u.whippet_Idle:0"
+  3,  2, "u.early_heavy_tank_Idle:0", "u.renault_ft_Idle:0"
+  3,  3, "u.tank_Idle:0", "u.sherman_Idle:0"
+  3,  4, "u.heavy_tank_Idle:0", "u.leopard_Idle:0"
+  3,  5, "u.reactive_armor_Idle:0", "u.abrahams_Idle:0"
+  3,  6, "u.armored_car_Idle:0", "u.rolls_royce_armored_car_Idle:0"
+  3,  7, "u.armored_recon_vehicle_Idle:0", "u.rooikat_Idle:0"
+
+  4,  0, "u.trebuchet_Idle:0"
+  4,  1, "u.cannon_alternative_Idle:0"
+  4,  2, "u.longrange_howitzer_Idle:0", "u.panzerhaubitze2000_Idle:0"
+  4,  3, "u.ballista_Idle:0"
+  4,  4, "u.siege_tower_Idle:0"
+  4,  5, "u.battering_ram_Idle:0"
+
+  5,  0, "u.biplane_Idle:0"
+  5,  1, "u.gliderplane_Idle:0", "u.gotha_Idle:0"
+  5,  2, "u.ekranoplan_Idle:0"
+  5,  3, "u.divebomber_Idle:0"
+  5,  4, "u.transportplane_Idle:0", "u.c47_Idle:0"
+  5,  5, "u.jetfighter_Idle:0", "u.mig_Idle:0"
+  5,  6, "u.jetbomber_Idle:0"
+  5,  7, "u.supersonic_fighter_Idle:0"
+  5,  8, "u.transportjet_Idle:0"
+  5,  9, "u.strikeplane_Idle:0", "u.a10_warthog_Idle:0"
+  5, 10, "u.strikejet_Idle:0", "u.f4_Idle:0"
+  5, 12, "u.balloon_Idle:0"
+  5, 13, "u.zeppelin_Idle:0"
+
+  6,  0, "u.light_helicopter_Idle:0", "u.alouette_iii_Idle:0"
+  6,  1, "u.transport_helicopter_Idle:0", "u.chinook_Idle:0"
+  6,  2, "u.attack_transport_helicopter_Idle:0", "u.mi24_Idle:0"
+  6,  4, "u.drone_Idle:0"
+  6,  6, "u.v2_rocket_Idle:0"
+
+  7,  0, "u.quinquireme_Idle:0"
+  7,  1, "u.longboat_Idle:0"
+  7,  2, "u.junk_Idle:0"
+  7,  3, "u.cog_Idle:0"
+  7,  4, "u.galleon_alternative_Idle:0"
+  7,  5, "u.frigate_alternative_Idle:0"
+  7,  6, "u.flagship_Idle:0"
+  7,  7, "u.paddle_steamer_Idle:0"
+  7,  8, "u.patrol_boat_Idle:0"
+  7,  9, "u.feluca_Idle:0"
+  7, 10, "u.container_ship_Idle:0"
+
+  8,  0, "u.dredger_Idle:0"
+  8,  1, "u.icebreaker_Idle:0"
+  8,  2, "u.minesweeper_Idle:0"
+  8,  4, "u.rowboat_Idle:0"
+  8,  6, "u.early_submarine_Idle:0"
+
+  9,  0, "u.slave_Idle:0"
+  9,  1, "u.emissary_Idle:0"
+  9,  2, "u.barbarian_leader_alternative_Idle:0"
+  9,  3, "u.early_explorer_Idle:0"
+  9,  4, "u.operative_Idle:0"
+  9,  5, "u.armoured_train_Idle:0"
+  9,  6, "u.rail_artillery_Idle:0"
+
+ 10,  0, "u.wolves_Idle:0"
+ 10,  1, "u.panther_Idle:0"
+ 10,  2, "u.tiger_Idle:0"
+ 10,  3, "u.lion_Idle:0"
+ 10,  4, "u.bear_Idle:0"
+ 10,  5, "u.snake_Idle:0"
+ 10,  6, "u.alligator_Idle:0"
+ 10,  7, "u.orangutan_Idle:0"
+ 10,  8, "u.hippopotamus_Idle:0"
+ 10,  9, "u.rhinoceros_Idle:0"
+ 10, 10, "u.elephant_Idle:0"
+ 10, 11, "u.polar_bear_Idle:0"
+ 10, 12, "u.squid_Idle:0"
+
+ 10, 14, "u.mammoth_Idle:0"
 }
diff --git a/data/amplio2/units.spec b/data/amplio2/units.spec
index 5ff9292aae..067a92defb 100644
--- a/data/amplio2/units.spec
+++ b/data/amplio2/units.spec
@@ -47,64 +47,64 @@ dy = 48
 pixel_border = 1
 
 tiles = { "row", "column", "tag"
-                                ; Scenario League tags in brackets
-  0,  0, "u.armor_Idle"         ; [Nemo]
-  0,  1, "u.howitzer_Idle"      ; [Nemo]
-  0,  2, "u.battleship_Idle"    ; [Nemo]
-  0,  3, "u.bomber_Idle"        ; [GB]
-  0,  4, "u.cannon_Idle"        ; [CT]
-  0,  5, "u.caravan_Idle"       ; [Alex] & [CT]
-  0,  6, "u.carrier_Idle"       ; [Nemo]
-  0,  7, "u.catapult_Idle"      ; [CT]
-  0,  8, "u.horsemen_Idle"      ; [GB]
-  0,  9, "u.chariot_Idle"       ; [BB] & [GB]
-  0, 10, "u.cruiser_Idle"       ; [Nemo]
-  0, 11, "u.diplomat_Idle"      ; [Nemo]
-  0, 12, "u.fighter_Idle"       ; [Sor]
-  0, 13, "u.frigate_Idle"       ; [BB]
-  0, 14, "u.ironclad_Idle"      ; [Nemo]
-  0, 15, "u.knights_Idle"       ; [BB]
-  0, 16, "u.legion_Idle"        ; [GB]
-  0, 17, "u.mech_inf_Idle"      ; [GB]
-  0, 18, "u.warriors_Idle"      ; [GB]
-  0, 19, "u.musketeers_Idle"    ; [Alex] & [CT]
-  1,  0, "u.nuclear_Idle"       ; [Nemo] & [CS]
-  1,  1, "u.phalanx_Idle"       ; [GB] & [CT]
-  1,  2, "u.riflemen_Idle"      ; [Alex]
-  1,  3, "u.caravel_Idle"       ; [BB]
-  1,  4, "u.settlers_Idle"      ; [MHN]
-  1,  5, "u.submarine_Idle"     ; [GP]
-  1,  6, "u.transport_Idle"     ; [Nemo]
-  1,  7, "u.trireme_Idle"       ; [BB]
-  1,  8, "u.archers_Idle"       ; [GB]
-  1,  9, "u.cavalry_Idle"       ; [Alex]
-  1, 10, "u.cruise_missile_Idle" ; [CS]
-  1, 11, "u.destroyer_Idle"     ; [Nemo]
-  1, 12, "u.dragoons_Idle"      ; [GB]
-  1, 13, "u.explorer_Idle"      ; [Alex] & [CT]
-  1, 14, "u.freight_Idle"       ; [CT] & qwm
-  1, 15, "u.galleon_Idle"       ; [BB]
-  1, 16, "u.partisan_Idle"      ; [BB] & [CT]
-  1, 17, "u.pikemen_Idle"       ; [T]
-  2,  0, "u.marines_Idle"       ; [GB]
-  2,  1, "u.spy_Idle"           ; [EW] & [CT]
-  2,  2, "u.engineers_Idle"     ; [Nemo] & [CT]
-  2,  3, "u.artillery_Idle"     ; [GB]
-  2,  4, "u.helicopter_Idle"    ; [T]
-  2,  5, "u.alpine_troops_Idle" ; [Nemo]
-  2,  6, "u.stealth_bomber_Idle" ; [GB]
-  2,  7, "u.stealth_fighter_Idle" ; [Nemo] & [AHS]
-  2,  8, "u.aegis_cruiser_Idle" ; [GP]
-  2,  9, "u.paratroopers_Idle"  ; [Alex]
-  2, 10, "u.elephants_Idle"     ; [Alex] & [GG] & [CT]
-  2, 11, "u.crusaders_Idle"     ; [BB]
-  2, 12, "u.fanatics_Idle"      ; [GB] & [CT]
-  2, 13, "u.awacs_Idle"         ; [APL]
-  2, 14, "u.worker_Idle"        ; [GB]
-  2, 15, "u.leader_Idle"        ; [GB]
-  2, 16, "u.barbarian_leader_Idle" ; FiftyNine
-  2, 17, "u.migrants_Idle"      ; Eleazar
-  2, 18, "u.storm_Idle"
-;  2, 19, "u.train_Idle"        ; Eleazar
+                                  ; Scenario League tags in brackets
+  0,  0, "u.armor_Idle:0"         ; [Nemo]
+  0,  1, "u.howitzer_Idle:0"      ; [Nemo]
+  0,  2, "u.battleship_Idle:0"    ; [Nemo]
+  0,  3, "u.bomber_Idle:0"        ; [GB]
+  0,  4, "u.cannon_Idle:0"        ; [CT]
+  0,  5, "u.caravan_Idle:0"       ; [Alex] & [CT]
+  0,  6, "u.carrier_Idle:0"       ; [Nemo]
+  0,  7, "u.catapult_Idle:0"      ; [CT]
+  0,  8, "u.horsemen_Idle:0"      ; [GB]
+  0,  9, "u.chariot_Idle:0"       ; [BB] & [GB]
+  0, 10, "u.cruiser_Idle:0"       ; [Nemo]
+  0, 11, "u.diplomat_Idle:0"      ; [Nemo]
+  0, 12, "u.fighter_Idle:0"       ; [Sor]
+  0, 13, "u.frigate_Idle:0"       ; [BB]
+  0, 14, "u.ironclad_Idle:0"      ; [Nemo]
+  0, 15, "u.knights_Idle:0"       ; [BB]
+  0, 16, "u.legion_Idle:0"        ; [GB]
+  0, 17, "u.mech_inf_Idle:0"      ; [GB]
+  0, 18, "u.warriors_Idle:0"      ; [GB]
+  0, 19, "u.musketeers_Idle:0"    ; [Alex] & [CT]
+  1,  0, "u.nuclear_Idle:0"       ; [Nemo] & [CS]
+  1,  1, "u.phalanx_Idle:0"       ; [GB] & [CT]
+  1,  2, "u.riflemen_Idle:0"      ; [Alex]
+  1,  3, "u.caravel_Idle:0"       ; [BB]
+  1,  4, "u.settlers_Idle:0"      ; [MHN]
+  1,  5, "u.submarine_Idle:0"     ; [GP]
+  1,  6, "u.transport_Idle:0"     ; [Nemo]
+  1,  7, "u.trireme_Idle:0"       ; [BB]
+  1,  8, "u.archers_Idle:0"       ; [GB]
+  1,  9, "u.cavalry_Idle:0"       ; [Alex]
+  1, 10, "u.cruise_missile_Idle:0" ; [CS]
+  1, 11, "u.destroyer_Idle:0"     ; [Nemo]
+  1, 12, "u.dragoons_Idle:0"      ; [GB]
+  1, 13, "u.explorer_Idle:0"      ; [Alex] & [CT]
+  1, 14, "u.freight_Idle:0"       ; [CT] & qwm
+  1, 15, "u.galleon_Idle:0"       ; [BB]
+  1, 16, "u.partisan_Idle:0"      ; [BB] & [CT]
+  1, 17, "u.pikemen_Idle:0"       ; [T]
+  2,  0, "u.marines_Idle:0"       ; [GB]
+  2,  1, "u.spy_Idle:0"           ; [EW] & [CT]
+  2,  2, "u.engineers_Idle:0"     ; [Nemo] & [CT]
+  2,  3, "u.artillery_Idle:0"     ; [GB]
+  2,  4, "u.helicopter_Idle:0"    ; [T]
+  2,  5, "u.alpine_troops_Idle:0" ; [Nemo]
+  2,  6, "u.stealth_bomber_Idle:0" ; [GB]
+  2,  7, "u.stealth_fighter_Idle:0" ; [Nemo] & [AHS]
+  2,  8, "u.aegis_cruiser_Idle:0" ; [GP]
+  2,  9, "u.paratroopers_Idle:0"  ; [Alex]
+  2, 10, "u.elephants_Idle:0"     ; [Alex] & [GG] & [CT]
+  2, 11, "u.crusaders_Idle:0"     ; [BB]
+  2, 12, "u.fanatics_Idle:0"      ; [GB] & [CT]
+  2, 13, "u.awacs_Idle:0"         ; [APL]
+  2, 14, "u.worker_Idle:0"        ; [GB]
+  2, 15, "u.leader_Idle:0"        ; [GB]
+  2, 16, "u.barbarian_leader_Idle:0" ; FiftyNine
+  2, 17, "u.migrants_Idle:0"      ; Eleazar
+  2, 18, "u.storm_Idle:0"
+;  2, 19, "u.train_Idle:0"        ; Eleazar
 
 }
diff --git a/data/cimpletoon/orient_units.spec b/data/cimpletoon/orient_units.spec
index 6163c27de3..0492a94ad3 100644
--- a/data/cimpletoon/orient_units.spec
+++ b/data/cimpletoon/orient_units.spec
@@ -24,507 +24,507 @@ dy = 48
 pixel_border = 1
 
 tiles = { "row", "column", "tag"
-  0,  0, "u.settlers_Idle_sw"
-  0,  1, "u.settlers_Idle_w"
-  0,  2, "u.settlers_Idle_nw"
-  0,  3, "u.settlers_Idle_n"
-  0,  4, "u.settlers_Idle_ne"
-  0,  5, "u.settlers_Idle_e"
-  0,  6, "u.settlers_Idle_se"
-  0,  7, "u.settlers_Idle_s"
-
-  1,  0, "u.warriors_Idle_sw"
-  1,  1, "u.warriors_Idle_w"
-  1,  2, "u.warriors_Idle_nw"
-  1,  3, "u.warriors_Idle_n"
-  1,  4, "u.warriors_Idle_ne"
-  1,  5, "u.warriors_Idle_e"
-  1,  6, "u.warriors_Idle_se"
-  1,  7, "u.warriors_Idle_s"
-
-  2,  0, "u.explorer_Idle_sw"
-  2,  1, "u.explorer_Idle_w"
-  2,  2, "u.explorer_Idle_nw"
-  2,  3, "u.explorer_Idle_n"
-  2,  4, "u.explorer_Idle_ne"
-  2,  5, "u.explorer_Idle_e"
-  2,  6, "u.explorer_Idle_se"
-  2,  7, "u.explorer_Idle_s"
-
-  3,  0, "u.worker_Idle_sw"
-  3,  1, "u.worker_Idle_w"
-  3,  2, "u.worker_Idle_nw"
-  3,  3, "u.worker_Idle_n"
-  3,  4, "u.worker_Idle_ne"
-  3,  5, "u.worker_Idle_e"
-  3,  6, "u.worker_Idle_se"
-  3,  7, "u.worker_Idle_s"
-
-  4,  0, "u.horsemen_Idle_sw"
-  4,  1, "u.horsemen_Idle_w"
-  4,  2, "u.horsemen_Idle_nw"
-  4,  3, "u.horsemen_Idle_n"
-  4,  4, "u.horsemen_Idle_ne"
-  4,  5, "u.horsemen_Idle_e"
-  4,  6, "u.horsemen_Idle_se"
-  4,  7, "u.horsemen_Idle_s"
-
-  5,  0, "u.archers_Idle_sw"
-  5,  1, "u.archers_Idle_w"
-  5,  2, "u.archers_Idle_nw"
-  5,  3, "u.archers_Idle_n"
-  5,  4, "u.archers_Idle_ne"
-  5,  5, "u.archers_Idle_e"
-  5,  6, "u.archers_Idle_se"
-  5,  7, "u.archers_Idle_s"
-
-  6,  0, "u.phalanx_Idle_sw"
-  6,  1, "u.phalanx_Idle_w"
-  6,  2, "u.phalanx_Idle_nw"
-  6,  3, "u.phalanx_Idle_n"
-  6,  4, "u.phalanx_Idle_ne"
-  6,  5, "u.phalanx_Idle_e"
-  6,  6, "u.phalanx_Idle_se"
-  6,  7, "u.phalanx_Idle_s"
-
-  7,  0, "u.trireme_Idle_sw"
-  7,  1, "u.trireme_Idle_w"
-  7,  2, "u.trireme_Idle_nw"
-  7,  3, "u.trireme_Idle_n"
-  7,  4, "u.trireme_Idle_ne"
-  7,  5, "u.trireme_Idle_e"
-  7,  6, "u.trireme_Idle_se"
-  7,  7, "u.trireme_Idle_s"
-
-  8,  0, "u.chariot_Idle_sw"
-  8,  1, "u.chariot_Idle_w"
-  8,  2, "u.chariot_Idle_nw"
-  8,  3, "u.chariot_Idle_n"
-  8,  4, "u.chariot_Idle_ne"
-  8,  5, "u.chariot_Idle_e"
-  8,  6, "u.chariot_Idle_se"
-  8,  7, "u.chariot_Idle_s"
-
-  9,  0, "u.catapult_Idle_sw"
-  9,  1, "u.catapult_Idle_w"
-  9,  2, "u.catapult_Idle_nw"
-  9,  3, "u.catapult_Idle_n"
-  9,  4, "u.catapult_Idle_ne"
-  9,  5, "u.catapult_Idle_e"
-  9,  6, "u.catapult_Idle_se"
-  9,  7, "u.catapult_Idle_s"
-
-  10,  0, "u.legion_Idle_sw"
-  10,  1, "u.legion_Idle_w"
-  10,  2, "u.legion_Idle_nw"
-  10,  3, "u.legion_Idle_n"
-  10,  4, "u.legion_Idle_ne"
-  10,  5, "u.legion_Idle_e"
-  10,  6, "u.legion_Idle_se"
-  10,  7, "u.legion_Idle_s"
-
-  11,  0, "u.diplomat_Idle_sw"
-  11,  1, "u.diplomat_Idle_w"
-  11,  2, "u.diplomat_Idle_nw"
-  11,  3, "u.diplomat_Idle_n"
-  11,  4, "u.diplomat_Idle_ne"
-  11,  5, "u.diplomat_Idle_e"
-  11,  6, "u.diplomat_Idle_se"
-  11,  7, "u.diplomat_Idle_s"
-
-  12,  0, "u.caravan_Idle_sw"
-  12,  1, "u.caravan_Idle_w"
-  12,  2, "u.caravan_Idle_nw"
-  12,  3, "u.caravan_Idle_n"
-  12,  4, "u.caravan_Idle_ne"
-  12,  5, "u.caravan_Idle_e"
-  12,  6, "u.caravan_Idle_se"
-  12,  7, "u.caravan_Idle_s"
-
-  13,  0, "u.pikemen_Idle_sw"
-  13,  1, "u.pikemen_Idle_w"
-  13,  2, "u.pikemen_Idle_nw"
-  13,  3, "u.pikemen_Idle_n"
-  13,  4, "u.pikemen_Idle_ne"
-  13,  5, "u.pikemen_Idle_e"
-  13,  6, "u.pikemen_Idle_se"
-  13,  7, "u.pikemen_Idle_s"
-
-  14,  0, "u.knights_Idle_sw"
-  14,  1, "u.knights_Idle_w"
-  14,  2, "u.knights_Idle_nw"
-  14,  3, "u.knights_Idle_n"
-  14,  4, "u.knights_Idle_ne"
-  14,  5, "u.knights_Idle_e"
-  14,  6, "u.knights_Idle_se"
-  14,  7, "u.knights_Idle_s"
-
-  15,  0, "u.caravel_Idle_sw"
-  15,  1, "u.caravel_Idle_w"
-  15,  2, "u.caravel_Idle_nw"
-  15,  3, "u.caravel_Idle_n"
-  15,  4, "u.caravel_Idle_ne"
-  15,  5, "u.caravel_Idle_e"
-  15,  6, "u.caravel_Idle_se"
-  15,  7, "u.caravel_Idle_s"
-
-  16,  0, "u.galleon_Idle_sw"
-  16,  1, "u.galleon_Idle_w"
-  16,  2, "u.galleon_Idle_nw"
-  16,  3, "u.galleon_Idle_n"
-  16,  4, "u.galleon_Idle_ne"
-  16,  5, "u.galleon_Idle_e"
-  16,  6, "u.galleon_Idle_se"
-  16,  7, "u.galleon_Idle_s"
-
-  17,  0, "u.frigate_Idle_sw"
-  17,  1, "u.frigate_Idle_w"
-  17,  2, "u.frigate_Idle_nw"
-  17,  3, "u.frigate_Idle_n"
-  17,  4, "u.frigate_Idle_ne"
-  17,  5, "u.frigate_Idle_e"
-  17,  6, "u.frigate_Idle_se"
-  17,  7, "u.frigate_Idle_s"
-
-  18,  0, "u.ironclad_Idle_sw"
-  18,  1, "u.ironclad_Idle_w"
-  18,  2, "u.ironclad_Idle_nw"
-  18,  3, "u.ironclad_Idle_n"
-  18,  4, "u.ironclad_Idle_ne"
-  18,  5, "u.ironclad_Idle_e"
-  18,  6, "u.ironclad_Idle_se"
-  18,  7, "u.ironclad_Idle_s"
-
-  19,  0, "u.musketeers_Idle_sw"
-  19,  1, "u.musketeers_Idle_w"
-  19,  2, "u.musketeers_Idle_nw"
-  19,  3, "u.musketeers_Idle_n"
-  19,  4, "u.musketeers_Idle_ne"
-  19,  5, "u.musketeers_Idle_e"
-  19,  6, "u.musketeers_Idle_se"
-  19,  7, "u.musketeers_Idle_s"
-
-  20,  0, "u.dragoons_Idle_sw"
-  20,  1, "u.dragoons_Idle_w"
-  20,  2, "u.dragoons_Idle_nw"
-  20,  3, "u.dragoons_Idle_n"
-  20,  4, "u.dragoons_Idle_ne"
-  20,  5, "u.dragoons_Idle_e"
-  20,  6, "u.dragoons_Idle_se"
-  20,  7, "u.dragoons_Idle_s"
-
-  21,  0, "u.cannon_Idle_sw"
-  21,  1, "u.cannon_Idle_w"
-  21,  2, "u.cannon_Idle_nw"
-  21,  3, "u.cannon_Idle_n"
-  21,  4, "u.cannon_Idle_ne"
-  21,  5, "u.cannon_Idle_e"
-  21,  6, "u.cannon_Idle_se"
-  21,  7, "u.cannon_Idle_s"
-
-  22,  0, "u.engineers_Idle_sw"
-  22,  1, "u.engineers_Idle_w"
-  22,  2, "u.engineers_Idle_nw"
-  22,  3, "u.engineers_Idle_n"
-  22,  4, "u.engineers_Idle_ne"
-  22,  5, "u.engineers_Idle_e"
-  22,  6, "u.engineers_Idle_se"
-  22,  7, "u.engineers_Idle_s"
-
-  23,  0, "u.transport_Idle_sw"
-  23,  1, "u.transport_Idle_w"
-  23,  2, "u.transport_Idle_nw"
-  23,  3, "u.transport_Idle_n"
-  23,  4, "u.transport_Idle_ne"
-  23,  5, "u.transport_Idle_e"
-  23,  6, "u.transport_Idle_se"
-  23,  7, "u.transport_Idle_s"
-
-  24,  0, "u.destroyer_Idle_sw"
-  24,  1, "u.destroyer_Idle_w"
-  24,  2, "u.destroyer_Idle_nw"
-  24,  3, "u.destroyer_Idle_n"
-  24,  4, "u.destroyer_Idle_ne"
-  24,  5, "u.destroyer_Idle_e"
-  24,  6, "u.destroyer_Idle_se"
-  24,  7, "u.destroyer_Idle_s"
-
-  25,  0, "u.riflemen_Idle_sw"
-  25,  1, "u.riflemen_Idle_w"
-  25,  2, "u.riflemen_Idle_nw"
-  25,  3, "u.riflemen_Idle_n"
-  25,  4, "u.riflemen_Idle_ne"
-  25,  5, "u.riflemen_Idle_e"
-  25,  6, "u.riflemen_Idle_se"
-  25,  7, "u.riflemen_Idle_s"
-
-  26,  0, "u.cavalry_Idle_sw"
-  26,  1, "u.cavalry_Idle_w"
-  26,  2, "u.cavalry_Idle_nw"
-  26,  3, "u.cavalry_Idle_n"
-  26,  4, "u.cavalry_Idle_ne"
-  26,  5, "u.cavalry_Idle_e"
-  26,  6, "u.cavalry_Idle_se"
-  26,  7, "u.cavalry_Idle_s"
-
-  27,  0, "u.alpine_troops_Idle_sw"
-  27,  1, "u.alpine_troops_Idle_w"
-  27,  2, "u.alpine_troops_Idle_nw"
-  27,  3, "u.alpine_troops_Idle_n"
-  27,  4, "u.alpine_troops_Idle_ne"
-  27,  5, "u.alpine_troops_Idle_e"
-  27,  6, "u.alpine_troops_Idle_se"
-  27,  7, "u.alpine_troops_Idle_s"
-
-  28,  0, "u.freight_Idle_sw"
-  28,  1, "u.freight_Idle_w"
-  28,  2, "u.freight_Idle_nw"
-  28,  3, "u.freight_Idle_n"
-  28,  4, "u.freight_Idle_ne"
-  28,  5, "u.freight_Idle_e"
-  28,  6, "u.freight_Idle_se"
-  28,  7, "u.freight_Idle_s"
-
-  29,  0, "u.spy_Idle_sw"
-  29,  1, "u.spy_Idle_w"
-  29,  2, "u.spy_Idle_nw"
-  29,  3, "u.spy_Idle_n"
-  29,  4, "u.spy_Idle_ne"
-  29,  5, "u.spy_Idle_e"
-  29,  6, "u.spy_Idle_se"
-  29,  7, "u.spy_Idle_s"
-
-  30,  0, "u.cruiser_Idle_sw"
-  30,  1, "u.cruiser_Idle_w"
-  30,  2, "u.cruiser_Idle_nw"
-  30,  3, "u.cruiser_Idle_n"
-  30,  4, "u.cruiser_Idle_ne"
-  30,  5, "u.cruiser_Idle_e"
-  30,  6, "u.cruiser_Idle_se"
-  30,  7, "u.cruiser_Idle_s"
-
-  31,  0, "u.battleship_Idle_sw"
-  31,  1, "u.battleship_Idle_w"
-  31,  2, "u.battleship_Idle_nw"
-  31,  3, "u.battleship_Idle_n"
-  31,  4, "u.battleship_Idle_ne"
-  31,  5, "u.battleship_Idle_e"
-  31,  6, "u.battleship_Idle_se"
-  31,  7, "u.battleship_Idle_s"
-
-  32,  0, "u.submarine_Idle_sw"
-  32,  1, "u.submarine_Idle_w"
-  32,  2, "u.submarine_Idle_nw"
-  32,  3, "u.submarine_Idle_n"
-  32,  4, "u.submarine_Idle_ne"
-  32,  5, "u.submarine_Idle_e"
-  32,  6, "u.submarine_Idle_se"
-  32,  7, "u.submarine_Idle_s"
-
-  33,  0, "u.marines_Idle_sw"
-  33,  1, "u.marines_Idle_w"
-  33,  2, "u.marines_Idle_nw"
-  33,  3, "u.marines_Idle_n"
-  33,  4, "u.marines_Idle_ne"
-  33,  5, "u.marines_Idle_e"
-  33,  6, "u.marines_Idle_se"
-  33,  7, "u.marines_Idle_s"
-
-  34,  0, "u.partisan_Idle_sw"
-  34,  1, "u.partisan_Idle_w"
-  34,  2, "u.partisan_Idle_nw"
-  34,  3, "u.partisan_Idle_n"
-  34,  4, "u.partisan_Idle_ne"
-  34,  5, "u.partisan_Idle_e"
-  34,  6, "u.partisan_Idle_se"
-  34,  7, "u.partisan_Idle_s"
-
-  35,  0, "u.artillery_Idle_sw"
-  35,  1, "u.artillery_Idle_w"
-  35,  2, "u.artillery_Idle_nw"
-  35,  3, "u.artillery_Idle_n"
-  35,  4, "u.artillery_Idle_ne"
-  35,  5, "u.artillery_Idle_e"
-  35,  6, "u.artillery_Idle_se"
-  35,  7, "u.artillery_Idle_s"
-
-  36,  0, "u.fighter_Idle_sw"
-  36,  1, "u.fighter_Idle_w"
-  36,  2, "u.fighter_Idle_nw"
-  36,  3, "u.fighter_Idle_n"
-  36,  4, "u.fighter_Idle_ne"
-  36,  5, "u.fighter_Idle_e"
-  36,  6, "u.fighter_Idle_se"
-  36,  7, "u.fighter_Idle_s"
-
-  37,  0, "u.aegis_cruiser_Idle_sw"
-  37,  1, "u.aegis_cruiser_Idle_w"
-  37,  2, "u.aegis_cruiser_Idle_nw"
-  37,  3, "u.aegis_cruiser_Idle_n"
-  37,  4, "u.aegis_cruiser_Idle_ne"
-  37,  5, "u.aegis_cruiser_Idle_e"
-  37,  6, "u.aegis_cruiser_Idle_se"
-  37,  7, "u.aegis_cruiser_Idle_s"
-
-  38,  0, "u.carrier_Idle_sw"
-  38,  1, "u.carrier_Idle_w"
-  38,  2, "u.carrier_Idle_nw"
-  38,  3, "u.carrier_Idle_n"
-  38,  4, "u.carrier_Idle_ne"
-  38,  5, "u.carrier_Idle_e"
-  38,  6, "u.carrier_Idle_se"
-  38,  7, "u.carrier_Idle_s"
-
-  39,  0, "u.armor_Idle_sw"
-  39,  1, "u.armor_Idle_w"
-  39,  2, "u.armor_Idle_nw"
-  39,  3, "u.armor_Idle_n"
-  39,  4, "u.armor_Idle_ne"
-  39,  5, "u.armor_Idle_e"
-  39,  6, "u.armor_Idle_se"
-  39,  7, "u.armor_Idle_s"
-
-  40,  0, "u.mech_inf_Idle_sw"
-  40,  1, "u.mech_inf_Idle_w"
-  40,  2, "u.mech_inf_Idle_nw"
-  40,  3, "u.mech_inf_Idle_n"
-  40,  4, "u.mech_inf_Idle_ne"
-  40,  5, "u.mech_inf_Idle_e"
-  40,  6, "u.mech_inf_Idle_se"
-  40,  7, "u.mech_inf_Idle_s"
-
-  41,  0, "u.howitzer_Idle_sw"
-  41,  1, "u.howitzer_Idle_w"
-  41,  2, "u.howitzer_Idle_nw"
-  41,  3, "u.howitzer_Idle_n"
-  41,  4, "u.howitzer_Idle_ne"
-  41,  5, "u.howitzer_Idle_e"
-  41,  6, "u.howitzer_Idle_se"
-  41,  7, "u.howitzer_Idle_s"
-
-  42,  0, "u.paratroopers_Idle_sw"
-  42,  1, "u.paratroopers_Idle_w"
-  42,  2, "u.paratroopers_Idle_nw"
-  42,  3, "u.paratroopers_Idle_n"
-  42,  4, "u.paratroopers_Idle_ne"
-  42,  5, "u.paratroopers_Idle_e"
-  42,  6, "u.paratroopers_Idle_se"
-  42,  7, "u.paratroopers_Idle_s"
-
-  43,  0, "u.helicopter_Idle_sw"
-  43,  1, "u.helicopter_Idle_w"
-  43,  2, "u.helicopter_Idle_nw"
-  43,  3, "u.helicopter_Idle_n"
-  43,  4, "u.helicopter_Idle_ne"
-  43,  5, "u.helicopter_Idle_e"
-  43,  6, "u.helicopter_Idle_se"
-  43,  7, "u.helicopter_Idle_s"
-
-  44,  0, "u.bomber_Idle_sw"
-  44,  1, "u.bomber_Idle_w"
-  44,  2, "u.bomber_Idle_nw"
-  44,  3, "u.bomber_Idle_n"
-  44,  4, "u.bomber_Idle_ne"
-  44,  5, "u.bomber_Idle_e"
-  44,  6, "u.bomber_Idle_se"
-  44,  7, "u.bomber_Idle_s"
-
-  45,  0, "u.awacs_Idle_sw"
-  45,  1, "u.awacs_Idle_w"
-  45,  2, "u.awacs_Idle_nw"
-  45,  3, "u.awacs_Idle_n"
-  45,  4, "u.awacs_Idle_ne"
-  45,  5, "u.awacs_Idle_e"
-  45,  6, "u.awacs_Idle_se"
-  45,  7, "u.awacs_Idle_s"
-
-  46,  0, "u.nuclear_Idle_sw"
-  46,  1, "u.nuclear_Idle_w"
-  46,  2, "u.nuclear_Idle_nw"
-  46,  3, "u.nuclear_Idle_n"
-  46,  4, "u.nuclear_Idle_ne"
-  46,  5, "u.nuclear_Idle_e"
-  46,  6, "u.nuclear_Idle_se"
-  46,  7, "u.nuclear_Idle_s"
-
-  47,  0, "u.cruise_missile_Idle_sw"
-  47,  1, "u.cruise_missile_Idle_w"
-  47,  2, "u.cruise_missile_Idle_nw"
-  47,  3, "u.cruise_missile_Idle_n"
-  47,  4, "u.cruise_missile_Idle_ne"
-  47,  5, "u.cruise_missile_Idle_e"
-  47,  6, "u.cruise_missile_Idle_se"
-  47,  7, "u.cruise_missile_Idle_s"
-
-  48,  0, "u.stealth_bomber_Idle_sw"
-  48,  1, "u.stealth_bomber_Idle_w"
-  48,  2, "u.stealth_bomber_Idle_nw"
-  48,  3, "u.stealth_bomber_Idle_n"
-  48,  4, "u.stealth_bomber_Idle_ne"
-  48,  5, "u.stealth_bomber_Idle_e"
-  48,  6, "u.stealth_bomber_Idle_se"
-  48,  7, "u.stealth_bomber_Idle_s"
-
-  49,  0, "u.stealth_fighter_Idle_sw"
-  49,  1, "u.stealth_fighter_Idle_w"
-  49,  2, "u.stealth_fighter_Idle_nw"
-  49,  3, "u.stealth_fighter_Idle_n"
-  49,  4, "u.stealth_fighter_Idle_ne"
-  49,  5, "u.stealth_fighter_Idle_e"
-  49,  6, "u.stealth_fighter_Idle_se"
-  49,  7, "u.stealth_fighter_Idle_s"
-
-  50,  0, "u.leader_Idle_sw"
-  50,  1, "u.leader_Idle_w"
-  50,  2, "u.leader_Idle_nw"
-  50,  3, "u.leader_Idle_n"
-  50,  4, "u.leader_Idle_ne"
-  50,  5, "u.leader_Idle_e"
-  50,  6, "u.leader_Idle_se"
-  50,  7, "u.leader_Idle_s"
-
-  51,  0, "u.barbarian_leader_Idle_sw"
-  51,  1, "u.barbarian_leader_Idle_w"
-  51,  2, "u.barbarian_leader_Idle_nw"
-  51,  3, "u.barbarian_leader_Idle_n"
-  51,  4, "u.barbarian_leader_Idle_ne"
-  51,  5, "u.barbarian_leader_Idle_e"
-  51,  6, "u.barbarian_leader_Idle_se"
-  51,  7, "u.barbarian_leader_Idle_s"
-
-  52,  0, "u.fanatics_Idle_sw"
-  52,  1, "u.fanatics_Idle_w"
-  52,  2, "u.fanatics_Idle_nw"
-  52,  3, "u.fanatics_Idle_n"
-  52,  4, "u.fanatics_Idle_ne"
-  52,  5, "u.fanatics_Idle_e"
-  52,  6, "u.fanatics_Idle_se"
-  52,  7, "u.fanatics_Idle_s"
-
-  53,  0, "u.crusaders_Idle_sw"
-  53,  1, "u.crusaders_Idle_w"
-  53,  2, "u.crusaders_Idle_nw"
-  53,  3, "u.crusaders_Idle_n"
-  53,  4, "u.crusaders_Idle_ne"
-  53,  5, "u.crusaders_Idle_e"
-  53,  6, "u.crusaders_Idle_se"
-  53,  7, "u.crusaders_Idle_s"
-
-  54,  0, "u.elephants_Idle_sw"
-  54,  1, "u.elephants_Idle_w"
-  54,  2, "u.elephants_Idle_nw"
-  54,  3, "u.elephants_Idle_n"
-  54,  4, "u.elephants_Idle_ne"
-  54,  5, "u.elephants_Idle_e"
-  54,  6, "u.elephants_Idle_se"
-  54,  7, "u.elephants_Idle_s"
-
-  55,  0, "u.migrants_Idle_sw"
-  55,  1, "u.migrants_Idle_w"
-  55,  2, "u.migrants_Idle_nw"
-  55,  3, "u.migrants_Idle_n"
-  55,  4, "u.migrants_Idle_ne"
-  55,  5, "u.migrants_Idle_e"
-  55,  6, "u.migrants_Idle_se"
-  55,  7, "u.migrants_Idle_s"
+  0,  0, "u.settlers_Idle_sw:0"
+  0,  1, "u.settlers_Idle_w:0"
+  0,  2, "u.settlers_Idle_nw:0"
+  0,  3, "u.settlers_Idle_n:0"
+  0,  4, "u.settlers_Idle_ne:0"
+  0,  5, "u.settlers_Idle_e:0"
+  0,  6, "u.settlers_Idle_se:0"
+  0,  7, "u.settlers_Idle_s:0"
+
+  1,  0, "u.warriors_Idle_sw:0"
+  1,  1, "u.warriors_Idle_w:0"
+  1,  2, "u.warriors_Idle_nw:0"
+  1,  3, "u.warriors_Idle_n:0"
+  1,  4, "u.warriors_Idle_ne:0"
+  1,  5, "u.warriors_Idle_e:0"
+  1,  6, "u.warriors_Idle_se:0"
+  1,  7, "u.warriors_Idle_s:0"
+
+  2,  0, "u.explorer_Idle_sw:0"
+  2,  1, "u.explorer_Idle_w:0"
+  2,  2, "u.explorer_Idle_nw:0"
+  2,  3, "u.explorer_Idle_n:0"
+  2,  4, "u.explorer_Idle_ne:0"
+  2,  5, "u.explorer_Idle_e:0"
+  2,  6, "u.explorer_Idle_se:0"
+  2,  7, "u.explorer_Idle_s:0"
+
+  3,  0, "u.worker_Idle_sw:0"
+  3,  1, "u.worker_Idle_w:0"
+  3,  2, "u.worker_Idle_nw:0"
+  3,  3, "u.worker_Idle_n:0"
+  3,  4, "u.worker_Idle_ne:0"
+  3,  5, "u.worker_Idle_e:0"
+  3,  6, "u.worker_Idle_se:0"
+  3,  7, "u.worker_Idle_s:0"
+
+  4,  0, "u.horsemen_Idle_sw:0"
+  4,  1, "u.horsemen_Idle_w:0"
+  4,  2, "u.horsemen_Idle_nw:0"
+  4,  3, "u.horsemen_Idle_n:0"
+  4,  4, "u.horsemen_Idle_ne:0"
+  4,  5, "u.horsemen_Idle_e:0"
+  4,  6, "u.horsemen_Idle_se:0"
+  4,  7, "u.horsemen_Idle_s:0"
+
+  5,  0, "u.archers_Idle_sw:0"
+  5,  1, "u.archers_Idle_w:0"
+  5,  2, "u.archers_Idle_nw:0"
+  5,  3, "u.archers_Idle_n:0"
+  5,  4, "u.archers_Idle_ne:0"
+  5,  5, "u.archers_Idle_e:0"
+  5,  6, "u.archers_Idle_se:0"
+  5,  7, "u.archers_Idle_s:0"
+
+  6,  0, "u.phalanx_Idle_sw:0"
+  6,  1, "u.phalanx_Idle_w:0"
+  6,  2, "u.phalanx_Idle_nw:0"
+  6,  3, "u.phalanx_Idle_n:0"
+  6,  4, "u.phalanx_Idle_ne:0"
+  6,  5, "u.phalanx_Idle_e:0"
+  6,  6, "u.phalanx_Idle_se:0"
+  6,  7, "u.phalanx_Idle_s:0"
+
+  7,  0, "u.trireme_Idle_sw:0"
+  7,  1, "u.trireme_Idle_w:0"
+  7,  2, "u.trireme_Idle_nw:0"
+  7,  3, "u.trireme_Idle_n:0"
+  7,  4, "u.trireme_Idle_ne:0"
+  7,  5, "u.trireme_Idle_e:0"
+  7,  6, "u.trireme_Idle_se:0"
+  7,  7, "u.trireme_Idle_s:0"
+
+  8,  0, "u.chariot_Idle_sw:0"
+  8,  1, "u.chariot_Idle_w:0"
+  8,  2, "u.chariot_Idle_nw:0"
+  8,  3, "u.chariot_Idle_n:0"
+  8,  4, "u.chariot_Idle_ne:0"
+  8,  5, "u.chariot_Idle_e:0"
+  8,  6, "u.chariot_Idle_se:0"
+  8,  7, "u.chariot_Idle_s:0"
+
+  9,  0, "u.catapult_Idle_sw:0"
+  9,  1, "u.catapult_Idle_w:0"
+  9,  2, "u.catapult_Idle_nw:0"
+  9,  3, "u.catapult_Idle_n:0"
+  9,  4, "u.catapult_Idle_ne:0"
+  9,  5, "u.catapult_Idle_e:0"
+  9,  6, "u.catapult_Idle_se:0"
+  9,  7, "u.catapult_Idle_s:0"
+
+  10,  0, "u.legion_Idle_sw:0"
+  10,  1, "u.legion_Idle_w:0"
+  10,  2, "u.legion_Idle_nw:0"
+  10,  3, "u.legion_Idle_n:0"
+  10,  4, "u.legion_Idle_ne:0"
+  10,  5, "u.legion_Idle_e:0"
+  10,  6, "u.legion_Idle_se:0"
+  10,  7, "u.legion_Idle_s:0"
+
+  11,  0, "u.diplomat_Idle_sw:0"
+  11,  1, "u.diplomat_Idle_w:0"
+  11,  2, "u.diplomat_Idle_nw:0"
+  11,  3, "u.diplomat_Idle_n:0"
+  11,  4, "u.diplomat_Idle_ne:0"
+  11,  5, "u.diplomat_Idle_e:0"
+  11,  6, "u.diplomat_Idle_se:0"
+  11,  7, "u.diplomat_Idle_s:0"
+
+  12,  0, "u.caravan_Idle_sw:0"
+  12,  1, "u.caravan_Idle_w:0"
+  12,  2, "u.caravan_Idle_nw:0"
+  12,  3, "u.caravan_Idle_n:0"
+  12,  4, "u.caravan_Idle_ne:0"
+  12,  5, "u.caravan_Idle_e:0"
+  12,  6, "u.caravan_Idle_se:0"
+  12,  7, "u.caravan_Idle_s:0"
+
+  13,  0, "u.pikemen_Idle_sw:0"
+  13,  1, "u.pikemen_Idle_w:0"
+  13,  2, "u.pikemen_Idle_nw:0"
+  13,  3, "u.pikemen_Idle_n:0"
+  13,  4, "u.pikemen_Idle_ne:0"
+  13,  5, "u.pikemen_Idle_e:0"
+  13,  6, "u.pikemen_Idle_se:0"
+  13,  7, "u.pikemen_Idle_s:0"
+
+  14,  0, "u.knights_Idle_sw:0"
+  14,  1, "u.knights_Idle_w:0"
+  14,  2, "u.knights_Idle_nw:0"
+  14,  3, "u.knights_Idle_n:0"
+  14,  4, "u.knights_Idle_ne:0"
+  14,  5, "u.knights_Idle_e:0"
+  14,  6, "u.knights_Idle_se:0"
+  14,  7, "u.knights_Idle_s:0"
+
+  15,  0, "u.caravel_Idle_sw:0"
+  15,  1, "u.caravel_Idle_w:0"
+  15,  2, "u.caravel_Idle_nw:0"
+  15,  3, "u.caravel_Idle_n:0"
+  15,  4, "u.caravel_Idle_ne:0"
+  15,  5, "u.caravel_Idle_e:0"
+  15,  6, "u.caravel_Idle_se:0"
+  15,  7, "u.caravel_Idle_s:0"
+
+  16,  0, "u.galleon_Idle_sw:0"
+  16,  1, "u.galleon_Idle_w:0"
+  16,  2, "u.galleon_Idle_nw:0"
+  16,  3, "u.galleon_Idle_n:0"
+  16,  4, "u.galleon_Idle_ne:0"
+  16,  5, "u.galleon_Idle_e:0"
+  16,  6, "u.galleon_Idle_se:0"
+  16,  7, "u.galleon_Idle_s:0"
+
+  17,  0, "u.frigate_Idle_sw:0"
+  17,  1, "u.frigate_Idle_w:0"
+  17,  2, "u.frigate_Idle_nw:0"
+  17,  3, "u.frigate_Idle_n:0"
+  17,  4, "u.frigate_Idle_ne:0"
+  17,  5, "u.frigate_Idle_e:0"
+  17,  6, "u.frigate_Idle_se:0"
+  17,  7, "u.frigate_Idle_s:0"
+
+  18,  0, "u.ironclad_Idle_sw:0"
+  18,  1, "u.ironclad_Idle_w:0"
+  18,  2, "u.ironclad_Idle_nw:0"
+  18,  3, "u.ironclad_Idle_n:0"
+  18,  4, "u.ironclad_Idle_ne:0"
+  18,  5, "u.ironclad_Idle_e:0"
+  18,  6, "u.ironclad_Idle_se:0"
+  18,  7, "u.ironclad_Idle_s:0"
+
+  19,  0, "u.musketeers_Idle_sw:0"
+  19,  1, "u.musketeers_Idle_w:0"
+  19,  2, "u.musketeers_Idle_nw:0"
+  19,  3, "u.musketeers_Idle_n:0"
+  19,  4, "u.musketeers_Idle_ne:0"
+  19,  5, "u.musketeers_Idle_e:0"
+  19,  6, "u.musketeers_Idle_se:0"
+  19,  7, "u.musketeers_Idle_s:0"
+
+  20,  0, "u.dragoons_Idle_sw:0"
+  20,  1, "u.dragoons_Idle_w:0"
+  20,  2, "u.dragoons_Idle_nw:0"
+  20,  3, "u.dragoons_Idle_n:0"
+  20,  4, "u.dragoons_Idle_ne:0"
+  20,  5, "u.dragoons_Idle_e:0"
+  20,  6, "u.dragoons_Idle_se:0"
+  20,  7, "u.dragoons_Idle_s:0"
+
+  21,  0, "u.cannon_Idle_sw:0"
+  21,  1, "u.cannon_Idle_w:0"
+  21,  2, "u.cannon_Idle_nw:0"
+  21,  3, "u.cannon_Idle_n:0"
+  21,  4, "u.cannon_Idle_ne:0"
+  21,  5, "u.cannon_Idle_e:0"
+  21,  6, "u.cannon_Idle_se:0"
+  21,  7, "u.cannon_Idle_s:0"
+
+  22,  0, "u.engineers_Idle_sw:0"
+  22,  1, "u.engineers_Idle_w:0"
+  22,  2, "u.engineers_Idle_nw:0"
+  22,  3, "u.engineers_Idle_n:0"
+  22,  4, "u.engineers_Idle_ne:0"
+  22,  5, "u.engineers_Idle_e:0"
+  22,  6, "u.engineers_Idle_se:0"
+  22,  7, "u.engineers_Idle_s:0"
+
+  23,  0, "u.transport_Idle_sw:0"
+  23,  1, "u.transport_Idle_w:0"
+  23,  2, "u.transport_Idle_nw:0"
+  23,  3, "u.transport_Idle_n:0"
+  23,  4, "u.transport_Idle_ne:0"
+  23,  5, "u.transport_Idle_e:0"
+  23,  6, "u.transport_Idle_se:0"
+  23,  7, "u.transport_Idle_s:0"
+
+  24,  0, "u.destroyer_Idle_sw:0"
+  24,  1, "u.destroyer_Idle_w:0"
+  24,  2, "u.destroyer_Idle_nw:0"
+  24,  3, "u.destroyer_Idle_n:0"
+  24,  4, "u.destroyer_Idle_ne:0"
+  24,  5, "u.destroyer_Idle_e:0"
+  24,  6, "u.destroyer_Idle_se:0"
+  24,  7, "u.destroyer_Idle_s:0"
+
+  25,  0, "u.riflemen_Idle_sw:0"
+  25,  1, "u.riflemen_Idle_w:0"
+  25,  2, "u.riflemen_Idle_nw:0"
+  25,  3, "u.riflemen_Idle_n:0"
+  25,  4, "u.riflemen_Idle_ne:0"
+  25,  5, "u.riflemen_Idle_e:0"
+  25,  6, "u.riflemen_Idle_se:0"
+  25,  7, "u.riflemen_Idle_s:0"
+
+  26,  0, "u.cavalry_Idle_sw:0"
+  26,  1, "u.cavalry_Idle_w:0"
+  26,  2, "u.cavalry_Idle_nw:0"
+  26,  3, "u.cavalry_Idle_n:0"
+  26,  4, "u.cavalry_Idle_ne:0"
+  26,  5, "u.cavalry_Idle_e:0"
+  26,  6, "u.cavalry_Idle_se:0"
+  26,  7, "u.cavalry_Idle_s:0"
+
+  27,  0, "u.alpine_troops_Idle_sw:0"
+  27,  1, "u.alpine_troops_Idle_w:0"
+  27,  2, "u.alpine_troops_Idle_nw:0"
+  27,  3, "u.alpine_troops_Idle_n:0"
+  27,  4, "u.alpine_troops_Idle_ne:0"
+  27,  5, "u.alpine_troops_Idle_e:0"
+  27,  6, "u.alpine_troops_Idle_se:0"
+  27,  7, "u.alpine_troops_Idle_s:0"
+
+  28,  0, "u.freight_Idle_sw:0"
+  28,  1, "u.freight_Idle_w:0"
+  28,  2, "u.freight_Idle_nw:0"
+  28,  3, "u.freight_Idle_n:0"
+  28,  4, "u.freight_Idle_ne:0"
+  28,  5, "u.freight_Idle_e:0"
+  28,  6, "u.freight_Idle_se:0"
+  28,  7, "u.freight_Idle_s:0"
+
+  29,  0, "u.spy_Idle_sw:0"
+  29,  1, "u.spy_Idle_w:0"
+  29,  2, "u.spy_Idle_nw:0"
+  29,  3, "u.spy_Idle_n:0"
+  29,  4, "u.spy_Idle_ne:0"
+  29,  5, "u.spy_Idle_e:0"
+  29,  6, "u.spy_Idle_se:0"
+  29,  7, "u.spy_Idle_s:0"
+
+  30,  0, "u.cruiser_Idle_sw:0"
+  30,  1, "u.cruiser_Idle_w:0"
+  30,  2, "u.cruiser_Idle_nw:0"
+  30,  3, "u.cruiser_Idle_n:0"
+  30,  4, "u.cruiser_Idle_ne:0"
+  30,  5, "u.cruiser_Idle_e:0"
+  30,  6, "u.cruiser_Idle_se:0"
+  30,  7, "u.cruiser_Idle_s:0"
+
+  31,  0, "u.battleship_Idle_sw:0"
+  31,  1, "u.battleship_Idle_w:0"
+  31,  2, "u.battleship_Idle_nw:0"
+  31,  3, "u.battleship_Idle_n:0"
+  31,  4, "u.battleship_Idle_ne:0"
+  31,  5, "u.battleship_Idle_e:0"
+  31,  6, "u.battleship_Idle_se:0"
+  31,  7, "u.battleship_Idle_s:0"
+
+  32,  0, "u.submarine_Idle_sw:0"
+  32,  1, "u.submarine_Idle_w:0"
+  32,  2, "u.submarine_Idle_nw:0"
+  32,  3, "u.submarine_Idle_n:0"
+  32,  4, "u.submarine_Idle_ne:0"
+  32,  5, "u.submarine_Idle_e:0"
+  32,  6, "u.submarine_Idle_se:0"
+  32,  7, "u.submarine_Idle_s:0"
+
+  33,  0, "u.marines_Idle_sw:0"
+  33,  1, "u.marines_Idle_w:0"
+  33,  2, "u.marines_Idle_nw:0"
+  33,  3, "u.marines_Idle_n:0"
+  33,  4, "u.marines_Idle_ne:0"
+  33,  5, "u.marines_Idle_e:0"
+  33,  6, "u.marines_Idle_se:0"
+  33,  7, "u.marines_Idle_s:0"
+
+  34,  0, "u.partisan_Idle_sw:0"
+  34,  1, "u.partisan_Idle_w:0"
+  34,  2, "u.partisan_Idle_nw:0"
+  34,  3, "u.partisan_Idle_n:0"
+  34,  4, "u.partisan_Idle_ne:0"
+  34,  5, "u.partisan_Idle_e:0"
+  34,  6, "u.partisan_Idle_se:0"
+  34,  7, "u.partisan_Idle_s:0"
+
+  35,  0, "u.artillery_Idle_sw:0"
+  35,  1, "u.artillery_Idle_w:0"
+  35,  2, "u.artillery_Idle_nw:0"
+  35,  3, "u.artillery_Idle_n:0"
+  35,  4, "u.artillery_Idle_ne:0"
+  35,  5, "u.artillery_Idle_e:0"
+  35,  6, "u.artillery_Idle_se:0"
+  35,  7, "u.artillery_Idle_s:0"
+
+  36,  0, "u.fighter_Idle_sw:0"
+  36,  1, "u.fighter_Idle_w:0"
+  36,  2, "u.fighter_Idle_nw:0"
+  36,  3, "u.fighter_Idle_n:0"
+  36,  4, "u.fighter_Idle_ne:0"
+  36,  5, "u.fighter_Idle_e:0"
+  36,  6, "u.fighter_Idle_se:0"
+  36,  7, "u.fighter_Idle_s:0"
+
+  37,  0, "u.aegis_cruiser_Idle_sw:0"
+  37,  1, "u.aegis_cruiser_Idle_w:0"
+  37,  2, "u.aegis_cruiser_Idle_nw:0"
+  37,  3, "u.aegis_cruiser_Idle_n:0"
+  37,  4, "u.aegis_cruiser_Idle_ne:0"
+  37,  5, "u.aegis_cruiser_Idle_e:0"
+  37,  6, "u.aegis_cruiser_Idle_se:0"
+  37,  7, "u.aegis_cruiser_Idle_s:0"
+
+  38,  0, "u.carrier_Idle_sw:0"
+  38,  1, "u.carrier_Idle_w:0"
+  38,  2, "u.carrier_Idle_nw:0"
+  38,  3, "u.carrier_Idle_n:0"
+  38,  4, "u.carrier_Idle_ne:0"
+  38,  5, "u.carrier_Idle_e:0"
+  38,  6, "u.carrier_Idle_se:0"
+  38,  7, "u.carrier_Idle_s:0"
+
+  39,  0, "u.armor_Idle_sw:0"
+  39,  1, "u.armor_Idle_w:0"
+  39,  2, "u.armor_Idle_nw:0"
+  39,  3, "u.armor_Idle_n:0"
+  39,  4, "u.armor_Idle_ne:0"
+  39,  5, "u.armor_Idle_e:0"
+  39,  6, "u.armor_Idle_se:0"
+  39,  7, "u.armor_Idle_s:0"
+
+  40,  0, "u.mech_inf_Idle_sw:0"
+  40,  1, "u.mech_inf_Idle_w:0"
+  40,  2, "u.mech_inf_Idle_nw:0"
+  40,  3, "u.mech_inf_Idle_n:0"
+  40,  4, "u.mech_inf_Idle_ne:0"
+  40,  5, "u.mech_inf_Idle_e:0"
+  40,  6, "u.mech_inf_Idle_se:0"
+  40,  7, "u.mech_inf_Idle_s:0"
+
+  41,  0, "u.howitzer_Idle_sw:0"
+  41,  1, "u.howitzer_Idle_w:0"
+  41,  2, "u.howitzer_Idle_nw:0"
+  41,  3, "u.howitzer_Idle_n:0"
+  41,  4, "u.howitzer_Idle_ne:0"
+  41,  5, "u.howitzer_Idle_e:0"
+  41,  6, "u.howitzer_Idle_se:0"
+  41,  7, "u.howitzer_Idle_s:0"
+
+  42,  0, "u.paratroopers_Idle_sw:0"
+  42,  1, "u.paratroopers_Idle_w:0"
+  42,  2, "u.paratroopers_Idle_nw:0"
+  42,  3, "u.paratroopers_Idle_n:0"
+  42,  4, "u.paratroopers_Idle_ne:0"
+  42,  5, "u.paratroopers_Idle_e:0"
+  42,  6, "u.paratroopers_Idle_se:0"
+  42,  7, "u.paratroopers_Idle_s:0"
+
+  43,  0, "u.helicopter_Idle_sw:0"
+  43,  1, "u.helicopter_Idle_w:0"
+  43,  2, "u.helicopter_Idle_nw:0"
+  43,  3, "u.helicopter_Idle_n:0"
+  43,  4, "u.helicopter_Idle_ne:0"
+  43,  5, "u.helicopter_Idle_e:0"
+  43,  6, "u.helicopter_Idle_se:0"
+  43,  7, "u.helicopter_Idle_s:0"
+
+  44,  0, "u.bomber_Idle_sw:0"
+  44,  1, "u.bomber_Idle_w:0"
+  44,  2, "u.bomber_Idle_nw:0"
+  44,  3, "u.bomber_Idle_n:0"
+  44,  4, "u.bomber_Idle_ne:0"
+  44,  5, "u.bomber_Idle_e:0"
+  44,  6, "u.bomber_Idle_se:0"
+  44,  7, "u.bomber_Idle_s:0"
+
+  45,  0, "u.awacs_Idle_sw:0"
+  45,  1, "u.awacs_Idle_w:0"
+  45,  2, "u.awacs_Idle_nw:0"
+  45,  3, "u.awacs_Idle_n:0"
+  45,  4, "u.awacs_Idle_ne:0"
+  45,  5, "u.awacs_Idle_e:0"
+  45,  6, "u.awacs_Idle_se:0"
+  45,  7, "u.awacs_Idle_s:0"
+
+  46,  0, "u.nuclear_Idle_sw:0"
+  46,  1, "u.nuclear_Idle_w:0"
+  46,  2, "u.nuclear_Idle_nw:0"
+  46,  3, "u.nuclear_Idle_n:0"
+  46,  4, "u.nuclear_Idle_ne:0"
+  46,  5, "u.nuclear_Idle_e:0"
+  46,  6, "u.nuclear_Idle_se:0"
+  46,  7, "u.nuclear_Idle_s:0"
+
+  47,  0, "u.cruise_missile_Idle_sw:0"
+  47,  1, "u.cruise_missile_Idle_w:0"
+  47,  2, "u.cruise_missile_Idle_nw:0"
+  47,  3, "u.cruise_missile_Idle_n:0"
+  47,  4, "u.cruise_missile_Idle_ne:0"
+  47,  5, "u.cruise_missile_Idle_e:0"
+  47,  6, "u.cruise_missile_Idle_se:0"
+  47,  7, "u.cruise_missile_Idle_s:0"
+
+  48,  0, "u.stealth_bomber_Idle_sw:0"
+  48,  1, "u.stealth_bomber_Idle_w:0"
+  48,  2, "u.stealth_bomber_Idle_nw:0"
+  48,  3, "u.stealth_bomber_Idle_n:0"
+  48,  4, "u.stealth_bomber_Idle_ne:0"
+  48,  5, "u.stealth_bomber_Idle_e:0"
+  48,  6, "u.stealth_bomber_Idle_se:0"
+  48,  7, "u.stealth_bomber_Idle_s:0"
+
+  49,  0, "u.stealth_fighter_Idle_sw:0"
+  49,  1, "u.stealth_fighter_Idle_w:0"
+  49,  2, "u.stealth_fighter_Idle_nw:0"
+  49,  3, "u.stealth_fighter_Idle_n:0"
+  49,  4, "u.stealth_fighter_Idle_ne:0"
+  49,  5, "u.stealth_fighter_Idle_e:0"
+  49,  6, "u.stealth_fighter_Idle_se:0"
+  49,  7, "u.stealth_fighter_Idle_s:0"
+
+  50,  0, "u.leader_Idle_sw:0"
+  50,  1, "u.leader_Idle_w:0"
+  50,  2, "u.leader_Idle_nw:0"
+  50,  3, "u.leader_Idle_n:0"
+  50,  4, "u.leader_Idle_ne:0"
+  50,  5, "u.leader_Idle_e:0"
+  50,  6, "u.leader_Idle_se:0"
+  50,  7, "u.leader_Idle_s:0"
+
+  51,  0, "u.barbarian_leader_Idle_sw:0"
+  51,  1, "u.barbarian_leader_Idle_w:0"
+  51,  2, "u.barbarian_leader_Idle_nw:0"
+  51,  3, "u.barbarian_leader_Idle_n:0"
+  51,  4, "u.barbarian_leader_Idle_ne:0"
+  51,  5, "u.barbarian_leader_Idle_e:0"
+  51,  6, "u.barbarian_leader_Idle_se:0"
+  51,  7, "u.barbarian_leader_Idle_s:0"
+
+  52,  0, "u.fanatics_Idle_sw:0"
+  52,  1, "u.fanatics_Idle_w:0"
+  52,  2, "u.fanatics_Idle_nw:0"
+  52,  3, "u.fanatics_Idle_n:0"
+  52,  4, "u.fanatics_Idle_ne:0"
+  52,  5, "u.fanatics_Idle_e:0"
+  52,  6, "u.fanatics_Idle_se:0"
+  52,  7, "u.fanatics_Idle_s:0"
+
+  53,  0, "u.crusaders_Idle_sw:0"
+  53,  1, "u.crusaders_Idle_w:0"
+  53,  2, "u.crusaders_Idle_nw:0"
+  53,  3, "u.crusaders_Idle_n:0"
+  53,  4, "u.crusaders_Idle_ne:0"
+  53,  5, "u.crusaders_Idle_e:0"
+  53,  6, "u.crusaders_Idle_se:0"
+  53,  7, "u.crusaders_Idle_s:0"
+
+  54,  0, "u.elephants_Idle_sw:0"
+  54,  1, "u.elephants_Idle_w:0"
+  54,  2, "u.elephants_Idle_nw:0"
+  54,  3, "u.elephants_Idle_n:0"
+  54,  4, "u.elephants_Idle_ne:0"
+  54,  5, "u.elephants_Idle_e:0"
+  54,  6, "u.elephants_Idle_se:0"
+  54,  7, "u.elephants_Idle_s:0"
+
+  55,  0, "u.migrants_Idle_sw:0"
+  55,  1, "u.migrants_Idle_w:0"
+  55,  2, "u.migrants_Idle_nw:0"
+  55,  3, "u.migrants_Idle_n:0"
+  55,  4, "u.migrants_Idle_ne:0"
+  55,  5, "u.migrants_Idle_e:0"
+  55,  6, "u.migrants_Idle_se:0"
+  55,  7, "u.migrants_Idle_s:0"
 }
diff --git a/data/cimpletoon/units/ROMB/xxx.spec b/data/cimpletoon/units/ROMB/xxx.spec
index 48b523717b..12baf65588 100644
--- a/data/cimpletoon/units/ROMB/xxx.spec
+++ b/data/cimpletoon/units/ROMB/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                       "tag"
-   "cimpletoon/units/ROMB/0001", "u.romb_Idle_se"
-   "cimpletoon/units/ROMB/0002", "u.romb_Idle_s"
-   "cimpletoon/units/ROMB/0003", "u.romb_Idle_sw"
-   "cimpletoon/units/ROMB/0004", "u.romb_Idle_w"
-   "cimpletoon/units/ROMB/0005", "u.romb_Idle_nw"
-   "cimpletoon/units/ROMB/0006", "u.romb_Idle_n"
-   "cimpletoon/units/ROMB/0007", "u.romb_Idle_ne"
-   "cimpletoon/units/ROMB/0008", "u.romb_Idle_e"
+   "cimpletoon/units/ROMB/0001", "u.romb_Idle_se:0"
+   "cimpletoon/units/ROMB/0002", "u.romb_Idle_s:0"
+   "cimpletoon/units/ROMB/0003", "u.romb_Idle_sw:0"
+   "cimpletoon/units/ROMB/0004", "u.romb_Idle_w:0"
+   "cimpletoon/units/ROMB/0005", "u.romb_Idle_nw:0"
+   "cimpletoon/units/ROMB/0006", "u.romb_Idle_n:0"
+   "cimpletoon/units/ROMB/0007", "u.romb_Idle_ne:0"
+   "cimpletoon/units/ROMB/0008", "u.romb_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/abrams/xxx.spec b/data/cimpletoon/units/abrams/xxx.spec
index 01312dd3e1..665892baf6 100644
--- a/data/cimpletoon/units/abrams/xxx.spec
+++ b/data/cimpletoon/units/abrams/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                         "tag"
-   "cimpletoon/units/abrams/0001", "u.abrams_Idle_se"
-   "cimpletoon/units/abrams/0002", "u.abrams_Idle_s"
-   "cimpletoon/units/abrams/0003", "u.abrams_Idle_sw"
-   "cimpletoon/units/abrams/0004", "u.abrams_Idle_w"
-   "cimpletoon/units/abrams/0005", "u.abrams_Idle_nw"
-   "cimpletoon/units/abrams/0006", "u.abrams_Idle_n"
-   "cimpletoon/units/abrams/0007", "u.abrams_Idle_ne"
-   "cimpletoon/units/abrams/0008", "u.abrams_Idle_e"
+   "cimpletoon/units/abrams/0001", "u.abrams_Idle_se:0"
+   "cimpletoon/units/abrams/0002", "u.abrams_Idle_s:0"
+   "cimpletoon/units/abrams/0003", "u.abrams_Idle_sw:0"
+   "cimpletoon/units/abrams/0004", "u.abrams_Idle_w:0"
+   "cimpletoon/units/abrams/0005", "u.abrams_Idle_nw:0"
+   "cimpletoon/units/abrams/0006", "u.abrams_Idle_n:0"
+   "cimpletoon/units/abrams/0007", "u.abrams_Idle_ne:0"
+   "cimpletoon/units/abrams/0008", "u.abrams_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/assaultgun/xxx.spec b/data/cimpletoon/units/assaultgun/xxx.spec
index 76d1fd128f..c3ae6ed26b 100644
--- a/data/cimpletoon/units/assaultgun/xxx.spec
+++ b/data/cimpletoon/units/assaultgun/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                             "tag"
-   "cimpletoon/units/assaultgun/0001", "u.assaultgun_Idle_se"
-   "cimpletoon/units/assaultgun/0002", "u.assaultgun_Idle_s"
-   "cimpletoon/units/assaultgun/0003", "u.assaultgun_Idle_sw"
-   "cimpletoon/units/assaultgun/0004", "u.assaultgun_Idle_w"
-   "cimpletoon/units/assaultgun/0005", "u.assaultgun_Idle_nw"
-   "cimpletoon/units/assaultgun/0006", "u.assaultgun_Idle_n"
-   "cimpletoon/units/assaultgun/0007", "u.assaultgun_Idle_ne"
-   "cimpletoon/units/assaultgun/0008", "u.assaultgun_Idle_e"
+   "cimpletoon/units/assaultgun/0001", "u.assaultgun_Idle_se:0"
+   "cimpletoon/units/assaultgun/0002", "u.assaultgun_Idle_s:0"
+   "cimpletoon/units/assaultgun/0003", "u.assaultgun_Idle_sw:0"
+   "cimpletoon/units/assaultgun/0004", "u.assaultgun_Idle_w:0"
+   "cimpletoon/units/assaultgun/0005", "u.assaultgun_Idle_nw:0"
+   "cimpletoon/units/assaultgun/0006", "u.assaultgun_Idle_n:0"
+   "cimpletoon/units/assaultgun/0007", "u.assaultgun_Idle_ne:0"
+   "cimpletoon/units/assaultgun/0008", "u.assaultgun_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/biplane/xxx.spec b/data/cimpletoon/units/biplane/xxx.spec
index 857e34417f..fbc84d63ca 100644
--- a/data/cimpletoon/units/biplane/xxx.spec
+++ b/data/cimpletoon/units/biplane/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                          "tag"
-   "cimpletoon/units/biplane/0001", "u.biplane_Idle_se"
-   "cimpletoon/units/biplane/0002", "u.biplane_Idle_s"
-   "cimpletoon/units/biplane/0003", "u.biplane_Idle_sw"
-   "cimpletoon/units/biplane/0004", "u.biplane_Idle_w"
-   "cimpletoon/units/biplane/0005", "u.biplane_Idle_nw"
-   "cimpletoon/units/biplane/0006", "u.biplane_Idle_n"
-   "cimpletoon/units/biplane/0007", "u.biplane_Idle_ne"
-   "cimpletoon/units/biplane/0008", "u.biplane_Idle_e"
+   "cimpletoon/units/biplane/0001", "u.biplane_Idle_se:0"
+   "cimpletoon/units/biplane/0002", "u.biplane_Idle_s:0"
+   "cimpletoon/units/biplane/0003", "u.biplane_Idle_sw:0"
+   "cimpletoon/units/biplane/0004", "u.biplane_Idle_w:0"
+   "cimpletoon/units/biplane/0005", "u.biplane_Idle_nw:0"
+   "cimpletoon/units/biplane/0006", "u.biplane_Idle_n:0"
+   "cimpletoon/units/biplane/0007", "u.biplane_Idle_ne:0"
+   "cimpletoon/units/biplane/0008", "u.biplane_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/container_ship/xxx.spec b/data/cimpletoon/units/container_ship/xxx.spec
index 8e4205e093..1ad477b07a 100644
--- a/data/cimpletoon/units/container_ship/xxx.spec
+++ b/data/cimpletoon/units/container_ship/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                                 "tag"
-   "cimpletoon/units/container_ship/0001", "u.container_ship_Idle_se"
-   "cimpletoon/units/container_ship/0002", "u.container_ship_Idle_s"
-   "cimpletoon/units/container_ship/0003", "u.container_ship_Idle_sw"
-   "cimpletoon/units/container_ship/0004", "u.container_ship_Idle_w"
-   "cimpletoon/units/container_ship/0005", "u.container_ship_Idle_nw"
-   "cimpletoon/units/container_ship/0006", "u.container_ship_Idle_n"
-   "cimpletoon/units/container_ship/0007", "u.container_ship_Idle_ne"
-   "cimpletoon/units/container_ship/0008", "u.container_ship_Idle_e"
+   "cimpletoon/units/container_ship/0001", "u.container_ship_Idle_se:0"
+   "cimpletoon/units/container_ship/0002", "u.container_ship_Idle_s:0"
+   "cimpletoon/units/container_ship/0003", "u.container_ship_Idle_sw:0"
+   "cimpletoon/units/container_ship/0004", "u.container_ship_Idle_w:0"
+   "cimpletoon/units/container_ship/0005", "u.container_ship_Idle_nw:0"
+   "cimpletoon/units/container_ship/0006", "u.container_ship_Idle_n:0"
+   "cimpletoon/units/container_ship/0007", "u.container_ship_Idle_ne:0"
+   "cimpletoon/units/container_ship/0008", "u.container_ship_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/flak88/xxx.spec b/data/cimpletoon/units/flak88/xxx.spec
index 4d76648110..4501ecf86a 100644
--- a/data/cimpletoon/units/flak88/xxx.spec
+++ b/data/cimpletoon/units/flak88/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                         "tag"
-   "cimpletoon/units/flak88/0001", "u.flak88_Idle_se"
-   "cimpletoon/units/flak88/0002", "u.flak88_Idle_s"
-   "cimpletoon/units/flak88/0003", "u.flak88_Idle_sw"
-   "cimpletoon/units/flak88/0004", "u.flak88_Idle_w"
-   "cimpletoon/units/flak88/0005", "u.flak88_Idle_nw"
-   "cimpletoon/units/flak88/0006", "u.flak88_Idle_n"
-   "cimpletoon/units/flak88/0007", "u.flak88_Idle_ne"
-   "cimpletoon/units/flak88/0008", "u.flak88_Idle_e"
+   "cimpletoon/units/flak88/0001", "u.flak88_Idle_se:0"
+   "cimpletoon/units/flak88/0002", "u.flak88_Idle_s:0"
+   "cimpletoon/units/flak88/0003", "u.flak88_Idle_sw:0"
+   "cimpletoon/units/flak88/0004", "u.flak88_Idle_w:0"
+   "cimpletoon/units/flak88/0005", "u.flak88_Idle_nw:0"
+   "cimpletoon/units/flak88/0006", "u.flak88_Idle_n:0"
+   "cimpletoon/units/flak88/0007", "u.flak88_Idle_ne:0"
+   "cimpletoon/units/flak88/0008", "u.flak88_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/icebreaker/xxx.spec b/data/cimpletoon/units/icebreaker/xxx.spec
index 52c959db4f..15a79a5b0d 100644
--- a/data/cimpletoon/units/icebreaker/xxx.spec
+++ b/data/cimpletoon/units/icebreaker/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                             "tag"
-   "cimpletoon/units/icebreaker/0001", "u.icebreaker_Idle_se"
-   "cimpletoon/units/icebreaker/0002", "u.icebreaker_Idle_s"
-   "cimpletoon/units/icebreaker/0003", "u.icebreaker_Idle_sw"
-   "cimpletoon/units/icebreaker/0004", "u.icebreaker_Idle_w"
-   "cimpletoon/units/icebreaker/0005", "u.icebreaker_Idle_nw"
-   "cimpletoon/units/icebreaker/0006", "u.icebreaker_Idle_n"
-   "cimpletoon/units/icebreaker/0007", "u.icebreaker_Idle_ne"
-   "cimpletoon/units/icebreaker/0008", "u.icebreaker_Idle_e"
+   "cimpletoon/units/icebreaker/0001", "u.icebreaker_Idle_se:0"
+   "cimpletoon/units/icebreaker/0002", "u.icebreaker_Idle_s:0"
+   "cimpletoon/units/icebreaker/0003", "u.icebreaker_Idle_sw:0"
+   "cimpletoon/units/icebreaker/0004", "u.icebreaker_Idle_w:0"
+   "cimpletoon/units/icebreaker/0005", "u.icebreaker_Idle_nw:0"
+   "cimpletoon/units/icebreaker/0006", "u.icebreaker_Idle_n:0"
+   "cimpletoon/units/icebreaker/0007", "u.icebreaker_Idle_ne:0"
+   "cimpletoon/units/icebreaker/0008", "u.icebreaker_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/light_howitzer/xxx.spec b/data/cimpletoon/units/light_howitzer/xxx.spec
index a26b27e256..6edfb8e27a 100644
--- a/data/cimpletoon/units/light_howitzer/xxx.spec
+++ b/data/cimpletoon/units/light_howitzer/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                                 "tag"
-   "cimpletoon/units/light_howitzer/0001", "u.light_howitzer_Idle_se"
-   "cimpletoon/units/light_howitzer/0002", "u.light_howitzer_Idle_s"
-   "cimpletoon/units/light_howitzer/0003", "u.light_howitzer_Idle_sw"
-   "cimpletoon/units/light_howitzer/0004", "u.light_howitzer_Idle_w"
-   "cimpletoon/units/light_howitzer/0005", "u.light_howitzer_Idle_nw"
-   "cimpletoon/units/light_howitzer/0006", "u.light_howitzer_Idle_n"
-   "cimpletoon/units/light_howitzer/0007", "u.light_howitzer_Idle_ne"
-   "cimpletoon/units/light_howitzer/0008", "u.light_howitzer_Idle_e"
+   "cimpletoon/units/light_howitzer/0001", "u.light_howitzer_Idle_se:0"
+   "cimpletoon/units/light_howitzer/0002", "u.light_howitzer_Idle_s:0"
+   "cimpletoon/units/light_howitzer/0003", "u.light_howitzer_Idle_sw:0"
+   "cimpletoon/units/light_howitzer/0004", "u.light_howitzer_Idle_w:0"
+   "cimpletoon/units/light_howitzer/0005", "u.light_howitzer_Idle_nw:0"
+   "cimpletoon/units/light_howitzer/0006", "u.light_howitzer_Idle_n:0"
+   "cimpletoon/units/light_howitzer/0007", "u.light_howitzer_Idle_ne:0"
+   "cimpletoon/units/light_howitzer/0008", "u.light_howitzer_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/locomotive/xxx.spec b/data/cimpletoon/units/locomotive/xxx.spec
index 85a2341701..3a5e6567fa 100644
--- a/data/cimpletoon/units/locomotive/xxx.spec
+++ b/data/cimpletoon/units/locomotive/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                             "tag"
-   "cimpletoon/units/locomotive/0001", "u.locomotive_Idle_se"
-   "cimpletoon/units/locomotive/0002", "u.locomotive_Idle_s"
-   "cimpletoon/units/locomotive/0003", "u.locomotive_Idle_sw"
-   "cimpletoon/units/locomotive/0004", "u.locomotive_Idle_w"
-   "cimpletoon/units/locomotive/0005", "u.locomotive_Idle_nw"
-   "cimpletoon/units/locomotive/0006", "u.locomotive_Idle_n"
-   "cimpletoon/units/locomotive/0007", "u.locomotive_Idle_ne"
-   "cimpletoon/units/locomotive/0008", "u.locomotive_Idle_e"
+   "cimpletoon/units/locomotive/0001", "u.locomotive_Idle_se:0"
+   "cimpletoon/units/locomotive/0002", "u.locomotive_Idle_s:0"
+   "cimpletoon/units/locomotive/0003", "u.locomotive_Idle_sw:0"
+   "cimpletoon/units/locomotive/0004", "u.locomotive_Idle_w:0"
+   "cimpletoon/units/locomotive/0005", "u.locomotive_Idle_nw:0"
+   "cimpletoon/units/locomotive/0006", "u.locomotive_Idle_n:0"
+   "cimpletoon/units/locomotive/0007", "u.locomotive_Idle_ne:0"
+   "cimpletoon/units/locomotive/0008", "u.locomotive_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/m4sherman/xxx.spec b/data/cimpletoon/units/m4sherman/xxx.spec
index 0536479b43..ad0345bb6c 100644
--- a/data/cimpletoon/units/m4sherman/xxx.spec
+++ b/data/cimpletoon/units/m4sherman/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                            "tag"
-   "cimpletoon/units/m4sherman/0001", "u.sherman_Idle_se"
-   "cimpletoon/units/m4sherman/0002", "u.sherman_Idle_s"
-   "cimpletoon/units/m4sherman/0003", "u.sherman_Idle_sw"
-   "cimpletoon/units/m4sherman/0004", "u.sherman_Idle_w"
-   "cimpletoon/units/m4sherman/0005", "u.sherman_Idle_nw"
-   "cimpletoon/units/m4sherman/0006", "u.sherman_Idle_n"
-   "cimpletoon/units/m4sherman/0007", "u.sherman_Idle_ne"
-   "cimpletoon/units/m4sherman/0008", "u.sherman_Idle_e"
+   "cimpletoon/units/m4sherman/0001", "u.sherman_Idle_se:0"
+   "cimpletoon/units/m4sherman/0002", "u.sherman_Idle_s:0"
+   "cimpletoon/units/m4sherman/0003", "u.sherman_Idle_sw:0"
+   "cimpletoon/units/m4sherman/0004", "u.sherman_Idle_w:0"
+   "cimpletoon/units/m4sherman/0005", "u.sherman_Idle_nw:0"
+   "cimpletoon/units/m4sherman/0006", "u.sherman_Idle_n:0"
+   "cimpletoon/units/m4sherman/0007", "u.sherman_Idle_ne:0"
+   "cimpletoon/units/m4sherman/0008", "u.sherman_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/mig15/xxx.spec b/data/cimpletoon/units/mig15/xxx.spec
index eb1831e58c..d9017ada7b 100644
--- a/data/cimpletoon/units/mig15/xxx.spec
+++ b/data/cimpletoon/units/mig15/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                        "tag"
-   "cimpletoon/units/mig15/0001", "u.mig15_Idle_se"
-   "cimpletoon/units/mig15/0002", "u.mig15_Idle_s"
-   "cimpletoon/units/mig15/0003", "u.mig15_Idle_sw"
-   "cimpletoon/units/mig15/0004", "u.mig15_Idle_w"
-   "cimpletoon/units/mig15/0005", "u.mig15_Idle_nw"
-   "cimpletoon/units/mig15/0006", "u.mig15_Idle_n"
-   "cimpletoon/units/mig15/0007", "u.mig15_Idle_ne"
-   "cimpletoon/units/mig15/0008", "u.mig15_Idle_e"
+   "cimpletoon/units/mig15/0001", "u.mig15_Idle_se:0"
+   "cimpletoon/units/mig15/0002", "u.mig15_Idle_s:0"
+   "cimpletoon/units/mig15/0003", "u.mig15_Idle_sw:0"
+   "cimpletoon/units/mig15/0004", "u.mig15_Idle_w:0"
+   "cimpletoon/units/mig15/0005", "u.mig15_Idle_nw:0"
+   "cimpletoon/units/mig15/0006", "u.mig15_Idle_n:0"
+   "cimpletoon/units/mig15/0007", "u.mig15_Idle_ne:0"
+   "cimpletoon/units/mig15/0008", "u.mig15_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/missile_sub/xxx.spec b/data/cimpletoon/units/missile_sub/xxx.spec
index 386ffaadb8..33c5a7ca29 100644
--- a/data/cimpletoon/units/missile_sub/xxx.spec
+++ b/data/cimpletoon/units/missile_sub/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                        "tag"
-   "cimpletoon/units/missile_sub/0001", "u.missile_sub_Idle_se"
-   "cimpletoon/units/missile_sub/0002", "u.missile_sub_Idle_s"
-   "cimpletoon/units/missile_sub/0003", "u.missile_sub_Idle_sw"
-   "cimpletoon/units/missile_sub/0004", "u.missile_sub_Idle_w"
-   "cimpletoon/units/missile_sub/0005", "u.missile_sub_Idle_nw"
-   "cimpletoon/units/missile_sub/0006", "u.missile_sub_Idle_n"
-   "cimpletoon/units/missile_sub/0007", "u.missile_sub_Idle_ne"
-   "cimpletoon/units/missile_sub/0008", "u.missile_sub_Idle_e"
+   "cimpletoon/units/missile_sub/0001", "u.missile_sub_Idle_se:0"
+   "cimpletoon/units/missile_sub/0002", "u.missile_sub_Idle_s:0"
+   "cimpletoon/units/missile_sub/0003", "u.missile_sub_Idle_sw:0"
+   "cimpletoon/units/missile_sub/0004", "u.missile_sub_Idle_w:0"
+   "cimpletoon/units/missile_sub/0005", "u.missile_sub_Idle_nw:0"
+   "cimpletoon/units/missile_sub/0006", "u.missile_sub_Idle_n:0"
+   "cimpletoon/units/missile_sub/0007", "u.missile_sub_Idle_ne:0"
+   "cimpletoon/units/missile_sub/0008", "u.missile_sub_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/panther/xxx.spec b/data/cimpletoon/units/panther/xxx.spec
index 35506392fd..2ed7b055ae 100644
--- a/data/cimpletoon/units/panther/xxx.spec
+++ b/data/cimpletoon/units/panther/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                          "tag"
-   "cimpletoon/units/panther/0001", "u.panther_Idle_se"
-   "cimpletoon/units/panther/0002", "u.panther_Idle_s"
-   "cimpletoon/units/panther/0003", "u.panther_Idle_sw"
-   "cimpletoon/units/panther/0004", "u.panther_Idle_w"
-   "cimpletoon/units/panther/0005", "u.panther_Idle_nw"
-   "cimpletoon/units/panther/0006", "u.panther_Idle_n"
-   "cimpletoon/units/panther/0007", "u.panther_Idle_ne"
-   "cimpletoon/units/panther/0008", "u.panther_Idle_e"
+   "cimpletoon/units/panther/0001", "u.panther_Idle_se:0"
+   "cimpletoon/units/panther/0002", "u.panther_Idle_s:0"
+   "cimpletoon/units/panther/0003", "u.panther_Idle_sw:0"
+   "cimpletoon/units/panther/0004", "u.panther_Idle_w:0"
+   "cimpletoon/units/panther/0005", "u.panther_Idle_nw:0"
+   "cimpletoon/units/panther/0006", "u.panther_Idle_n:0"
+   "cimpletoon/units/panther/0007", "u.panther_Idle_ne:0"
+   "cimpletoon/units/panther/0008", "u.panther_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/panzer_iii/xxx.spec b/data/cimpletoon/units/panzer_iii/xxx.spec
index 3da1a3ef5b..ddb6d70d4e 100644
--- a/data/cimpletoon/units/panzer_iii/xxx.spec
+++ b/data/cimpletoon/units/panzer_iii/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                             "tag"
-   "cimpletoon/units/panzer_iii/0001", "u.panzer_iii_Idle_se"
-   "cimpletoon/units/panzer_iii/0002", "u.panzer_iii_Idle_s"
-   "cimpletoon/units/panzer_iii/0003", "u.panzer_iii_Idle_sw"
-   "cimpletoon/units/panzer_iii/0004", "u.panzer_iii_Idle_w"
-   "cimpletoon/units/panzer_iii/0005", "u.panzer_iii_Idle_nw"
-   "cimpletoon/units/panzer_iii/0006", "u.panzer_iii_Idle_n"
-   "cimpletoon/units/panzer_iii/0007", "u.panzer_iii_Idle_ne"
-   "cimpletoon/units/panzer_iii/0008", "u.panzer_iii_Idle_e"
+   "cimpletoon/units/panzer_iii/0001", "u.panzer_iii_Idle_se:0"
+   "cimpletoon/units/panzer_iii/0002", "u.panzer_iii_Idle_s:0"
+   "cimpletoon/units/panzer_iii/0003", "u.panzer_iii_Idle_sw:0"
+   "cimpletoon/units/panzer_iii/0004", "u.panzer_iii_Idle_w:0"
+   "cimpletoon/units/panzer_iii/0005", "u.panzer_iii_Idle_nw:0"
+   "cimpletoon/units/panzer_iii/0006", "u.panzer_iii_Idle_n:0"
+   "cimpletoon/units/panzer_iii/0007", "u.panzer_iii_Idle_ne:0"
+   "cimpletoon/units/panzer_iii/0008", "u.panzer_iii_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/pt-boat/xxx.spec b/data/cimpletoon/units/pt-boat/xxx.spec
index c9a6cc1690..5e5a601bdd 100644
--- a/data/cimpletoon/units/pt-boat/xxx.spec
+++ b/data/cimpletoon/units/pt-boat/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                          "tag"
-   "cimpletoon/units/pt-boat/0001", "u.pt-boat_Idle_se"
-   "cimpletoon/units/pt-boat/0002", "u.pt-boat_Idle_s"
-   "cimpletoon/units/pt-boat/0003", "u.pt-boat_Idle_sw"
-   "cimpletoon/units/pt-boat/0004", "u.pt-boat_Idle_w"
-   "cimpletoon/units/pt-boat/0005", "u.pt-boat_Idle_nw"
-   "cimpletoon/units/pt-boat/0006", "u.pt-boat_Idle_n"
-   "cimpletoon/units/pt-boat/0007", "u.pt-boat_Idle_ne"
-   "cimpletoon/units/pt-boat/0008", "u.pt-boat_Idle_e"
+   "cimpletoon/units/pt-boat/0001", "u.pt-boat_Idle_se:0"
+   "cimpletoon/units/pt-boat/0002", "u.pt-boat_Idle_s:0"
+   "cimpletoon/units/pt-boat/0003", "u.pt-boat_Idle_sw:0"
+   "cimpletoon/units/pt-boat/0004", "u.pt-boat_Idle_w:0"
+   "cimpletoon/units/pt-boat/0005", "u.pt-boat_Idle_nw:0"
+   "cimpletoon/units/pt-boat/0006", "u.pt-boat_Idle_n:0"
+   "cimpletoon/units/pt-boat/0007", "u.pt-boat_Idle_ne:0"
+   "cimpletoon/units/pt-boat/0008", "u.pt-boat_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/stationary_sam/xxx.spec b/data/cimpletoon/units/stationary_sam/xxx.spec
index f1205404ba..ab342e6a1f 100644
--- a/data/cimpletoon/units/stationary_sam/xxx.spec
+++ b/data/cimpletoon/units/stationary_sam/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                                 "tag"
-   "cimpletoon/units/stationary_sam/0001", "u.stat_sam_Idle_se"
-   "cimpletoon/units/stationary_sam/0002", "u.stat_sam_Idle_s"
-   "cimpletoon/units/stationary_sam/0003", "u.stat_sam_Idle_sw"
-   "cimpletoon/units/stationary_sam/0004", "u.stat_sam_Idle_w"
-   "cimpletoon/units/stationary_sam/0005", "u.stat_sam_Idle_nw"
-   "cimpletoon/units/stationary_sam/0006", "u.stat_sam_Idle_n"
-   "cimpletoon/units/stationary_sam/0007", "u.stat_sam_Idle_ne"
-   "cimpletoon/units/stationary_sam/0008", "u.stat_sam_Idle_e"
+   "cimpletoon/units/stationary_sam/0001", "u.stat_sam_Idle_se:0"
+   "cimpletoon/units/stationary_sam/0002", "u.stat_sam_Idle_s:0"
+   "cimpletoon/units/stationary_sam/0003", "u.stat_sam_Idle_sw:0"
+   "cimpletoon/units/stationary_sam/0004", "u.stat_sam_Idle_w:0"
+   "cimpletoon/units/stationary_sam/0005", "u.stat_sam_Idle_nw:0"
+   "cimpletoon/units/stationary_sam/0006", "u.stat_sam_Idle_n:0"
+   "cimpletoon/units/stationary_sam/0007", "u.stat_sam_Idle_ne:0"
+   "cimpletoon/units/stationary_sam/0008", "u.stat_sam_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/steamer/xxx.spec b/data/cimpletoon/units/steamer/xxx.spec
index 444cb2be87..a3dad34466 100644
--- a/data/cimpletoon/units/steamer/xxx.spec
+++ b/data/cimpletoon/units/steamer/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                          "tag"
-   "cimpletoon/units/steamer/0001", "u.steamer_Idle_se"
-   "cimpletoon/units/steamer/0002", "u.steamer_Idle_s"
-   "cimpletoon/units/steamer/0003", "u.steamer_Idle_sw"
-   "cimpletoon/units/steamer/0004", "u.steamer_Idle_w"
-   "cimpletoon/units/steamer/0005", "u.steamer_Idle_nw"
-   "cimpletoon/units/steamer/0006", "u.steamer_Idle_n"
-   "cimpletoon/units/steamer/0007", "u.steamer_Idle_ne"
-   "cimpletoon/units/steamer/0008", "u.steamer_Idle_e"
+   "cimpletoon/units/steamer/0001", "u.steamer_Idle_se:0"
+   "cimpletoon/units/steamer/0002", "u.steamer_Idle_s:0"
+   "cimpletoon/units/steamer/0003", "u.steamer_Idle_sw:0"
+   "cimpletoon/units/steamer/0004", "u.steamer_Idle_w:0"
+   "cimpletoon/units/steamer/0005", "u.steamer_Idle_nw:0"
+   "cimpletoon/units/steamer/0006", "u.steamer_Idle_n:0"
+   "cimpletoon/units/steamer/0007", "u.steamer_Idle_ne:0"
+   "cimpletoon/units/steamer/0008", "u.steamer_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/storm/xxx.spec b/data/cimpletoon/units/storm/xxx.spec
index 1bb8a650b4..5c286fd46f 100644
--- a/data/cimpletoon/units/storm/xxx.spec
+++ b/data/cimpletoon/units/storm/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                             "tag"
-   "cimpletoon/units/storm/0001", "u.storm_Idle_se"
-   "cimpletoon/units/storm/0002", "u.storm_Idle_s"
-   "cimpletoon/units/storm/0003", "u.storm_Idle_sw"
-   "cimpletoon/units/storm/0004", "u.storm_Idle_w"
-   "cimpletoon/units/storm/0005", "u.storm_Idle_nw"
-   "cimpletoon/units/storm/0006", "u.storm_Idle_n"
-   "cimpletoon/units/storm/0007", "u.storm_Idle_ne"
-   "cimpletoon/units/storm/0008", "u.storm_Idle_e"
+   "cimpletoon/units/storm/0001", "u.storm_Idle_se:0"
+   "cimpletoon/units/storm/0002", "u.storm_Idle_s:0"
+   "cimpletoon/units/storm/0003", "u.storm_Idle_sw:0"
+   "cimpletoon/units/storm/0004", "u.storm_Idle_w:0"
+   "cimpletoon/units/storm/0005", "u.storm_Idle_nw:0"
+   "cimpletoon/units/storm/0006", "u.storm_Idle_n:0"
+   "cimpletoon/units/storm/0007", "u.storm_Idle_ne:0"
+   "cimpletoon/units/storm/0008", "u.storm_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/technical/xxx.spec b/data/cimpletoon/units/technical/xxx.spec
index 82b2e5be86..2f8b61cc8c 100644
--- a/data/cimpletoon/units/technical/xxx.spec
+++ b/data/cimpletoon/units/technical/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                            "tag"
-   "cimpletoon/units/technical/0001", "u.technical_Idle_se"
-   "cimpletoon/units/technical/0002", "u.technical_Idle_s"
-   "cimpletoon/units/technical/0003", "u.technical_Idle_sw"
-   "cimpletoon/units/technical/0004", "u.technical_Idle_w"
-   "cimpletoon/units/technical/0005", "u.technical_Idle_nw"
-   "cimpletoon/units/technical/0006", "u.technical_Idle_n"
-   "cimpletoon/units/technical/0007", "u.technical_Idle_ne"
-   "cimpletoon/units/technical/0008", "u.technical_Idle_e"
+   "cimpletoon/units/technical/0001", "u.technical_Idle_se:0"
+   "cimpletoon/units/technical/0002", "u.technical_Idle_s:0"
+   "cimpletoon/units/technical/0003", "u.technical_Idle_sw:0"
+   "cimpletoon/units/technical/0004", "u.technical_Idle_w:0"
+   "cimpletoon/units/technical/0005", "u.technical_Idle_nw:0"
+   "cimpletoon/units/technical/0006", "u.technical_Idle_n:0"
+   "cimpletoon/units/technical/0007", "u.technical_Idle_ne:0"
+   "cimpletoon/units/technical/0008", "u.technical_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/tiger/xxx.spec b/data/cimpletoon/units/tiger/xxx.spec
index b37760d642..27f13a377a 100644
--- a/data/cimpletoon/units/tiger/xxx.spec
+++ b/data/cimpletoon/units/tiger/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                        "tag"
-   "cimpletoon/units/tiger/0001", "u.tiger_Idle_se"
-   "cimpletoon/units/tiger/0002", "u.tiger_Idle_s"
-   "cimpletoon/units/tiger/0003", "u.tiger_Idle_sw"
-   "cimpletoon/units/tiger/0004", "u.tiger_Idle_w"
-   "cimpletoon/units/tiger/0005", "u.tiger_Idle_nw"
-   "cimpletoon/units/tiger/0006", "u.tiger_Idle_n"
-   "cimpletoon/units/tiger/0007", "u.tiger_Idle_ne"
-   "cimpletoon/units/tiger/0008", "u.tiger_Idle_e"
+   "cimpletoon/units/tiger/0001", "u.tiger_Idle_se:0"
+   "cimpletoon/units/tiger/0002", "u.tiger_Idle_s:0"
+   "cimpletoon/units/tiger/0003", "u.tiger_Idle_sw:0"
+   "cimpletoon/units/tiger/0004", "u.tiger_Idle_w:0"
+   "cimpletoon/units/tiger/0005", "u.tiger_Idle_nw:0"
+   "cimpletoon/units/tiger/0006", "u.tiger_Idle_n:0"
+   "cimpletoon/units/tiger/0007", "u.tiger_Idle_ne:0"
+   "cimpletoon/units/tiger/0008", "u.tiger_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/truck/xxx.spec b/data/cimpletoon/units/truck/xxx.spec
index 4de4799104..3dc09ce8d2 100644
--- a/data/cimpletoon/units/truck/xxx.spec
+++ b/data/cimpletoon/units/truck/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                        "tag"
-   "cimpletoon/units/truck/0001", "u.truck_Idle_se"
-   "cimpletoon/units/truck/0002", "u.truck_Idle_s"
-   "cimpletoon/units/truck/0003", "u.truck_Idle_sw"
-   "cimpletoon/units/truck/0004", "u.truck_Idle_w"
-   "cimpletoon/units/truck/0005", "u.truck_Idle_nw"
-   "cimpletoon/units/truck/0006", "u.truck_Idle_n"
-   "cimpletoon/units/truck/0007", "u.truck_Idle_ne"
-   "cimpletoon/units/truck/0008", "u.truck_Idle_e"
+   "cimpletoon/units/truck/0001", "u.truck_Idle_se:0"
+   "cimpletoon/units/truck/0002", "u.truck_Idle_s:0"
+   "cimpletoon/units/truck/0003", "u.truck_Idle_sw:0"
+   "cimpletoon/units/truck/0004", "u.truck_Idle_w:0"
+   "cimpletoon/units/truck/0005", "u.truck_Idle_nw:0"
+   "cimpletoon/units/truck/0006", "u.truck_Idle_n:0"
+   "cimpletoon/units/truck/0007", "u.truck_Idle_ne:0"
+   "cimpletoon/units/truck/0008", "u.truck_Idle_e:0"
  }
diff --git a/data/cimpletoon/units/zeppelin/xxx.spec b/data/cimpletoon/units/zeppelin/xxx.spec
index dd2c85ab88..6c7b3c68b0 100644
--- a/data/cimpletoon/units/zeppelin/xxx.spec
+++ b/data/cimpletoon/units/zeppelin/xxx.spec
@@ -13,12 +13,12 @@ artists = "
 [extra]
 sprites =
  { "file",                           "tag"
-   "cimpletoon/units/zeppelin/0001", "u.zeppelin_Idle_se"
-   "cimpletoon/units/zeppelin/0002", "u.zeppelin_Idle_s"
-   "cimpletoon/units/zeppelin/0003", "u.zeppelin_Idle_sw"
-   "cimpletoon/units/zeppelin/0004", "u.zeppelin_Idle_w"
-   "cimpletoon/units/zeppelin/0005", "u.zeppelin_Idle_nw"
-   "cimpletoon/units/zeppelin/0006", "u.zeppelin_Idle_n"
-   "cimpletoon/units/zeppelin/0007", "u.zeppelin_Idle_ne"
-   "cimpletoon/units/zeppelin/0008", "u.zeppelin_Idle_e"
+   "cimpletoon/units/zeppelin/0001", "u.zeppelin_Idle_se:0"
+   "cimpletoon/units/zeppelin/0002", "u.zeppelin_Idle_s:0"
+   "cimpletoon/units/zeppelin/0003", "u.zeppelin_Idle_sw:0"
+   "cimpletoon/units/zeppelin/0004", "u.zeppelin_Idle_w:0"
+   "cimpletoon/units/zeppelin/0005", "u.zeppelin_Idle_nw:0"
+   "cimpletoon/units/zeppelin/0006", "u.zeppelin_Idle_n:0"
+   "cimpletoon/units/zeppelin/0007", "u.zeppelin_Idle_ne:0"
+   "cimpletoon/units/zeppelin/0008", "u.zeppelin_Idle_e:0"
  }
diff --git a/data/trident/units.spec b/data/trident/units.spec
index b39916d331..882dd98904 100644
--- a/data/trident/units.spec
+++ b/data/trident/units.spec
@@ -23,61 +23,61 @@ dy = 30
 
 tiles = { "row", "column", "tag"
 
-  0,  0, "u.armor_Idle"
-  0,  1, "u.howitzer_Idle"
-  0,  2, "u.battleship_Idle"
-  0,  3, "u.bomber_Idle"
-  0,  4, "u.cannon_Idle"
-  0,  5, "u.caravan_Idle"
-  0,  6, "u.carrier_Idle"
-  0,  7, "u.catapult_Idle"
-  0,  8, "u.horsemen_Idle"
-  0,  9, "u.chariot_Idle"
-  0, 10, "u.cruiser_Idle"
-  0, 11, "u.diplomat_Idle"
-  0, 12, "u.fighter_Idle"
-  0, 13, "u.frigate_Idle"
-  0, 14, "u.ironclad_Idle"
-  0, 15, "u.knights_Idle"
-  0, 16, "u.legion_Idle"
-  0, 17, "u.mech_inf_Idle"
-  0, 18, "u.warriors_Idle"
-  0, 19, "u.musketeers_Idle"
-  1,  0, "u.nuclear_Idle"
-  1,  1, "u.phalanx_Idle"
-  1,  2, "u.riflemen_Idle"
-  1,  3, "u.caravel_Idle"
-  1,  4, "u.settlers_Idle"
-  1,  5, "u.submarine_Idle"
-  1,  6, "u.transport_Idle"
-  1,  7, "u.trireme_Idle"
-  1,  8, "u.archers_Idle"
-  1,  9, "u.cavalry_Idle"
-  1, 10, "u.cruise_missile_Idle"
-  1, 11, "u.destroyer_Idle"
-  1, 12, "u.dragoons_Idle"
-  1, 13, "u.explorer_Idle"
-  1, 14, "u.freight_Idle"
-  1, 15, "u.galleon_Idle"
-  1, 16, "u.partisan_Idle"
-  1, 17, "u.pikemen_Idle"
-  1, 18, "u.storm_Idle"
-  2,  0, "u.marines_Idle"
-  2,  1, "u.spy_Idle"
-  2,  2, "u.engineers_Idle"
-  2,  3, "u.artillery_Idle"
-  2,  4, "u.helicopter_Idle"
-  2,  5, "u.alpine_troops_Idle"
-  2,  6, "u.stealth_bomber_Idle"
-  2,  7, "u.stealth_fighter_Idle"
-  2,  8, "u.aegis_cruiser_Idle"
-  2,  9, "u.paratroopers_Idle"
-  2, 10, "u.elephants_Idle"
-  2, 11, "u.crusaders_Idle"
-  2, 12, "u.fanatics_Idle"
-  2, 13, "u.awacs_Idle"
-  2, 14, "u.worker_Idle"
-  2, 15, "u.leader_Idle"
-  2, 16, "u.migrants_Idle"
-  2, 17, "u.barbarian_leader_Idle"
+  0,  0, "u.armor_Idle:0"
+  0,  1, "u.howitzer_Idle:0"
+  0,  2, "u.battleship_Idle:0"
+  0,  3, "u.bomber_Idle:0"
+  0,  4, "u.cannon_Idle:0"
+  0,  5, "u.caravan_Idle:0"
+  0,  6, "u.carrier_Idle:0"
+  0,  7, "u.catapult_Idle:0"
+  0,  8, "u.horsemen_Idle:0"
+  0,  9, "u.chariot_Idle:0"
+  0, 10, "u.cruiser_Idle:0"
+  0, 11, "u.diplomat_Idle:0"
+  0, 12, "u.fighter_Idle:0"
+  0, 13, "u.frigate_Idle:0"
+  0, 14, "u.ironclad_Idle:0"
+  0, 15, "u.knights_Idle:0"
+  0, 16, "u.legion_Idle:0"
+  0, 17, "u.mech_inf_Idle:0"
+  0, 18, "u.warriors_Idle:0"
+  0, 19, "u.musketeers_Idle:0"
+  1,  0, "u.nuclear_Idle:0"
+  1,  1, "u.phalanx_Idle:0"
+  1,  2, "u.riflemen_Idle:0"
+  1,  3, "u.caravel_Idle:0"
+  1,  4, "u.settlers_Idle:0"
+  1,  5, "u.submarine_Idle:0"
+  1,  6, "u.transport_Idle:0"
+  1,  7, "u.trireme_Idle:0"
+  1,  8, "u.archers_Idle:0"
+  1,  9, "u.cavalry_Idle:0"
+  1, 10, "u.cruise_missile_Idle:0"
+  1, 11, "u.destroyer_Idle:0"
+  1, 12, "u.dragoons_Idle:0"
+  1, 13, "u.explorer_Idle:0"
+  1, 14, "u.freight_Idle:0"
+  1, 15, "u.galleon_Idle:0"
+  1, 16, "u.partisan_Idle:0"
+  1, 17, "u.pikemen_Idle:0"
+  1, 18, "u.storm_Idle:0"
+  2,  0, "u.marines_Idle:0"
+  2,  1, "u.spy_Idle:0"
+  2,  2, "u.engineers_Idle:0"
+  2,  3, "u.artillery_Idle:0"
+  2,  4, "u.helicopter_Idle:0"
+  2,  5, "u.alpine_troops_Idle:0"
+  2,  6, "u.stealth_bomber_Idle:0"
+  2,  7, "u.stealth_fighter_Idle:0"
+  2,  8, "u.aegis_cruiser_Idle:0"
+  2,  9, "u.paratroopers_Idle:0"
+  2, 10, "u.elephants_Idle:0"
+  2, 11, "u.crusaders_Idle:0"
+  2, 12, "u.fanatics_Idle:0"
+  2, 13, "u.awacs_Idle:0"
+  2, 14, "u.worker_Idle:0"
+  2, 15, "u.leader_Idle:0"
+  2, 16, "u.migrants_Idle:0"
+  2, 17, "u.barbarian_leader_Idle:0"
 }
-- 
2.47.2

