From 945881807332ad41f9f24bb36207e70df349bc45 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 2 Oct 2016 21:19:18 +0200 Subject: [PATCH] Fix sprite barrels ignoring turret/actor orientation in previews Affects color picker, map editor and transport via TS carryall or TD landing craft. --- OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs b/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs index f3d2eee845..25236c18ef 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs @@ -44,15 +44,17 @@ namespace OpenRA.Mods.Common.Traits.Render var t = init.Actor.TraitInfos() .First(tt => tt.Turret == armament.Turret); - var anim = new Animation(init.World, image, () => t.InitialFacing); + var turretFacing = Turreted.TurretFacingFromInit(init, t.InitialFacing, armament.Turret); + var anim = new Animation(init.World, image, turretFacing); anim.Play(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence)); - var turretOrientation = body.QuantizeOrientation(WRot.FromFacing(t.InitialFacing), facings); - Func turretOffset = () => body.LocalToWorld(t.Offset.Rotate(turretOrientation)); + Func facing = init.GetFacing(); + Func orientation = () => body.QuantizeOrientation(WRot.FromFacing(facing()), facings); + Func turretOffset = () => body.LocalToWorld(t.Offset.Rotate(orientation())); Func zOffset = () => { var tmpOffset = turretOffset(); - return tmpOffset.Y + tmpOffset.Z; + return -(tmpOffset.Y + tmpOffset.Z) + 1; }; yield return new SpriteActorPreview(anim, turretOffset, zOffset, p, rs.Scale);