ISpriteSequence facing -> WAngle.

This commit is contained in:
Paul Chote
2020-05-08 18:15:31 +01:00
committed by atlimit8
parent 259c8d2c98
commit 361e2d463c
4 changed files with 14 additions and 14 deletions

View File

@@ -50,7 +50,7 @@ namespace OpenRA.Graphics
} }
public int CurrentFrame { get { return backwards ? CurrentSequence.Length - frame - 1 : frame; } } 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) public IRenderable[] Render(WPos pos, WVec offset, int zOffset, PaletteReference palette, float scale)
{ {
@@ -58,7 +58,7 @@ namespace OpenRA.Graphics
if (CurrentSequence.ShadowStart >= 0) 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); var shadowRenderable = new SpriteRenderable(shadow, pos, offset, CurrentSequence.ShadowZOffset + zOffset, palette, scale, true);
return new IRenderable[] { shadowRenderable, imageRenderable }; return new IRenderable[] { shadowRenderable, imageRenderable };
} }
@@ -74,7 +74,7 @@ namespace OpenRA.Graphics
if (CurrentSequence.ShadowStart >= 0) 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 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); var shadowRenderable = new UISpriteRenderable(shadow, WPos.Zero + offset, shadowPos, CurrentSequence.ShadowZOffset + zOffset, palette, scale);
return new IRenderable[] { shadowRenderable, imageRenderable }; return new IRenderable[] { shadowRenderable, imageRenderable };

View File

@@ -34,8 +34,8 @@ namespace OpenRA.Graphics
Rectangle Bounds { get; } Rectangle Bounds { get; }
Sprite GetSprite(int frame); Sprite GetSprite(int frame);
Sprite GetSprite(int frame, int facing); Sprite GetSprite(int frame, WAngle facing);
Sprite GetShadow(int frame, int facing); Sprite GetShadow(int frame, WAngle facing);
} }
public interface ISpriteSequenceLoader public interface ISpriteSequenceLoader

View File

@@ -42,9 +42,9 @@ namespace OpenRA.Mods.Cnc.Graphics
.F(info.Nodes[0].Location, sequence, animation)); .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);
} }
} }
} }

View File

@@ -363,22 +363,22 @@ namespace OpenRA.Mods.Common.Graphics
public Sprite GetSprite(int frame) 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); 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; 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) if (reverseFacings)
f = (Facings - f) % Facings; f = (Facings - f) % Facings;
@@ -393,9 +393,9 @@ namespace OpenRA.Mods.Common.Graphics
return sprites[j]; 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);
} }
} }
} }