diff --git a/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs b/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs index eb2186014d..95eb02f044 100644 --- a/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs +++ b/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs @@ -80,15 +80,13 @@ namespace OpenRA.Mods.Common.Traits // Bounds are fixed from the initial render. // If this is a problem, then we may need to fetch the area from somewhere else - var r = previews - .SelectMany(p => p.Render(worldRenderer, CenterPosition)) - .Select(rr => rr.PrepareRender(worldRenderer)); + var r = previews.SelectMany(p => p.ScreenBounds(worldRenderer, CenterPosition)); if (r.Any()) { - Bounds = r.First().ScreenBounds(worldRenderer); + Bounds = r.First(); foreach (var rr in r.Skip(1)) - Bounds = Rectangle.Union(Bounds, rr.ScreenBounds(worldRenderer)); + Bounds = Rectangle.Union(Bounds, rr); } } diff --git a/OpenRA.Mods.Common/Widgets/ActorPreviewWidget.cs b/OpenRA.Mods.Common/Widgets/ActorPreviewWidget.cs index 4c77d1c7bf..435f576981 100644 --- a/OpenRA.Mods.Common/Widgets/ActorPreviewWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ActorPreviewWidget.cs @@ -57,16 +57,13 @@ namespace OpenRA.Mods.Common.Widgets PreviewOffset = int2.Zero; IdealPreviewSize = int2.Zero; - var r = preview - .SelectMany(p => p.Render(worldRenderer, WPos.Zero)) - .OrderBy(WorldRenderer.RenderableScreenZPositionComparisonKey) - .Select(rr => rr.PrepareRender(worldRenderer)); + var r = preview.SelectMany(p => p.ScreenBounds(worldRenderer, WPos.Zero)); if (r.Any()) { - var b = r.First().ScreenBounds(worldRenderer); + var b = r.First(); foreach (var rr in r.Skip(1)) - b = Rectangle.Union(b, rr.ScreenBounds(worldRenderer)); + b = Rectangle.Union(b, rr); IdealPreviewSize = new int2(b.Width, b.Height); PreviewOffset = -new int2(b.Left, b.Top) - IdealPreviewSize / 2;