diff --git a/binaries/data/mods/public/gui/session/utility_functions.js b/binaries/data/mods/public/gui/session/utility_functions.js index f4a2f2caab..0b041b9960 100644 --- a/binaries/data/mods/public/gui/session/utility_functions.js +++ b/binaries/data/mods/public/gui/session/utility_functions.js @@ -631,7 +631,7 @@ function getEntityOrHolder(ent) { var entState = GetEntityState(ent); if (entState && !entState.position && entState.unitAI && entState.unitAI.orders.length > 0 && - entState.unitAI.orders[0].type == "Garrison") + (entState.unitAI.orders[0].type == "Garrison" || entState.unitAI.orders[0].type == "Autogarrison")) return entState.unitAI.orders[0].data.target; return ent; diff --git a/binaries/data/mods/public/simulation/components/ProductionQueue.js b/binaries/data/mods/public/simulation/components/ProductionQueue.js index 4b062298e4..854f1967be 100644 --- a/binaries/data/mods/public/simulation/components/ProductionQueue.js +++ b/binaries/data/mods/public/simulation/components/ProductionQueue.js @@ -551,7 +551,7 @@ ProductionQueue.prototype.SpawnUnits = function(templateName, count, metadata) if (cmpAutoGarrison && cmpAutoGarrison.PerformGarrison(ent)) { var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI); - cmpUnitAI.Autogarrison(); + cmpUnitAI.Autogarrison(this.entity); } else { diff --git a/binaries/data/mods/public/simulation/components/Promotion.js b/binaries/data/mods/public/simulation/components/Promotion.js index 44cf5ea79c..35795f4331 100644 --- a/binaries/data/mods/public/simulation/components/Promotion.js +++ b/binaries/data/mods/public/simulation/components/Promotion.js @@ -85,7 +85,7 @@ Promotion.prototype.Promote = function(promotedTemplateName) // as we are already garrisoned and do not need to do // any further checks (or else we should do them here). orders.shift(); - cmpPromotedUnitAI.Autogarrison(); + cmpPromotedUnitAI.Autogarrison(orders[0].data.target); } else warn("Promoted garrisoned entity with empty order queue."); diff --git a/binaries/data/mods/public/simulation/components/UnitAI.js b/binaries/data/mods/public/simulation/components/UnitAI.js index 0f1bd9ae66..445ea3e59c 100644 --- a/binaries/data/mods/public/simulation/components/UnitAI.js +++ b/binaries/data/mods/public/simulation/components/UnitAI.js @@ -4982,9 +4982,9 @@ UnitAI.prototype.Ungarrison = function() * Adds autogarrison order to the queue (only used by ProductionQueue for auto-garrisoning * and Promotion when promoting already garrisoned entities). */ -UnitAI.prototype.Autogarrison = function() +UnitAI.prototype.Autogarrison = function(target) { - this.AddOrder("Autogarrison", null, false); + this.AddOrder("Autogarrison", { "target": target }, false); }; /**