Fix WithCargo crash.
This commit is contained in:
@@ -99,22 +99,30 @@ namespace OpenRA.Mods.Cnc.Traits.Render
|
|||||||
.ToArray();
|
.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var p in previews.Values.SelectMany(p => p))
|
foreach (var actorPreviews in previews.Values)
|
||||||
{
|
{
|
||||||
var index = cargo.PassengerCount > 1 ? i++ % info.LocalOffset.Length : info.LocalOffset.Length / 2;
|
if (actorPreviews == null)
|
||||||
var localOffset = info.LocalOffset[index];
|
continue;
|
||||||
|
|
||||||
foreach (var pp in p.Render(wr, pos + body.LocalToWorld(localOffset.Rotate(bodyOrientation))))
|
foreach (var p in actorPreviews)
|
||||||
yield return pp.WithZOffset(1);
|
{
|
||||||
|
var index = cargo.PassengerCount > 1 ? i++ % info.LocalOffset.Length : info.LocalOffset.Length / 2;
|
||||||
|
var localOffset = info.LocalOffset[index];
|
||||||
|
|
||||||
|
foreach (var pp in p.Render(wr, pos + body.LocalToWorld(localOffset.Rotate(bodyOrientation))))
|
||||||
|
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)
|
||||||
foreach (var b in p.ScreenBounds(wr, pos))
|
if (actorPreviews != null)
|
||||||
yield return b;
|
foreach (var p in actorPreviews)
|
||||||
|
foreach (var b in p.ScreenBounds(wr, pos))
|
||||||
|
yield return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
void INotifyPassengerEntered.OnPassengerEntered(Actor self, Actor passenger)
|
void INotifyPassengerEntered.OnPassengerEntered(Actor self, Actor passenger)
|
||||||
|
|||||||
Reference in New Issue
Block a user