cache world.LocalPlayer instead of fetching it repeatedly within loops

This commit is contained in:
Bob
2010-10-31 17:40:54 +13:00
committed by Chris Forbes
parent d7d0d371c6
commit e3ddb8f757
5 changed files with 21 additions and 17 deletions

View File

@@ -135,10 +135,12 @@ namespace OpenRA.Graphics
unsafe
{
int* c = (int*)bitmapData.Scan0;
var player = world.LocalPlayer;
foreach (var t in world.Queries.WithTraitMultiple<IRadarSignature>())
{
if (!t.Actor.IsVisible(world.LocalPlayer))
if (!t.Actor.IsVisible(player))
continue;
var color = t.Trait.RadarSignatureColor(t.Actor);
@@ -162,7 +164,9 @@ namespace OpenRA.Graphics
var shroud = Color.Black.ToArgb();
var fog = Color.FromArgb(128, Color.Black).ToArgb();
var playerShroud = world.LocalPlayer.Shroud;
unsafe
{
int* c = (int*)bitmapData.Scan0;
@@ -172,9 +176,9 @@ namespace OpenRA.Graphics
{
var mapX = x + map.TopLeft.X;
var mapY = y + map.TopLeft.Y;
if (!world.LocalPlayer.Shroud.IsExplored(mapX, mapY))
if (!playerShroud.IsExplored(mapX, mapY))
*(c + (y * bitmapData.Stride >> 2) + x) = shroud;
else if (!world.LocalPlayer.Shroud.IsVisible(mapX,mapY))
else if (!playerShroud.IsVisible(mapX,mapY))
*(c + (y * bitmapData.Stride >> 2) + x) = fog;
}
}