Fix #2433 - crash when ctnk order generator was active if ctnk dies

This commit is contained in:
Curtis Shmyr
2012-10-21 16:46:58 -06:00
parent f3d4b6541c
commit 57dfc739c6

View File

@@ -130,17 +130,26 @@ namespace OpenRA.Mods.RA
public string GetCursor(World world, CPos xy, MouseInput mi) public string GetCursor(World world, CPos xy, MouseInput mi)
{ {
var cinfo = self.Trait<ChronoshiftDeploy>(); if (self.IsInWorld && self.Trait<ChronoshiftDeploy>().CanJumpTo(xy,false))
if (cinfo.CanJumpTo(xy, false))
return "chrono-target"; return "chrono-target";
else else
return "move-blocked"; return "move-blocked";
} }
public void Tick(World world) { } public void Tick(World world)
{
if (!self.IsInWorld || self.IsDead())
world.CancelInputMode();
}
public void RenderAfterWorld(WorldRenderer wr, World world) { } public void RenderAfterWorld(WorldRenderer wr, World world) { }
public void RenderBeforeWorld(WorldRenderer wr, World world) public void RenderBeforeWorld(WorldRenderer wr, World world)
{ {
if (!self.IsInWorld)
return;
if (self.Owner != self.World.LocalPlayer)
return;
wr.DrawRangeCircle( wr.DrawRangeCircle(
Color.FromArgb(128, Color.DeepSkyBlue), Color.FromArgb(128, Color.DeepSkyBlue),
self.CenterLocation.ToFloat2(), (int)self.Trait<ChronoshiftDeploy>().Info.JumpDistance); self.CenterLocation.ToFloat2(), (int)self.Trait<ChronoshiftDeploy>().Info.JumpDistance);