Merge pull request #4670 from ScottNZ/selection-fix

Fix selection persistence for invisible units
This commit is contained in:
Matthias Mailänder
2014-02-16 19:06:58 +01:00
2 changed files with 8 additions and 6 deletions

View File

@@ -12,6 +12,7 @@ NEW:
Engineers can now regain control over husks.
A player's units, and allied units, now move out of the way when blocking production facilities.
Added cheat button to grow map resources.
Fixed units staying selected and contributing to control groups when becoming cloaked or hidden in fog.
Dune 2000:
Added the Atreides grenadier from the 1.06 patch.
Added randomized tiles for Sand and Rock terrain.

View File

@@ -56,11 +56,11 @@ namespace OpenRA
public void Tick(World world)
{
actors.RemoveAll(a => !a.IsInWorld);
actors.RemoveAll(a => !a.IsInWorld || world.FogObscures(a));
foreach (var cg in controlGroups.Values)
cg.RemoveAll(a => a.Destroyed); // note: NOT `!a.IsInWorld`, since that would remove things
// that are in transports.
// note: NOT `!a.IsInWorld`, since that would remove things that are in transports.
cg.RemoveAll(a => a.Destroyed);
}
Cache<int, List<Actor>> controlGroups = new Cache<int, List<Actor>>(_ => new List<Actor>());
@@ -83,14 +83,15 @@ namespace OpenRA
return;
}
var groupActors = controlGroups[group].Where(a => !a.IsDead() && !world.FogObscures(a));
if (mods.HasModifier(Modifiers.Alt) || MultiTapCount >= 2)
{
worldRenderer.Viewport.Center(controlGroups[group]);
worldRenderer.Viewport.Center(groupActors);
return;
}
Combine(world, controlGroups[group],
mods.HasModifier(Modifiers.Shift), false);
Combine(world, groupActors, mods.HasModifier(Modifiers.Shift), false);
}
public int? GetControlGroupForActor(Actor a)