From 6cbdc13e0804854e76d8a50f666380b4cd70ac87 Mon Sep 17 00:00:00 2001 From: leper Date: Wed, 26 Jun 2013 18:41:06 +0000 Subject: [PATCH] Clarify usage of CheckPlacement. Check if the losRangeQuery exists before disabling it. This was SVN commit r13504. --- .../mods/public/simulation/components/BuildRestrictions.js | 6 +++++- binaries/data/mods/public/simulation/components/UnitAI.js | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/binaries/data/mods/public/simulation/components/BuildRestrictions.js b/binaries/data/mods/public/simulation/components/BuildRestrictions.js index daebd4e10a..e94e5366be 100644 --- a/binaries/data/mods/public/simulation/components/BuildRestrictions.js +++ b/binaries/data/mods/public/simulation/components/BuildRestrictions.js @@ -78,7 +78,7 @@ BuildRestrictions.prototype.Init = function() * 2. Check foundation * a. Doesn't obstruct foundation-blocking entities * b. On valid terrain, based on passability class - * 3. Territory type is allowed + * 3. Territory type is allowed (see note below) * 4. Dock is on shoreline and facing into water * 5. Distance constraints satisfied * @@ -87,6 +87,10 @@ BuildRestrictions.prototype.Init = function() * "success": true iff the placement is valid, else false * "message": message to display in UI for invalid placement, else empty string * } + * + * Note: The entity which is used to check this should be a preview entity + * (template name should be "preview|"+templateName), as otherwise territory + * checks for buildings with territory influence will not work as expected. */ BuildRestrictions.prototype.CheckPlacement = function() { diff --git a/binaries/data/mods/public/simulation/components/UnitAI.js b/binaries/data/mods/public/simulation/components/UnitAI.js index 3788fbde1c..4e3276077e 100644 --- a/binaries/data/mods/public/simulation/components/UnitAI.js +++ b/binaries/data/mods/public/simulation/components/UnitAI.js @@ -1180,7 +1180,8 @@ var UnitFsmSpec = { "leave": function() { var rangeMan = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); - rangeMan.DisableActiveQuery(this.losRangeQuery); + if (this.losRangeQuery) + rangeMan.DisableActiveQuery(this.losRangeQuery); if (this.losHealRangeQuery) rangeMan.DisableActiveQuery(this.losHealRangeQuery);