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);