fix #184 crashes while placing minefield

This commit is contained in:
Chris Forbes
2010-10-01 21:10:16 +13:00
parent 59e2228b2a
commit de98274165

View File

@@ -110,8 +110,8 @@ namespace OpenRA.Mods.RA
} }
var underCursor = world.FindUnitsAtMouse(mi.Location) var underCursor = world.FindUnitsAtMouse(mi.Location)
//.Where(a => a.Info.Traits.Contains<SelectableInfo>()) .OrderByDescending(a => a.Info.Traits.Contains<SelectableInfo>()
.OrderByDescending(a => a.Info.Traits.Contains<SelectableInfo>() ? a.Info.Traits.Get<SelectableInfo>().Priority : int.MinValue) ? a.Info.Traits.Get<SelectableInfo>().Priority : int.MinValue)
.FirstOrDefault(); .FirstOrDefault();
if (mi.Button == MouseButton.Right && underCursor == null) if (mi.Button == MouseButton.Right && underCursor == null)
@@ -120,13 +120,16 @@ namespace OpenRA.Mods.RA
public void Tick(World world) public void Tick(World world)
{ {
if (minelayer.IsDead() || !minelayer.IsInWorld) if (!minelayer.IsInWorld || minelayer.IsDead())
world.CancelInputMode(); world.CancelInputMode();
} }
int2 lastMousePos; int2 lastMousePos;
public void RenderAfterWorld(World world) public void RenderAfterWorld(World world)
{ {
if (!minelayer.IsInWorld)
return;
var ml = minelayer.Trait<Minelayer>(); var ml = minelayer.Trait<Minelayer>();
var movement = minelayer.Trait<IMove>(); var movement = minelayer.Trait<IMove>();
var minefield = GetMinefieldCells(ml.minefieldStart, lastMousePos, minelayer.Info.Traits.Get<MinelayerInfo>().MinefieldDepth) var minefield = GetMinefieldCells(ml.minefieldStart, lastMousePos, minelayer.Info.Traits.Get<MinelayerInfo>().MinefieldDepth)