Index: binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_b.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_b.xml
+++ binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_b.xml
@@ -31,6 +31,9 @@
+
+
+
Index: binaries/data/mods/public/art/actors/units/ptolemies/infantry_pikeman_b.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/ptolemies/infantry_pikeman_b.xml
+++ binaries/data/mods/public/art/actors/units/ptolemies/infantry_pikeman_b.xml
@@ -18,6 +18,9 @@
+
+
+
Index: binaries/data/mods/public/art/variants/biped/base_hoplite.xml
===================================================================
--- binaries/data/mods/public/art/variants/biped/base_hoplite.xml
+++ binaries/data/mods/public/art/variants/biped/base_hoplite.xml
@@ -8,14 +8,6 @@
-
-
-
-
-
-
-
-
Index: binaries/data/mods/public/art/variants/biped/base_hoplite_phalanx_back.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/art/variants/biped/base_hoplite_phalanx_back.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/variants/biped/base_hoplite_phalanx_center.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/art/variants/biped/base_hoplite_phalanx_center.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/variants/biped/base_hoplite_phalanx_front.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/art/variants/biped/base_hoplite_phalanx_front.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/variants/biped/pikeman_base.xml
===================================================================
--- binaries/data/mods/public/art/variants/biped/pikeman_base.xml
+++ binaries/data/mods/public/art/variants/biped/pikeman_base.xml
@@ -3,16 +3,7 @@
-
-
-
-
-
-
-
-
-
-
+
Index: binaries/data/mods/public/art/variants/biped/pikeman_base_syntagma_back.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/art/variants/biped/pikeman_base_syntagma_back.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/variants/biped/pikeman_base_syntagma_center.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/art/variants/biped/pikeman_base_syntagma_center.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/art/variants/biped/pikeman_base_syntagma_front.xml
===================================================================
--- /dev/null
+++ binaries/data/mods/public/art/variants/biped/pikeman_base_syntagma_front.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
Index: binaries/data/mods/public/simulation/components/Formation.js
===================================================================
--- binaries/data/mods/public/simulation/components/Formation.js
+++ binaries/data/mods/public/simulation/components/Formation.js
@@ -62,13 +62,8 @@
"" +
"" +
"" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
+ "" +
+ "" +
"";
var g_ColumnDistanceThreshold = 128; // distance at which we'll switch between column/box formations
@@ -90,12 +85,10 @@
this.maxRows = +(this.template.MaxRows || 0);
this.centerGap = +(this.template.CenterGap || 0);
- var animations = this.template.Animations;
- this.animations = {};
- for (var animationName in animations)
+ this.animations = [];
+ if (this.template.Animations)
{
- var differentAnimations = animations[animationName].split(/\s*;\s*/);
- this.animations[animationName] = [];
+ let differentAnimations = this.template.Animations.split(/\s*;\s*/);
// loop over the different rectangulars that will map to different animations
for (var rectAnimation of differentAnimations)
{
@@ -106,7 +99,7 @@
var minRow, maxRow, minColumn, maxColumn;
[minRow, maxRow] = rows.split(/\s*\.\.\s*/);
[minColumn, maxColumn] = columns.split(/\s*\.\.\s*/);
- this.animations[animationName].push({
+ this.animations.push({
"minRow": +minRow,
"maxRow": +maxRow,
"minColumn": +minColumn,
@@ -206,16 +199,14 @@
/**
* Get the formation animation for a certain member of this formation
* @param entity The entity ID to get the animation for
- * @param defaultAnimation The name of the default wanted animation for the entity
- * E.g. "walk", "idle" ...
* @return The name of the transformed animation as defined in the template
- * E.g. "walk_testudo_row1"
+ * E.g. "testudo_row1"
*/
-Formation.prototype.GetFormationAnimation = function(entity, defaultAnimation)
+Formation.prototype.GetFormationAnimation = function(entity)
{
- var animationGroup = this.animations[defaultAnimation];
- if (!animationGroup || this.columnar || !this.memberPositions[entity])
- return defaultAnimation;
+ var animationGroup = this.animations;
+ if (!animationGroup.length || this.columnar || !this.memberPositions[entity])
+ return "formation";
var row = this.memberPositions[entity].row;
var column = this.memberPositions[entity].column;
for (var i = 0; i < animationGroup.length; ++i)
@@ -246,7 +237,7 @@
return animationGroup[i].animation;
}
- return defaultAnimation;
+ return "formation";
};
/**
Index: binaries/data/mods/public/simulation/components/UnitAI.js
===================================================================
--- binaries/data/mods/public/simulation/components/UnitAI.js
+++ binaries/data/mods/public/simulation/components/UnitAI.js
@@ -1367,13 +1367,10 @@
"WALKING": {
"enter": function () {
- var cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation);
- var cmpVisual = Engine.QueryInterface(this.entity, IID_Visual);
- if (cmpFormation && cmpVisual)
- {
- cmpVisual.ReplaceMoveAnimation("walk", cmpFormation.GetFormationAnimation(this.entity, "walk"));
- cmpVisual.ReplaceMoveAnimation("run", cmpFormation.GetFormationAnimation(this.entity, "run"));
- }
+ let cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation);
+ if (cmpFormation)
+ this.SetAnimationVariant(cmpFormation.GetFormationAnimation(this.entity));
+
this.SelectAnimation("move");
},
@@ -1383,12 +1380,6 @@
// We can only finish this order if the move was really completed.
if (!msg.data.error && this.FinishOrder())
return;
- var cmpVisual = Engine.QueryInterface(this.entity, IID_Visual);
- if (cmpVisual)
- {
- cmpVisual.ResetMoveAnimation("walk");
- cmpVisual.ResetMoveAnimation("run");
- }
var cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation);
if (cmpFormation)
Index: binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml
+++ binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml
@@ -13,26 +13,9 @@
8
0.9
-
- 1..2,1..-1: phalanx_idle;
- 3..4,1..-1: phalanx_idle;
- 5..6,1..-1: phalanx_back_idle
-
-
- 1..2,1..-1: phalanx_walk;
- 3..4,1..-1: phalanx_walk;
- 5..6,1..-1: phalanx_walk
-
-
- 1..2,1..-1: phalanx_run;
- 3..4,1..-1: phalanx_run;
- 5..6,1..-1: phalanx_run
-
-
- 1..2,1..-1: phalanx_attack;
- 3..4,1..-1: phalanx_attack;
- 5..6,1..-1: phalanx_idle
-
+ 1..2,1..-1: phalanx_front;
+ 3..4,1..-1: phalanx_center;
+ 5..6,1..-1: phalanx_back
Index: binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml
+++ binaries/data/mods/public/simulation/templates/special/formations/syntagma.xml
@@ -13,21 +13,9 @@
8
8
-
- 1..2,1..-1: syntagma_front_idle;
- 3..4,1..-1: syntagma_med_idle;
- 4..8,1..-1: syntagma_back_idle
-
-
- 1..2,1..-1: syntagma_front_walk;
- 3..4,1..-1: syntagma_med_walk;
- 4..8,1..-1: syntagma_back_walk
-
-
- 1..2,1..-1: syntagma_front_run;
- 3..4,1..-1: syntagma_med_run;
- 4..8,1..-1: syntagma_back_run
-
+ 1..2,1..-1: syntagma_front;
+ 3..4,1..-1: syntagma_center;
+ 5..8,1..-1: syntagma_back
0.85
0.15
Index: binaries/data/mods/public/simulation/templates/special/formations/testudo.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/special/formations/testudo.xml
+++ binaries/data/mods/public/simulation/templates/special/formations/testudo.xml
@@ -9,14 +9,8 @@
0.7
1.5
-
- 1..1,1..-1: idle_testudo_front;
- 2..-1,1..-1: idle_testudo_top
-
-
- 1..1,1..-1: walk_testudo_front;
- 2..-1,1..-1: walk_testudo_top
-
+ 1..1,1..-1: testudo_front;
+ 2..-1,1..-1: testudo_top