From fa6a98cca3fb57e96dc5ba9cc66bfb433c57b67f Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Thu, 24 Feb 2011 17:17:20 +1300 Subject: [PATCH] Unreserve reservation on death. --- OpenRA.Mods.RA/Air/Plane.cs | 8 +++++++- OpenRA.Mods.RA/Reservable.cs | 11 ----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/OpenRA.Mods.RA/Air/Plane.cs b/OpenRA.Mods.RA/Air/Plane.cs index 3644338c50..5f4faea934 100755 --- a/OpenRA.Mods.RA/Air/Plane.cs +++ b/OpenRA.Mods.RA/Air/Plane.cs @@ -25,7 +25,7 @@ namespace OpenRA.Mods.RA.Air public override object Create( ActorInitializer init ) { return new Plane( init, this ); } } - public class Plane : Aircraft, IIssueOrder, IResolveOrder, IOrderVoice, ITick + public class Plane : Aircraft, IIssueOrder, IResolveOrder, IOrderVoice, ITick, INotifyDamage { public IDisposable reservation; @@ -85,6 +85,12 @@ namespace OpenRA.Mods.RA.Air } } + public void Damaged(Actor self, AttackInfo e) + { + if (e.DamageState == DamageState.Dead) + UnReserve(); + } + public void ResolveOrder(Actor self, Order order) { if (order.OrderString == "Move") diff --git a/OpenRA.Mods.RA/Reservable.cs b/OpenRA.Mods.RA/Reservable.cs index b4833a2849..feb23a124e 100755 --- a/OpenRA.Mods.RA/Reservable.cs +++ b/OpenRA.Mods.RA/Reservable.cs @@ -18,9 +18,6 @@ namespace OpenRA.Mods.RA public class Reservable : ITick { Actor reservedFor; - //Actor self; - - //public Reservable(Actor self) { this.self = self; } public void Tick(Actor self) { @@ -33,18 +30,10 @@ namespace OpenRA.Mods.RA public IDisposable Reserve(Actor forActor) { - //if (reservedFor != null) - // Game.Debug("BUG: #{0} {1} was already reserved (by #{2} {3})".F( - // self.ActorID, self.Info.Name, reservedFor.ActorID, reservedFor.Info.Name)); - reservedFor = forActor; - //Game.Debug("#{0} {1} reserved by #{2} {3}".F( - // self.ActorID, self.Info.Name, forActor.ActorID, forActor.Info.Name)); return new DisposableAction(() => { - //Game.Debug("#{0} {1} unreserved".F( - // self.ActorID, self.Info.Name)); reservedFor = null; }); }