Deselect units that disappear into fog-of-war.

Fixes #596.

This was SVN commit r8278.
This commit is contained in:
Ykkrosh 2010-10-05 00:08:05 +00:00
parent f662e069b1
commit 9872cb17b8
2 changed files with 18 additions and 0 deletions

View File

@ -195,10 +195,24 @@ EntitySelection.prototype.update = function()
for each (var ent in this.selected)
{
var entState = GetEntityState(ent);
// Remove deleted units
if (!entState)
{
delete this.selected[ent];
numberRemoved++;
continue;
}
// Remove non-visible units (e.g. moved back into fog-of-war)
if (entState.visibility == "hidden")
{
// Disable any highlighting of the disappeared unit
_setHighlight([ent], 0);
_setStatusBars([ent], false);
_setMotionOverlay([ent], false);
delete this.selected[ent];
numberRemoved++;
continue;
}
}
if (numberRemoved > 0)

View File

@ -145,6 +145,10 @@ GuiInterface.prototype.GetEntityState = function(player, ent)
{
ret.rallyPoint = { };
}
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
ret.visibility = cmpRangeManager.GetLosVisibility(ent, player);
return ret;
};