From ff7cc7505565a499281475110f46e8b25ac575e8 Mon Sep 17 00:00:00 2001 From: historic_bruno Date: Thu, 12 May 2011 21:48:59 +0000 Subject: [PATCH] Fixes garrisoning bug (units don't have to approach buildings in order to garrison) This was SVN commit r9505. --- .../public/simulation/components/UnitAI.js | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/binaries/data/mods/public/simulation/components/UnitAI.js b/binaries/data/mods/public/simulation/components/UnitAI.js index d7c0c11cae..24a52f2b48 100644 --- a/binaries/data/mods/public/simulation/components/UnitAI.js +++ b/binaries/data/mods/public/simulation/components/UnitAI.js @@ -977,17 +977,7 @@ var UnitFsmSpec = { }, "MoveCompleted": function() { - var cmpGarrisonHolder = Engine.QueryInterface(this.order.data.target, IID_GarrisonHolder); - if (cmpGarrisonHolder && cmpGarrisonHolder.Garrison(this.entity)) - { - this.SetNextState("GARRISONED"); - } - else - { - if (this.FinishOrder()) - return; - } - + this.SetNextState("GARRISONED"); }, "leave": function() { @@ -997,7 +987,16 @@ var UnitFsmSpec = { "GARRISONED": { "enter": function() { - this.isGarrisoned = true; + var cmpGarrisonHolder = Engine.QueryInterface(this.order.data.target, IID_GarrisonHolder); + if (cmpGarrisonHolder && cmpGarrisonHolder.Garrison(this.entity)) + { + this.isGarrisoned = true; + } + else + { // Garrisoning failed for some reason, so finish the order + if (this.FinishOrder()) + return; + } }, "Order.Ungarrison": function() {