diff --git a/OpenRA.Game/Graphics/Animation.cs b/OpenRA.Game/Graphics/Animation.cs index 1ed3c16ba3..37cd1a4c7a 100644 --- a/OpenRA.Game/Graphics/Animation.cs +++ b/OpenRA.Game/Graphics/Animation.cs @@ -50,7 +50,7 @@ namespace OpenRA.Graphics } public int CurrentFrame { get { return backwards ? CurrentSequence.Length - frame - 1 : frame; } } - public Sprite Image { get { return CurrentSequence.GetSprite(CurrentFrame, facingFunc()); } } + public Sprite Image { get { return CurrentSequence.GetSprite(CurrentFrame, WAngle.FromFacing(facingFunc())); } } public IRenderable[] Render(WPos pos, WVec offset, int zOffset, PaletteReference palette, float scale) { @@ -58,7 +58,7 @@ namespace OpenRA.Graphics if (CurrentSequence.ShadowStart >= 0) { - var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc()); + var shadow = CurrentSequence.GetShadow(CurrentFrame, WAngle.FromFacing(facingFunc())); var shadowRenderable = new SpriteRenderable(shadow, pos, offset, CurrentSequence.ShadowZOffset + zOffset, palette, scale, true); return new IRenderable[] { shadowRenderable, imageRenderable }; } @@ -74,7 +74,7 @@ namespace OpenRA.Graphics if (CurrentSequence.ShadowStart >= 0) { - var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc()); + var shadow = CurrentSequence.GetShadow(CurrentFrame, WAngle.FromFacing(facingFunc())); var shadowPos = pos - new int2((int)(scale * shadow.Size.X / 2), (int)(scale * shadow.Size.Y / 2)); var shadowRenderable = new UISpriteRenderable(shadow, WPos.Zero + offset, shadowPos, CurrentSequence.ShadowZOffset + zOffset, palette, scale); return new IRenderable[] { shadowRenderable, imageRenderable }; diff --git a/OpenRA.Game/Graphics/SequenceProvider.cs b/OpenRA.Game/Graphics/SequenceProvider.cs index db86dfffff..3a8f872ea7 100644 --- a/OpenRA.Game/Graphics/SequenceProvider.cs +++ b/OpenRA.Game/Graphics/SequenceProvider.cs @@ -34,8 +34,8 @@ namespace OpenRA.Graphics Rectangle Bounds { get; } Sprite GetSprite(int frame); - Sprite GetSprite(int frame, int facing); - Sprite GetShadow(int frame, int facing); + Sprite GetSprite(int frame, WAngle facing); + Sprite GetShadow(int frame, WAngle facing); } public interface ISpriteSequenceLoader diff --git a/OpenRA.Mods.Cnc/Graphics/ClassicSpriteSequence.cs b/OpenRA.Mods.Cnc/Graphics/ClassicSpriteSequence.cs index fcaefee11c..eea3c404fb 100644 --- a/OpenRA.Mods.Cnc/Graphics/ClassicSpriteSequence.cs +++ b/OpenRA.Mods.Cnc/Graphics/ClassicSpriteSequence.cs @@ -42,9 +42,9 @@ namespace OpenRA.Mods.Cnc.Graphics .F(info.Nodes[0].Location, sequence, animation)); } - protected override int QuantizeFacing(int facing) + protected override int GetFacingFrameOffset(WAngle facing) { - return OpenRA.Mods.Cnc.Util.ClassicQuantizeFacing(facing, Facings, useClassicFacings); + return Util.ClassicQuantizeFacing(facing.Facing, Facings, useClassicFacings); } } } diff --git a/OpenRA.Mods.Common/Graphics/DefaultSpriteSequence.cs b/OpenRA.Mods.Common/Graphics/DefaultSpriteSequence.cs index d3687664ea..525569185b 100644 --- a/OpenRA.Mods.Common/Graphics/DefaultSpriteSequence.cs +++ b/OpenRA.Mods.Common/Graphics/DefaultSpriteSequence.cs @@ -363,22 +363,22 @@ namespace OpenRA.Mods.Common.Graphics public Sprite GetSprite(int frame) { - return GetSprite(Start, frame, 0); + return GetSprite(Start, frame, WAngle.Zero); } - public Sprite GetSprite(int frame, int facing) + public Sprite GetSprite(int frame, WAngle facing) { return GetSprite(Start, frame, facing); } - public Sprite GetShadow(int frame, int facing) + public Sprite GetShadow(int frame, WAngle facing) { return ShadowStart >= 0 ? GetSprite(ShadowStart, frame, facing) : null; } - protected virtual Sprite GetSprite(int start, int frame, int facing) + protected virtual Sprite GetSprite(int start, int frame, WAngle facing) { - var f = QuantizeFacing(facing); + var f = GetFacingFrameOffset(facing); if (reverseFacings) f = (Facings - f) % Facings; @@ -393,9 +393,9 @@ namespace OpenRA.Mods.Common.Graphics return sprites[j]; } - protected virtual int QuantizeFacing(int facing) + protected virtual int GetFacingFrameOffset(WAngle facing) { - return Util.QuantizeFacing(facing, Facings); + return Util.QuantizeFacing(facing.Facing, Facings); } } }