diff --git a/binaries/data/mods/public/l10n/messages.json b/binaries/data/mods/public/l10n/messages.json
index b83d1affaa..450b8c1183 100644
--- a/binaries/data/mods/public/l10n/messages.json
+++ b/binaries/data/mods/public/l10n/messages.json
@@ -508,8 +508,6 @@
"splitOnWhitespace": true
},
"Tooltip": {},
- "DisabledTooltip": {},
- "FormationName": {},
"FromClass": {},
"Shape": {},
"Rank": {
@@ -553,8 +551,6 @@
"splitOnWhitespace": true
},
"Tooltip": {},
- "DisabledTooltip": {},
- "FormationName": {},
"FromClass": {},
"Rank": {
"tagAsContext": true
@@ -597,7 +593,6 @@
},
"Tooltip": {},
"DisabledTooltip": {},
- "FormationName": {},
"FromClass": {},
"Rank": {
"tagAsContext": true
diff --git a/binaries/data/mods/public/simulation/components/Formation.js b/binaries/data/mods/public/simulation/components/Formation.js
index aa004f84e2..50efbb1525 100644
--- a/binaries/data/mods/public/simulation/components/Formation.js
+++ b/binaries/data/mods/public/simulation/components/Formation.js
@@ -1,12 +1,6 @@
function Formation() {}
Formation.prototype.Schema =
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
"" +
"" +
""+
@@ -714,7 +708,7 @@ Formation.prototype.ComputeFormationOffsets = function(active, positions)
}
// Define special formations here.
- if (this.template.FormationName == "Scatter")
+ if (this.template.FormationShape == "special" && Engine.QueryInterface(this.entity, IID_Identity).GetGenericName() == "Scatter")
{
let width = Math.sqrt(count) * (separation.width + separation.depth) * 2.5;
diff --git a/binaries/data/mods/public/simulation/components/GuiInterface.js b/binaries/data/mods/public/simulation/components/GuiInterface.js
index ba17df4232..696f51f8b6 100644
--- a/binaries/data/mods/public/simulation/components/GuiInterface.js
+++ b/binaries/data/mods/public/simulation/components/GuiInterface.js
@@ -856,9 +856,9 @@ GuiInterface.prototype.GetFormationInfoFromTemplate = function(player, data)
return {};
return {
- "name": template.Formation.FormationName,
+ "name": template.Identity.GenericName,
"tooltip": template.Formation.DisabledTooltip || "",
- "icon": template.Formation.Icon
+ "icon": template.Identity.Icon
};
};
diff --git a/binaries/data/mods/public/simulation/components/tests/test_UnitAI.js b/binaries/data/mods/public/simulation/components/tests/test_UnitAI.js
index 7a9c2beed5..1418070ed2 100644
--- a/binaries/data/mods/public/simulation/components/tests/test_UnitAI.js
+++ b/binaries/data/mods/public/simulation/components/tests/test_UnitAI.js
@@ -217,7 +217,6 @@ function TestFormationExiting(mode)
});
let controllerFormation = ConstructComponent(controller, "Formation", {
- "FormationName": "Line Closed",
"FormationShape": "square",
"ShiftRows": "false",
"SortingClasses": "",
@@ -391,7 +390,6 @@ function TestMoveIntoFormationWhileAttacking()
});
let controllerFormation = ConstructComponent(controller, "Formation", {
- "FormationName": "Line Closed",
"FormationShape": "square",
"ShiftRows": "false",
"SortingClasses": "",
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/anti_cavalry.xml b/binaries/data/mods/public/simulation/templates/special/formations/anti_cavalry.xml
index c1c84295b1..02094ce0db 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/anti_cavalry.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/anti_cavalry.xml
@@ -1,10 +1,8 @@
- formations/testudo.png
16
Melee Infantry only, requires at least 16.
- Anti Cavalry
square
0.50
0.37
@@ -22,4 +20,8 @@
false
+
+ formations/testudo.png
+ Anti Cavalry
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/battle_line.xml b/binaries/data/mods/public/simulation/templates/special/formations/battle_line.xml
index 6624a62afd..f18ecf3b55 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/battle_line.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/battle_line.xml
@@ -1,8 +1,6 @@
- formations/battle_line.png
- Battle Line
Cavalry Melee Ranged
fillFromTheSides
true
@@ -11,4 +9,8 @@
4
2
+
+ Battle Line
+ formations/battle_line.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/box.xml b/binaries/data/mods/public/simulation/templates/special/formations/box.xml
index bd689e0719..51ae9950aa 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/box.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/box.xml
@@ -1,12 +1,14 @@
- formations/box.png
4
Requires at least 4 Soldiers or Siege engines.
- Box
square
Melee Ranged
fillToTheCenter
+
+ Box
+ formations/box.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/column_closed.xml b/binaries/data/mods/public/simulation/templates/special/formations/column_closed.xml
index 0f647c60df..236293ee7f 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/column_closed.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/column_closed.xml
@@ -1,11 +1,13 @@
- formations/column_closed.png
- Forced March
0.75
1.0
3
3
+
+ Forced March
+ formations/column_closed.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/column_open.xml b/binaries/data/mods/public/simulation/templates/special/formations/column_open.xml
index 74452954c0..e670fb6d62 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/column_open.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/column_open.xml
@@ -1,11 +1,13 @@
- formations/column_open.png
- Column Open
true
2
2
2
+
+ Column Open
+ formations/column_open.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/flank.xml b/binaries/data/mods/public/simulation/templates/special/formations/flank.xml
index 18118f8e6f..a2ea23df3e 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/flank.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/flank.xml
@@ -1,12 +1,14 @@
- formations/flank.png
8
Requires at least 8 Soldiers or Siege engines.
- Flank
square
true
12
+
+ Flank
+ formations/flank.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/line_closed.xml b/binaries/data/mods/public/simulation/templates/special/formations/line_closed.xml
index 40347bff25..1e850804c3 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/line_closed.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/line_closed.xml
@@ -1,10 +1,12 @@
- formations/line_closed.png
- Close Order
3
4
0.25
+
+ Close Order
+ formations/line_closed.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/line_open.xml b/binaries/data/mods/public/simulation/templates/special/formations/line_open.xml
index f6f0c56442..d2c1664fa1 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/line_open.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/line_open.xml
@@ -1,12 +1,14 @@
- formations/line_open.png
- Open Order
1.5
1.5
4
3
0.5
+
+ Open Order
+ formations/line_open.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/null.xml b/binaries/data/mods/public/simulation/templates/special/formations/null.xml
index 0d13c1b96a..fa23e704e7 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/null.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/null.xml
@@ -1,8 +1,10 @@
- formations/null.png
- None
+
+ None
+ formations/null.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml b/binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml
index 5dc4e078d9..2efdd59e46 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml
@@ -1,10 +1,8 @@
- formations/phalanx.png
10
Infantry Hoplites only, requires at least 10.
- Phalanx
0.6
0.6
4
@@ -21,4 +19,8 @@
false
+
+ Phalanx
+ formations/phalanx.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/scatter.xml b/binaries/data/mods/public/simulation/templates/special/formations/scatter.xml
index 4d54514907..1a37461625 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/scatter.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/scatter.xml
@@ -1,8 +1,10 @@
- formations/scatter.png
- Scatter
special
+
+ Scatter
+ formations/scatter.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/skirmish.xml b/binaries/data/mods/public/simulation/templates/special/formations/skirmish.xml
index fd7971d497..28e48c8439 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/skirmish.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/skirmish.xml
@@ -1,9 +1,7 @@
- formations/skirmish.png
Ranged Soldiers only, requires at least 2.
- Skirmish
true
2
2
@@ -12,4 +10,8 @@
false
+
+ Skirmish
+ formations/skirmish.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml b/binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml
index 669ec95e47..24c7ba8edb 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml
@@ -1,11 +1,9 @@
- formations/syntagma.png
16
Infantry Pikemen only, requires at least 16.
Hero Champion Elite Advanced Basic
- Syntagma
square
0.86
0.55
@@ -27,4 +25,8 @@
false
+
+ Syntagma
+ formations/syntagma.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/testudo.xml b/binaries/data/mods/public/simulation/templates/special/formations/testudo.xml
index 4078bb0c6d..16557a36e5 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/testudo.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/testudo.xml
@@ -1,11 +1,9 @@
- formations/testudo.png
16
Melee Infantry only, requires at least 16.
Hero Champion Elite Advanced Basic
- Testudo
square
0.5
0.4
@@ -67,4 +65,8 @@
false
+
+ Testudo
+ formations/testudo.png
+
diff --git a/binaries/data/mods/public/simulation/templates/special/formations/wedge.xml b/binaries/data/mods/public/simulation/templates/special/formations/wedge.xml
index 9159a4dc0a..281e22a8f0 100644
--- a/binaries/data/mods/public/simulation/templates/special/formations/wedge.xml
+++ b/binaries/data/mods/public/simulation/templates/special/formations/wedge.xml
@@ -1,10 +1,8 @@
- formations/wedge.png
6
Cavalry only, requires at least 6.
- Wedge
triangle
true
0.25
@@ -14,4 +12,8 @@
false
+
+ Wedge
+ formations/wedge.png
+
diff --git a/binaries/data/mods/public/simulation/templates/template_formation.xml b/binaries/data/mods/public/simulation/templates/template_formation.xml
index 443521d0df..f19adb5a67 100644
--- a/binaries/data/mods/public/simulation/templates/template_formation.xml
+++ b/binaries/data/mods/public/simulation/templates/template_formation.xml
@@ -1,11 +1,6 @@
+ true
+
true
diff --git a/source/tools/entity/checkrefs.py b/source/tools/entity/checkrefs.py
index cdb4e18a41..ecc9dd9255 100644
--- a/source/tools/entity/checkrefs.py
+++ b/source/tools/entity/checkrefs.py
@@ -245,7 +245,10 @@ class CheckRefs:
if entity.find('Identity') is not None:
icon = entity.find('Identity').find('Icon')
if icon is not None and icon.text:
- self.deps.append((str(fp), f'art/textures/ui/session/portraits/{icon.text}'))
+ if entity.find('Formation') is not None:
+ self.deps.append((str(fp), f'art/textures/ui/session/icons/{icon.text}'))
+ else:
+ self.deps.append((str(fp), f'art/textures/ui/session/portraits/{icon.text}'))
if entity.find('Heal') is not None and entity.find('Heal').find('RangeOverlay') is not None:
range_overlay = entity.find('Heal').find('RangeOverlay')
for tag in ('LineTexture', 'LineTextureMask'):