Fix WithCargo crash.

This commit is contained in:
Paul Chote
2018-01-01 18:12:44 +00:00
committed by reaperrr
parent 7b056509ec
commit ee728be537

View File

@@ -99,7 +99,12 @@ namespace OpenRA.Mods.Cnc.Traits.Render
.ToArray(); .ToArray();
} }
foreach (var p in previews.Values.SelectMany(p => p)) foreach (var actorPreviews in previews.Values)
{
if (actorPreviews == null)
continue;
foreach (var p in actorPreviews)
{ {
var index = cargo.PassengerCount > 1 ? i++ % info.LocalOffset.Length : info.LocalOffset.Length / 2; var index = cargo.PassengerCount > 1 ? i++ % info.LocalOffset.Length : info.LocalOffset.Length / 2;
var localOffset = info.LocalOffset[index]; var localOffset = info.LocalOffset[index];
@@ -108,11 +113,14 @@ namespace OpenRA.Mods.Cnc.Traits.Render
yield return pp.WithZOffset(1); yield return pp.WithZOffset(1);
} }
} }
}
IEnumerable<Rectangle> IRender.ScreenBounds(Actor self, WorldRenderer wr) IEnumerable<Rectangle> IRender.ScreenBounds(Actor self, WorldRenderer wr)
{ {
var pos = self.CenterPosition; var pos = self.CenterPosition;
foreach (var p in previews.Values.SelectMany(p => p)) foreach (var actorPreviews in previews.Values)
if (actorPreviews != null)
foreach (var p in actorPreviews)
foreach (var b in p.ScreenBounds(wr, pos)) foreach (var b in p.ScreenBounds(wr, pos))
yield return b; yield return b;
} }