From a670ea4bad75534d1a02677282fcd7d64551f847 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 15 May 2016 16:00:51 +0200 Subject: [PATCH 1/3] Remove ITraitInfo from WithParachuteInfo ITraitInfo is already implemented by UpgradableTraitInfo, so this was redundant. --- OpenRA.Mods.Common/Traits/Render/WithParachute.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs index 12b02e1c28..edbd5864a5 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs @@ -18,7 +18,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits.Render { [Desc("Renders a parachute on units.")] - public class WithParachuteInfo : UpgradableTraitInfo, ITraitInfo, IRenderActorPreviewSpritesInfo, Requires, Requires + public class WithParachuteInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo, Requires, Requires { [Desc("The image that contains the parachute sequences.")] public readonly string Image = null; From c2f537a43dd59d8b931da0bda09b7ac5754b55ed Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 15 May 2016 16:04:01 +0200 Subject: [PATCH 2/3] Move parachute shadow anim ticking from Render to Tick --- OpenRA.Mods.Common/Traits/Render/WithParachute.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs index edbd5864a5..b1fb383700 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs @@ -79,7 +79,7 @@ namespace OpenRA.Mods.Common.Traits.Render } } - public class WithParachute : UpgradableTrait, IRender + public class WithParachute : UpgradableTrait, ITick, IRender { readonly Animation shadow; readonly AnimationWithOffset anim; @@ -133,6 +133,11 @@ namespace OpenRA.Mods.Common.Traits.Render anim.Animation.PlayBackwardsThen(info.OpeningSequence, () => renderProlonged = false); } + public void Tick(Actor self) + { + shadow.Tick(); + } + public IEnumerable Render(Actor self, WorldRenderer wr) { if (info.ShadowImage == null) @@ -147,7 +152,6 @@ namespace OpenRA.Mods.Common.Traits.Render if (self.World.FogObscures(self)) return Enumerable.Empty(); - shadow.Tick(); var pos = self.CenterPosition - new WVec(0, 0, self.CenterPosition.Z); var palette = wr.Palette(info.ShadowPalette); return new IRenderable[] { new SpriteRenderable(shadow.Image, pos, info.ShadowOffset, info.ShadowZOffset, palette, 1, true) }; From 51194059b346160817f8405c805857649a475b49 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 15 May 2016 16:05:15 +0200 Subject: [PATCH 3/3] Fix WithParachute shadow position on elevated terrain --- OpenRA.Mods.Common/Traits/Render/WithParachute.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs index b1fb383700..1296c85a1f 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs @@ -152,7 +152,8 @@ namespace OpenRA.Mods.Common.Traits.Render if (self.World.FogObscures(self)) return Enumerable.Empty(); - var pos = self.CenterPosition - new WVec(0, 0, self.CenterPosition.Z); + var dat = self.World.Map.DistanceAboveTerrain(self.CenterPosition); + var pos = self.CenterPosition - new WVec(0, 0, dat.Length); var palette = wr.Palette(info.ShadowPalette); return new IRenderable[] { new SpriteRenderable(shadow.Image, pos, info.ShadowOffset, info.ShadowZOffset, palette, 1, true) }; }