Fix aircraft shadow render order.

This commit is contained in:
Paul Chote
2013-05-23 21:25:11 +12:00
parent f7aca32e0e
commit 25dd8d9fa7
3 changed files with 4 additions and 4 deletions

View File

@@ -23,8 +23,8 @@ namespace OpenRA.Graphics
public int Compare(IRenderable x, IRenderable y)
{
var xOrder = wr.ScreenZPosition(x.Pos) + x.ZOffset;
var yOrder = wr.ScreenZPosition(y.Pos) + y.ZOffset;
var xOrder = wr.ScreenZPosition(x.Pos, x.ZOffset);
var yOrder = wr.ScreenZPosition(y.Pos, y.ZOffset);
return xOrder.CompareTo(yOrder);
}
}

View File

@@ -219,6 +219,6 @@ namespace OpenRA.Graphics
return new int2((int)Math.Round(px.X), (int)Math.Round(px.Y));
}
public float ScreenZPosition(WPos pos) { return (pos.Y + pos.Z)*Game.CellSize/1024f; }
public float ScreenZPosition(WPos pos, int zOffset) { return (pos.Y + pos.Z + zOffset)*Game.CellSize/1024f; }
}
}

View File

@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA.Render
? (int)Math.Abs((self.ActorID + Game.LocalTick) / 5 % 4 - 1) - 1 : 0;
var shadowSprites = r.Select(a => a.WithPalette(wr.Palette("shadow"))
.WithPos(a.Pos - new WVec(0, 0, a.Pos.Z)).WithZOffset(-24));
.WithPos(a.Pos - new WVec(0, 0, a.Pos.Z)).WithZOffset(a.ZOffset + a.Pos.Z));
var flyingSprites = (move.Altitude <= 0) ? r :
r.Select(a => a.WithPos(a.Pos - new WVec(0,0,43*visualOffset)));