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