From 1bb6051260eff6f3e4d66f0c97be0e2dc10796da Mon Sep 17 00:00:00 2001
From: mr-russ <>
Date: Thu, 6 Mar 2003 09:09:47 +0000
Subject: [PATCH] Only Update Units that are seen by me

---
 src/map/map.cpp   |  3 +--
 src/unit/unit.cpp | 28 +++++++++++++++-------------
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/map/map.cpp b/src/map/map.cpp
index f93521523..d80f1034c 100644
--- a/src/map/map.cpp
+++ b/src/map/map.cpp
@@ -137,8 +137,6 @@ global void RevealMap(void)
 	    for (i = 0; i < PlayerMax; ++i) {
 		if (!TheMap.Fields[ix+iy*TheMap.Width].Visible[i]) {
 		    TheMap.Fields[ix+iy*TheMap.Width].Visible[i]=1;
-		    if (IsMapFieldVisible(&Players[i],ix,iy)) {
-			UnitsMarkSeen(ix,iy);
 		    }
 		}
 	    }
@@ -151,6 +149,7 @@ global void RevealMap(void)
 	    }
 #endif
 	    MapMarkSeenTile(ix, iy);
+	    UnitsMarkSeen(ix, iy);
 	}
     }
 }
diff --git a/src/unit/unit.cpp b/src/unit/unit.cpp
index dfcaae558..1431a885f 100644
--- a/src/unit/unit.cpp
+++ b/src/unit/unit.cpp
@@ -1122,21 +1122,23 @@ global void UnitsMarkSeen(int x,int y)
     int n;
     Unit* units[UnitMax];
 
-    n = SelectUnitsOnTile(x,y,units);
-    // FIXME: need to handle Dead buldings
-    while( n ) {
-	units[n-1]->SeenIY=units[n-1]->IY;
-	units[n-1]->SeenIX=units[n-1]->IX;
-	units[n-1]->SeenFrame = units[n-1]->Frame;
-	units[n-1]->SeenType = units[n-1]->Type;
-	units[n-1]->SeenState = (units[n-1]->Orders[0].Action==UnitActionBuilded) |
-		((units[n-1]->Orders[0].Action==UnitActionUpgradeTo) << 1);
-	if( units[n-1]->Orders[0].Action==UnitActionDie ) {
+    if( IsMapFieldVisible(ThisPlayer, x, y) ) {
+	n = SelectUnitsOnTile(x,y,units);
+	// FIXME: need to handle Dead buldings
+	while( n ) {
+	    units[n-1]->SeenIY=units[n-1]->IY;
+	    units[n-1]->SeenIX=units[n-1]->IX;
+	    units[n-1]->SeenFrame = units[n-1]->Frame;
+	    units[n-1]->SeenType = units[n-1]->Type;
+	    units[n-1]->SeenState = (units[n-1]->Orders[0].Action==UnitActionBuilded) |
+		    ((units[n-1]->Orders[0].Action==UnitActionUpgradeTo) << 1);
+	    if( units[n-1]->Orders[0].Action==UnitActionDie ) {
 		    units[n-1]->SeenState = 3;
+	    }
+	    units[n-1]->SeenConstructed = units[n-1]->Constructed;
+	    units[n-1]->SeenDestroyed = units[n-1]->Destroyed;
+	    --n;
 	}
-	units[n-1]->SeenConstructed = units[n-1]->Constructed;
-	units[n-1]->SeenDestroyed = units[n-1]->Destroyed;
-	--n;
     }
 }