diff --git a/OpenRA.Game/Graphics/TerrainRenderer.cs b/OpenRA.Game/Graphics/TerrainRenderer.cs index 5a94f93748..400ff7979a 100644 --- a/OpenRA.Game/Graphics/TerrainRenderer.cs +++ b/OpenRA.Game/Graphics/TerrainRenderer.cs @@ -88,7 +88,7 @@ namespace OpenRA.Graphics if (firstRow < 0) firstRow = 0; if (lastRow > map.Height) lastRow = map.Height; - if (!Game.world.LocalPlayer.Shroud.Disabled && Game.world.LocalPlayer.Shroud.bounds.HasValue) + if (Game.world.LocalPlayer != null && !Game.world.LocalPlayer.Shroud.Disabled && Game.world.LocalPlayer.Shroud.bounds.HasValue) { var r = Game.world.LocalPlayer.Shroud.bounds.Value; if (firstRow < r.Top - map.YOffset) diff --git a/OpenRA.Game/Graphics/Viewport.cs b/OpenRA.Game/Graphics/Viewport.cs index d08c3919e6..d9d603f4c8 100644 --- a/OpenRA.Game/Graphics/Viewport.cs +++ b/OpenRA.Game/Graphics/Viewport.cs @@ -72,12 +72,10 @@ namespace OpenRA.Graphics float2 r2 = new float2(-1, 1); renderer.BeginFrame(r1, r2, scrollPosition.ToInt2()); - + world.WorldRenderer.Draw(); if( Game.orderManager.GameStarted ) { - world.WorldRenderer.Draw(); - Game.chrome.Draw( world ); - + Game.chrome.Draw( world ); if( Game.orderManager.Connection.ConnectionState == ConnectionState.NotConnected ) Game.chrome.DrawDialog("Connection lost."); diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index 6599b305f4..7997f31d19 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -84,7 +84,7 @@ namespace OpenRA.Graphics Rectangle GetBoundsRect() { - if (!world.LocalPlayer.Shroud.Disabled && world.LocalPlayer.Shroud.bounds.HasValue) + if (world.LocalPlayer != null && !world.LocalPlayer.Shroud.Disabled && world.LocalPlayer.Shroud.bounds.HasValue) { var r = world.LocalPlayer.Shroud.bounds.Value; @@ -136,7 +136,8 @@ namespace OpenRA.Graphics if (Game.controller.orderGenerator != null) Game.controller.orderGenerator.Render(world); - world.LocalPlayer.Shroud.Draw(spriteRenderer); + if (world.LocalPlayer != null) + world.LocalPlayer.Shroud.Draw(spriteRenderer); spriteRenderer.Flush(); diff --git a/OpenRA.Game/Traits/World/BibLayer.cs b/OpenRA.Game/Traits/World/BibLayer.cs index 3740fa9bd7..cb093d258e 100644 --- a/OpenRA.Game/Traits/World/BibLayer.cs +++ b/OpenRA.Game/Traits/World/BibLayer.cs @@ -85,7 +85,6 @@ namespace OpenRA.Traits public void Render() { - var shroud = world.LocalPlayer.Shroud; var tl = world.Map.TopLeft; var br = world.Map.BottomRight; @@ -93,7 +92,7 @@ namespace OpenRA.Traits for (int y = tl.Y; y < br.Y; y++) { var t = new int2(x, y); - if (!shroud.IsExplored(t) || tiles[x,y].type == 0) continue; + if (world.LocalPlayer != null && !world.LocalPlayer.Shroud.IsExplored(t) || tiles[x,y].type == 0) continue; spriteRenderer.DrawSprite(bibSprites[tiles[x,y].type- 1][tiles[x,y].image], Game.CellSize * (float2)t, "terrain"); diff --git a/OpenRA.Game/Traits/World/ResourceLayer.cs b/OpenRA.Game/Traits/World/ResourceLayer.cs index 60f0a03c34..a7926c1c22 100644 --- a/OpenRA.Game/Traits/World/ResourceLayer.cs +++ b/OpenRA.Game/Traits/World/ResourceLayer.cs @@ -44,13 +44,12 @@ namespace OpenRA.Traits public void Render() { - var shroud = Game.world.LocalPlayer.Shroud; var map = Game.world.Map; for (int y = map.YOffset; y < map.YOffset + map.Height; y++) for (int x = map.XOffset; x < map.XOffset + map.Width; x++) { - if (!shroud.IsExplored(new int2(x, y))) continue; + if (Game.world.LocalPlayer != null && !Game.world.LocalPlayer.Shroud.IsExplored(new int2(x, y))) continue; var c = content[x, y]; if (c.image != null) diff --git a/OpenRA.Game/Traits/World/SmudgeLayer.cs b/OpenRA.Game/Traits/World/SmudgeLayer.cs index accd51f5e3..8089f09bcf 100644 --- a/OpenRA.Game/Traits/World/SmudgeLayer.cs +++ b/OpenRA.Game/Traits/World/SmudgeLayer.cs @@ -83,7 +83,6 @@ namespace OpenRA.Traits public void Render() { - var shroud = world.LocalPlayer.Shroud; var tl = world.Map.TopLeft; var br = world.Map.BottomRight; @@ -91,8 +90,8 @@ namespace OpenRA.Traits for (int y = tl.Y; y < br.Y; y++) { var t = new int2(x, y); - if (!shroud.IsExplored(t) || tiles[x,y].type == 0) continue; - + if (world.LocalPlayer != null && !world.LocalPlayer.Shroud.IsExplored(t) || tiles[x,y].type == 0) continue; + spriteRenderer.DrawSprite(smudgeSprites[tiles[x,y].type- 1][tiles[x,y].image], Game.CellSize * (float2)t, "terrain"); }