diff --git a/OpenRA.Game/Graphics/Animation.cs b/OpenRA.Game/Graphics/Animation.cs index 2391628b67..d93be68cc8 100644 --- a/OpenRA.Game/Graphics/Animation.cs +++ b/OpenRA.Game/Graphics/Animation.cs @@ -52,23 +52,22 @@ namespace OpenRA.Graphics public int CurrentFrame { get { return backwards ? CurrentSequence.Length - frame - 1 : frame; } } public Sprite Image { get { return CurrentSequence.GetSprite(CurrentFrame, 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) { - scale *= CurrentSequence.Scale; var tintModifiers = CurrentSequence.IgnoreWorldTint ? TintModifiers.IgnoreWorldTint : TintModifiers.None; - var imageRenderable = new SpriteRenderable(Image, pos, offset, CurrentSequence.ZOffset + zOffset, palette, scale, IsDecoration, tintModifiers); + var imageRenderable = new SpriteRenderable(Image, pos, offset, CurrentSequence.ZOffset + zOffset, palette, CurrentSequence.Scale, IsDecoration, tintModifiers); if (CurrentSequence.ShadowStart >= 0) { var shadow = CurrentSequence.GetShadow(CurrentFrame, facingFunc()); - var shadowRenderable = new SpriteRenderable(shadow, pos, offset, CurrentSequence.ShadowZOffset + zOffset, palette, scale, true, tintModifiers); + var shadowRenderable = new SpriteRenderable(shadow, pos, offset, CurrentSequence.ShadowZOffset + zOffset, palette, CurrentSequence.Scale, true, tintModifiers); return new IRenderable[] { shadowRenderable, imageRenderable }; } return new IRenderable[] { imageRenderable }; } - public IRenderable[] RenderUI(WorldRenderer wr, int2 pos, WVec offset, int zOffset, PaletteReference palette, float scale) + public IRenderable[] RenderUI(WorldRenderer wr, int2 pos, WVec offset, int zOffset, PaletteReference palette, float scale = 1f) { scale *= CurrentSequence.Scale; var screenOffset = (scale * wr.ScreenVectorComponents(offset)).XY.ToInt2(); @@ -86,9 +85,9 @@ namespace OpenRA.Graphics return new IRenderable[] { imageRenderable }; } - public Rectangle ScreenBounds(WorldRenderer wr, WPos pos, WVec offset, float scale) + public Rectangle ScreenBounds(WorldRenderer wr, WPos pos, WVec offset) { - scale *= CurrentSequence.Scale; + var scale = CurrentSequence.Scale; var xy = wr.ScreenPxPosition(pos) + wr.ScreenPxOffset(offset); var cb = CurrentSequence.Bounds; return Rectangle.FromLTRB( @@ -100,7 +99,7 @@ namespace OpenRA.Graphics public IRenderable[] Render(WPos pos, PaletteReference palette) { - return Render(pos, WVec.Zero, 0, palette, 1f); + return Render(pos, WVec.Zero, 0, palette); } public void Play(string sequenceName) diff --git a/OpenRA.Game/Graphics/AnimationWithOffset.cs b/OpenRA.Game/Graphics/AnimationWithOffset.cs index 3a2aadf3ab..b4473abcca 100644 --- a/OpenRA.Game/Graphics/AnimationWithOffset.cs +++ b/OpenRA.Game/Graphics/AnimationWithOffset.cs @@ -35,21 +35,21 @@ namespace OpenRA.Graphics ZOffset = zOffset; } - public IRenderable[] Render(Actor self, WorldRenderer wr, PaletteReference pal, float scale) + public IRenderable[] Render(Actor self, WorldRenderer wr, PaletteReference pal) { var center = self.CenterPosition; var offset = OffsetFunc != null ? OffsetFunc() : WVec.Zero; var z = (ZOffset != null) ? ZOffset(center + offset) : 0; - return Animation.Render(center, offset, z, pal, scale); + return Animation.Render(center, offset, z, pal); } - public Rectangle ScreenBounds(Actor self, WorldRenderer wr, float scale) + public Rectangle ScreenBounds(Actor self, WorldRenderer wr) { var center = self.CenterPosition; var offset = OffsetFunc != null ? OffsetFunc() : WVec.Zero; - return Animation.ScreenBounds(wr, center, offset, scale); + return Animation.ScreenBounds(wr, center, offset); } public static implicit operator AnimationWithOffset(Animation a) diff --git a/OpenRA.Mods.Cnc/Effects/GpsDotEffect.cs b/OpenRA.Mods.Cnc/Effects/GpsDotEffect.cs index e58fd8bed7..b9f37f1244 100644 --- a/OpenRA.Mods.Cnc/Effects/GpsDotEffect.cs +++ b/OpenRA.Mods.Cnc/Effects/GpsDotEffect.cs @@ -107,7 +107,7 @@ namespace OpenRA.Mods.Cnc.Effects var palette = wr.Palette(info.IndicatorPalettePrefix + effectiveOwner.InternalName); var screenPos = wr.Viewport.WorldToViewPx(wr.ScreenPxPosition(actor.CenterPosition)); - return anim.RenderUI(wr, screenPos, WVec.Zero, 0, palette, 1f); + return anim.RenderUI(wr, screenPos, WVec.Zero, 0, palette); } } } diff --git a/OpenRA.Mods.Cnc/Traits/Render/WithBuildingBib.cs b/OpenRA.Mods.Cnc/Traits/Render/WithBuildingBib.cs index b57b7db1e9..4b1d6c6ead 100644 --- a/OpenRA.Mods.Cnc/Traits/Render/WithBuildingBib.cs +++ b/OpenRA.Mods.Cnc/Traits/Render/WithBuildingBib.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.Cnc.Traits public override object Create(ActorInitializer init) { return new WithBuildingBib(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (init.Contains(this)) yield break; @@ -69,7 +69,7 @@ namespace OpenRA.Mods.Cnc.Traits // Z-order is one set to the top of the footprint var offset = map.CenterOfCell(cell) - map.CenterOfCell(location) - centerOffset; - yield return new SpriteActorPreview(anim, () => offset, () => -(offset.Y + centerOffset.Y + 512), p, rs.Scale); + yield return new SpriteActorPreview(anim, () => offset, () => -(offset.Y + centerOffset.Y + 512), p); } } diff --git a/OpenRA.Mods.Cnc/Traits/Render/WithEmbeddedTurretSpriteBody.cs b/OpenRA.Mods.Cnc/Traits/Render/WithEmbeddedTurretSpriteBody.cs index 68b5921e53..d3b91173d0 100644 --- a/OpenRA.Mods.Cnc/Traits/Render/WithEmbeddedTurretSpriteBody.cs +++ b/OpenRA.Mods.Cnc/Traits/Render/WithEmbeddedTurretSpriteBody.cs @@ -28,7 +28,7 @@ namespace OpenRA.Mods.Cnc.Traits.Render public override object Create(ActorInitializer init) { return new WithEmbeddedTurretSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -40,7 +40,7 @@ namespace OpenRA.Mods.Cnc.Traits.Render var anim = new Animation(init.World, image, t.WorldFacingFromInit(init)); anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), wsb.Sequence)); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Effects/SpriteAnnotation.cs b/OpenRA.Mods.Common/Effects/SpriteAnnotation.cs index ca9c1709b2..b7576a683f 100644 --- a/OpenRA.Mods.Common/Effects/SpriteAnnotation.cs +++ b/OpenRA.Mods.Common/Effects/SpriteAnnotation.cs @@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.Effects IEnumerable IEffectAnnotation.RenderAnnotation(WorldRenderer wr) { var screenPos = wr.Viewport.WorldToViewPx(wr.ScreenPxPosition(pos)); - return anim.RenderUI(wr, screenPos, WVec.Zero, 0, wr.Palette(palette), 1f); + return anim.RenderUI(wr, screenPos, WVec.Zero, 0, wr.Palette(palette)); } } } diff --git a/OpenRA.Mods.Common/Graphics/SpriteActorPreview.cs b/OpenRA.Mods.Common/Graphics/SpriteActorPreview.cs index 99dc4fe27d..e14c1c7d18 100644 --- a/OpenRA.Mods.Common/Graphics/SpriteActorPreview.cs +++ b/OpenRA.Mods.Common/Graphics/SpriteActorPreview.cs @@ -22,15 +22,13 @@ namespace OpenRA.Mods.Common.Graphics readonly Func offset; readonly Func zOffset; readonly PaletteReference pr; - readonly float scale; - public SpriteActorPreview(Animation animation, Func offset, Func zOffset, PaletteReference pr, float scale) + public SpriteActorPreview(Animation animation, Func offset, Func zOffset, PaletteReference pr) { this.animation = animation; this.offset = offset; this.zOffset = zOffset; this.pr = pr; - this.scale = scale; } void IActorPreview.Tick() { animation.Tick(); } @@ -42,12 +40,12 @@ namespace OpenRA.Mods.Common.Graphics IEnumerable IActorPreview.Render(WorldRenderer wr, WPos pos) { - return animation.Render(pos, offset(), zOffset(), pr, scale); + return animation.Render(pos, offset(), zOffset(), pr); } IEnumerable IActorPreview.ScreenBounds(WorldRenderer wr, WPos pos) { - yield return animation.ScreenBounds(wr, pos, offset(), scale); + yield return animation.ScreenBounds(wr, pos, offset()); } } } diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs b/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs index 2a3c1833e1..be3cdf798b 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs @@ -193,7 +193,7 @@ namespace OpenRA.Mods.Common.Traits // Display muzzle flashes foreach (var m in muzzles) - foreach (var r in m.Render(self, wr, pal, 1f)) + foreach (var r in m.Render(self, wr, pal)) yield return r; } diff --git a/OpenRA.Mods.Common/Traits/Buildings/SequencePlaceBuildingPreview.cs b/OpenRA.Mods.Common/Traits/Buildings/SequencePlaceBuildingPreview.cs index 302a9de411..29e38463aa 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/SequencePlaceBuildingPreview.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/SequencePlaceBuildingPreview.cs @@ -87,7 +87,7 @@ namespace OpenRA.Mods.Common.Traits yield return r; var centerPosition = wr.World.Map.CenterOfCell(topLeft) + centerOffset; - foreach (var r in preview.Render(centerPosition, WVec.Zero, 0, palette, 1.0f)) + foreach (var r in preview.Render(centerPosition, WVec.Zero, 0, palette)) yield return r; if (info.FootprintOverPreview != PlaceBuildingCellType.None) diff --git a/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs b/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs index 23da96cdc0..c43042e262 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs @@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Traits.Render { public interface IRenderActorPreviewSpritesInfo : ITraitInfoInterface { - IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p); + IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p); } [Desc("Render trait fundament that won't work without additional With* render traits.")] @@ -41,9 +41,6 @@ namespace OpenRA.Mods.Common.Traits.Render [Desc("Custom PlayerColorPalette: BaseName")] public readonly string PlayerPalette = "player"; - [Desc("Change the sprite image size.")] - public readonly float Scale = 1f; - public override object Create(ActorInitializer init) { return new RenderSprites(init, this); } public IEnumerable RenderPreview(ActorPreviewInitializer init) @@ -68,7 +65,7 @@ namespace OpenRA.Mods.Common.Traits.Render } foreach (var spi in init.Actor.TraitInfos()) - foreach (var preview in spi.RenderPreviewSprites(init, this, image, facings, palette)) + foreach (var preview in spi.RenderPreviewSprites(init, image, facings, palette)) yield return preview; } @@ -198,7 +195,7 @@ namespace OpenRA.Mods.Common.Traits.Render a.CachePalette(wr, owner); } - foreach (var r in a.Animation.Render(self, wr, a.PaletteReference, Info.Scale)) + foreach (var r in a.Animation.Render(self, wr, a.PaletteReference)) yield return r; } } @@ -207,7 +204,7 @@ namespace OpenRA.Mods.Common.Traits.Render { foreach (var a in anims) if (a.IsVisible) - yield return a.Animation.ScreenBounds(self, wr, Info.Scale); + yield return a.Animation.ScreenBounds(self, wr); } void ITick.Tick(Actor self) @@ -280,7 +277,7 @@ namespace OpenRA.Mods.Common.Traits.Render { return anims.Where(b => b.IsVisible && b.Animation.Animation.CurrentSequence != null) - .Select(a => (a.Animation.Animation.Image.Size.XY * a.Animation.Animation.CurrentSequence.Scale * Info.Scale).ToInt2()) + .Select(a => (a.Animation.Animation.Image.Size.XY * a.Animation.Animation.CurrentSequence.Scale).ToInt2()) .FirstOrDefault(); } diff --git a/OpenRA.Mods.Common/Traits/Render/WithBridgeSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithBridgeSpriteBody.cs index 56af58bf17..94f9814aed 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithBridgeSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithBridgeSpriteBody.cs @@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithBridgeSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image); anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequences.First()), () => 0); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithChargeSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithChargeSpriteBody.cs index 0dd8f6da2c..e23ba1b69b 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithChargeSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithChargeSpriteBody.cs @@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Traits.Render { public override object Create(ActorInitializer init) { return new WithChargeSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image); anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence), () => 0); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithCrateBody.cs b/OpenRA.Mods.Common/Traits/Render/WithCrateBody.cs index 738536bb66..e004794c5f 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithCrateBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithCrateBody.cs @@ -38,11 +38,11 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithCrateBody(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { var anim = new Animation(init.World, image); anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), IdleSequence)); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithDeadBridgeSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithDeadBridgeSpriteBody.cs index 0f4c37dd0d..256337de39 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithDeadBridgeSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithDeadBridgeSpriteBody.cs @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithDeadBridgeSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -56,7 +56,7 @@ namespace OpenRA.Mods.Common.Traits.Render var sequence = init.World.Type == WorldType.Editor ? EditorSequence : Sequence; var palette = init.World.Type == WorldType.Editor ? init.WorldRenderer.Palette(EditorPalette) : p; anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), sequence), () => 0); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, palette, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, palette); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithFacingSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithFacingSpriteBody.cs index 75b4040ef2..6c0aafb747 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithFacingSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithFacingSpriteBody.cs @@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.Traits.Render { public override object Create(ActorInitializer init) { return new WithFacingSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image, init.GetFacing()); anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence)); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithGateSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithGateSpriteBody.cs index 2a5634c881..7002ba7c36 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithGateSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithGateSpriteBody.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithGateSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image); anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence), () => 0); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } string IWallConnectorInfo.GetWallConnectionType() diff --git a/OpenRA.Mods.Common/Traits/Render/WithIdleOverlay.cs b/OpenRA.Mods.Common/Traits/Render/WithIdleOverlay.cs index 4c97469060..bc72bca92a 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithIdleOverlay.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithIdleOverlay.cs @@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithIdleOverlay(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -76,7 +76,7 @@ namespace OpenRA.Mods.Common.Traits.Render return tmpOffset.Y + tmpOffset.Z + 1; }; - yield return new SpriteActorPreview(anim, offset, zOffset, p, rs.Scale); + yield return new SpriteActorPreview(anim, offset, zOffset, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithInfantryBody.cs b/OpenRA.Mods.Common/Traits/Render/WithInfantryBody.cs index 36ca68016b..1cebca7cc2 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithInfantryBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithInfantryBody.cs @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithInfantryBody(init, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -60,7 +60,7 @@ namespace OpenRA.Mods.Common.Traits.Render else if (Palette != null) p = init.WorldRenderer.Palette(Palette); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithMuzzleOverlay.cs b/OpenRA.Mods.Common/Traits/Render/WithMuzzleOverlay.cs index fd08e58a4f..7a9bf13f3c 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithMuzzleOverlay.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithMuzzleOverlay.cs @@ -93,7 +93,7 @@ namespace OpenRA.Mods.Common.Traits.Render if (anim.DisableFunc != null && anim.DisableFunc()) continue; - foreach (var r in anim.Render(self, wr, palette, 1f)) + foreach (var r in anim.Render(self, wr, palette)) yield return r; } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs index 2e6437d7d4..3436122db0 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithParachute.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithParachute.cs @@ -65,7 +65,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithParachute(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -99,7 +99,7 @@ namespace OpenRA.Mods.Common.Traits.Render return tmpOffset.Y + tmpOffset.Z + 1; }; - yield return new SpriteActorPreview(anim, offset, zOffset, p, rs.Scale); + yield return new SpriteActorPreview(anim, offset, zOffset, p); } } @@ -193,7 +193,7 @@ namespace OpenRA.Mods.Common.Traits.Render var dat = self.World.Map.DistanceAboveTerrain(self.CenterPosition); var pos = self.CenterPosition - new WVec(0, 0, dat.Length); - return new Rectangle[] { shadow.ScreenBounds(wr, pos, info.ShadowOffset, 1) }; + return new Rectangle[] { shadow.ScreenBounds(wr, pos, info.ShadowOffset) }; } } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithProductionDoorOverlay.cs b/OpenRA.Mods.Common/Traits/Render/WithProductionDoorOverlay.cs index 33319dcd06..f9f8d7105d 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithProductionDoorOverlay.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithProductionDoorOverlay.cs @@ -22,14 +22,14 @@ namespace OpenRA.Mods.Common.Traits.Render [SequenceReference] public readonly string Sequence = "build-door"; - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { var anim = new Animation(init.World, image); anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence), () => 0); var bi = init.Actor.TraitInfo(); var offset = bi.CenterOffset(init.World).Y + 512; // Additional 512 units move from center -> top of cell - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => offset, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => offset, p); } public override object Create(ActorInitializer init) { return new WithProductionDoorOverlay(init.Self, this); } diff --git a/OpenRA.Mods.Common/Traits/Render/WithResourceLevelSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithResourceLevelSpriteBody.cs index fdd0fcf739..a22e60bf2b 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithResourceLevelSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithResourceLevelSpriteBody.cs @@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithResourceLevelSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image); anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence), () => 0); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs b/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs index a25ef5707c..6ed27e7c2b 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithSpriteBarrel.cs @@ -34,7 +34,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithSpriteBarrel(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -58,7 +58,7 @@ namespace OpenRA.Mods.Common.Traits.Render return -(tmpOffset.Y + tmpOffset.Z) + 1; }; - yield return new SpriteActorPreview(anim, turretOffset, zOffset, p, rs.Scale); + yield return new SpriteActorPreview(anim, turretOffset, zOffset, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithSpriteBody.cs index 56d1777bb7..bc1ca9847c 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithSpriteBody.cs @@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithSpriteBody(init, this); } - public virtual IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public virtual IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image); anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence)); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } @@ -133,7 +133,7 @@ namespace OpenRA.Mods.Common.Traits.Render Rectangle IAutoMouseBounds.AutoMouseoverBounds(Actor self, WorldRenderer wr) { - return boundsAnimation.ScreenBounds(wr, self.CenterPosition, WVec.Zero, rs.Info.Scale); + return boundsAnimation.ScreenBounds(wr, self.CenterPosition, WVec.Zero); } } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs b/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs index 1cb034d47a..ec2f9d4c5e 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs @@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithSpriteTurret(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -68,7 +68,7 @@ namespace OpenRA.Mods.Common.Traits.Render else if (Palette != null) p = init.WorldRenderer.Palette(Palette); - yield return new SpriteActorPreview(anim, offset, zOffset, p, rs.Scale); + yield return new SpriteActorPreview(anim, offset, zOffset, p); } } diff --git a/OpenRA.Mods.Common/Traits/Render/WithWallSpriteBody.cs b/OpenRA.Mods.Common/Traits/Render/WithWallSpriteBody.cs index 7d934d3856..9727b72b7d 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithWallSpriteBody.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithWallSpriteBody.cs @@ -31,7 +31,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithWallSpriteBody(init, this); } - public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public override IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { if (!EnabledByDefault) yield break; @@ -73,7 +73,7 @@ namespace OpenRA.Mods.Common.Traits.Render var anim = new Animation(init.World, image); anim.PlayFetchIndex(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), Sequence), () => adjacent); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } string IWallConnectorInfo.GetWallConnectionType() diff --git a/OpenRA.Mods.Common/UpdateRules/Rules/20201213/RemoveRenderSpritesScale.cs b/OpenRA.Mods.Common/UpdateRules/Rules/20201213/RemoveRenderSpritesScale.cs new file mode 100644 index 0000000000..cd0194f15d --- /dev/null +++ b/OpenRA.Mods.Common/UpdateRules/Rules/20201213/RemoveRenderSpritesScale.cs @@ -0,0 +1,36 @@ +#region Copyright & License Information +/* + * Copyright 2007-2020 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using System.Collections.Generic; + +namespace OpenRA.Mods.Common.UpdateRules.Rules +{ + public class RemoveRenderSpritesScale : UpdateRule + { + public override string Name { get { return "Remove RenderSprites.Scale."; } } + + public override string Description + { + get + { + return "The Scale option was removed from RenderSprites. Scale can now be defined on individual sequence definitions."; + } + } + + public override IEnumerable UpdateActorNode(ModData modData, MiniYamlNode actorNode) + { + foreach (var renderSprites in actorNode.ChildrenMatching("RenderSprites")) + if (renderSprites.RemoveNodes("Scale") > 0) + yield return "The actor-level scaling has been removed from {0} ({1}).\n".F(actorNode.Key, actorNode.Location.Filename) + + "You must manually define Scale on its sequences instead."; + } + } +} diff --git a/OpenRA.Mods.Common/UpdateRules/UpdatePath.cs b/OpenRA.Mods.Common/UpdateRules/UpdatePath.cs index 93509d78ed..16f2fa3caa 100644 --- a/OpenRA.Mods.Common/UpdateRules/UpdatePath.cs +++ b/OpenRA.Mods.Common/UpdateRules/UpdatePath.cs @@ -87,6 +87,7 @@ namespace OpenRA.Mods.Common.UpdateRules new RenameMPTraits(), new RemovePlayerHighlightPalette(), new ReplaceWithColoredOverlayPalette(), + new RemoveRenderSpritesScale(), }) }; diff --git a/OpenRA.Mods.D2k/Traits/SpiceBloom.cs b/OpenRA.Mods.D2k/Traits/SpiceBloom.cs index 6aed960a39..49950df666 100644 --- a/OpenRA.Mods.D2k/Traits/SpiceBloom.cs +++ b/OpenRA.Mods.D2k/Traits/SpiceBloom.cs @@ -49,12 +49,12 @@ namespace OpenRA.Mods.D2k.Traits public override object Create(ActorInitializer init) { return new SpiceBloom(init.Self, this); } - public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p) + public IEnumerable RenderPreviewSprites(ActorPreviewInitializer init, string image, int facings, PaletteReference p) { var anim = new Animation(init.World, image); anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), GrowthSequences[0])); - yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p, rs.Scale); + yield return new SpriteActorPreview(anim, () => WVec.Zero, () => 0, p); } } diff --git a/mods/ra/rules/civilian.yaml b/mods/ra/rules/civilian.yaml index 5e21ef36ce..ff94bb9229 100644 --- a/mods/ra/rules/civilian.yaml +++ b/mods/ra/rules/civilian.yaml @@ -918,8 +918,6 @@ SNOWHUT: Building: Footprint: x x Dimensions: 1,2 - RenderSprites: - Scale: 0.7 HitShape: UseTargetableCellsOffsets: false diff --git a/mods/ra/sequences/decorations.yaml b/mods/ra/sequences/decorations.yaml index 3bfe78bfea..96a17bbb43 100644 --- a/mods/ra/sequences/decorations.yaml +++ b/mods/ra/sequences/decorations.yaml @@ -959,6 +959,7 @@ v37: snowhut: Defaults: Offset: 0,-5 + Scale: 0.7 idle: Length: 3 Tick: 360