From c944b5fb9b2e31501aa1b93e52fdaee843c8f341 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 17 Jan 2010 10:51:53 +1300 Subject: [PATCH] gap shouldnt affect owner --- OpenRa.Game/Player.cs | 3 ++- OpenRa.Game/Shroud.cs | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/OpenRa.Game/Player.cs b/OpenRa.Game/Player.cs index ef886f6bac..79d862cc2b 100644 --- a/OpenRa.Game/Player.cs +++ b/OpenRa.Game/Player.cs @@ -26,11 +26,12 @@ namespace OpenRa public int PowerProvided = 0; public int PowerDrained = 0; - public Shroud Shroud = new Shroud(); + public Shroud Shroud; public Dictionary SupportPowers; public Player( int index, Session.Client client ) { + Shroud = new Shroud(this); Game.world.Add(this.PlayerActor = new Actor("Player", new int2(int.MaxValue, int.MaxValue), this)); this.Index = index; this.InternalName = "Multi{0}".F(index); diff --git a/OpenRa.Game/Shroud.cs b/OpenRa.Game/Shroud.cs index 4e8ce48742..abaad1b6e8 100644 --- a/OpenRa.Game/Shroud.cs +++ b/OpenRa.Game/Shroud.cs @@ -15,6 +15,9 @@ namespace OpenRa Sprite[,] sprites = new Sprite[128, 128]; bool dirty = true; bool hasGPS = false; + Player owner; + + public Shroud(Player owner) { this.owner = owner; } float gapOpaqueTicks = (int)(Rules.General.GapRegenInterval * 25 * 60); int[,] gapField = new int[128, 128]; @@ -30,7 +33,7 @@ namespace OpenRa { // Clear active flags gapActive = new bool[128, 128]; - foreach (var a in Game.world.Actors.Where(a => a.traits.Contains())) + foreach (var a in Game.world.Actors.Where(a => a.traits.Contains() && owner != a.Owner)) { foreach (var t in a.traits.Get().GetShroudedTiles()) gapActive[t.X, t.Y] = true;