Index: src/com/medievaltech/advancewars/GameView.java
===================================================================
--- src/com/medievaltech/advancewars/GameView.java	(revision c3ad11c0e1288802860309672b03e1255f430b6d)
+++ src/com/medievaltech/advancewars/GameView.java	(revision 331d18061423cfd9141a33bbdfc4b331ebfa1eb4)
@@ -22,5 +22,5 @@
         
         //maybe make this private and make an accessor for it
-        public Map mMap;
+        //public Map mMap;
         
         public Tile grassTile, oceanTile;
@@ -83,4 +83,8 @@
             mSelectionPaint.setAntiAlias(true);
             mSelectionPaint.setARGB(255, 255, 127, 0);
+            
+            Player.neutralColor = new Paint();
+            Player.neutralColor.setAntiAlias(true);
+            Player.neutralColor.setARGB(255, 127, 127, 127);
             
             wndMainMenu = new com.medievaltech.gui.Window(0, 0, 320, 450);;
@@ -94,14 +98,14 @@
             oceanTile = new Tile(mTilePaint2, TerrainType.SEA);
             
-            mMap = new Map(grassTile, 6, 8, new Point(10, 25));
+            Static.map = new Map(grassTile, 6, 8, new Point(10, 25));
             
             boolean land = true;
             
-            for(int x=0; x<mMap.getWidth(); x++) {
-    			for(int y=0; y<mMap.getHeight(); y++) {
+            for(int x=0; x<Static.map.getWidth(); x++) {
+    			for(int y=0; y<Static.map.getHeight(); y++) {
     				if(land)
-    					mMap.setTile(x, y, new Tile(grassTile, new Point(x, y)));
+    					Static.map.setTile(x, y, new Tile(grassTile, new Point(x, y)));
     				else
-    					mMap.setTile(x, y, new Tile(oceanTile, new Point(x, y)));
+    					Static.map.setTile(x, y, new Tile(oceanTile, new Point(x, y)));
     				land = !land;
     			}
@@ -112,7 +116,9 @@
             enemy = new Player("Comp", mUnitPaint2);
             
-            mMap.getTile(0, 0).addUnit(new Soldier(enemy));
-            mMap.getTile(2, 3).addUnit(new Soldier(humanPlayer));
-            mMap.getTile(5, 6).addUnit(new Soldier(humanPlayer));
+            Static.map.getTile(0, 0).addUnit(new Soldier(enemy));
+            Static.map.getTile(2, 3).addUnit(new Soldier(humanPlayer));
+            Static.map.getTile(5, 6).addUnit(new Soldier(humanPlayer));
+            
+            Static.map.getTile(4, 4).addBuilding(new City());
             
             mTurn = Turn.YOUR_TURN;
@@ -201,6 +207,6 @@
             		
             		//any unit that's in the way is removed (needs to be changed eventuallyy)
-            		thread.mMap.getTile(x, y).removeUnit();
-    				thread.mMap.getTile(x, y+1).addUnit(cur);
+            		Static.map.getTile(x, y).removeUnit();
+            		Static.map.getTile(x, y+1).addUnit(cur);
         		}
         		Log.i("AdvanceWars", "finished moving enemy units");
@@ -226,5 +232,5 @@
         		mTextPaint.setTextSize(12);
             	
-            	mMap.draw(canvas);
+        		Static.map.draw(canvas);
             	
             	if(selectedUnit != null) {
@@ -234,5 +240,6 @@
             	}
             	
-            	mMap.drawUnits(canvas);
+            	Static.map.drawBuildings(canvas);
+            	Static.map.drawUnits(canvas);
             	
         		break;
@@ -291,5 +298,5 @@
             			int offsetY = Integer.parseInt(offset.substring(offset.indexOf("x")+1));
             			
-            			thread.mMap = new Map(thread.grassTile, width, height, new Point(offsetX, offsetY));
+            			Static.map = new Map(thread.grassTile, width, height, new Point(offsetX, offsetY));
             			
             			Log.i("GameSave", "Created the map");
@@ -302,7 +309,7 @@
             					TerrainType type = TerrainType.values()[Integer.parseInt(arr[y])];
             					if(type.equals(TerrainType.LAND))
-                					thread.mMap.setTile(x, y, new Tile(thread.grassTile, new Point(10, 25)));
+            						Static.map.setTile(x, y, new Tile(thread.grassTile, new Point(10, 25)));
                 				else
-                					thread.mMap.setTile(x, y, new Tile(thread.oceanTile, new Point(10, 25)));
+                					Static.map.setTile(x, y, new Tile(thread.oceanTile, new Point(10, 25)));
             				}
             			}
@@ -316,5 +323,5 @@
                 			Player humanPlayer = new Player("Human", mGame.mThread.mUnitPaint1);
                 			
-            				mGame.mThread.mMap.getTile(x, y).addUnit(new Soldier(humanPlayer));
+                			Static.map.getTile(x, y).addUnit(new Soldier(humanPlayer));
             			}
             			
@@ -331,14 +338,14 @@
     			Log.i("AdvanceWars", "Touch event detected on battle map");
     			
-    			if(event.getX() >= thread.mMap.offset.x && event.getY() >= thread.mMap.offset.y) {
-    				int x = ((int)event.getX() - thread.mMap.offset.x) / 50;
-    				int y = ((int)event.getY() - thread.mMap.offset.y) / 50;
+    			if(event.getX() >= Static.map.offset.x && event.getY() >= Static.map.offset.y) {
+    				int x = ((int)event.getX() - Static.map.offset.x) / 50;
+    				int y = ((int)event.getY() - Static.map.offset.y) / 50;
     				
-    				Unit target = thread.mMap.getTile(x, y).currentUnit;
+    				Unit target = Static.map.getTile(x, y).currentUnit;
     				
     				if(thread.selectedUnit != null && thread.selectedUnit.getMovementRange().contains(new Point(x, y))) {
     					if(target == null || target == thread.selectedUnit) {
-	    						thread.mMap.getTile(thread.selectedUnit.location.x, thread.selectedUnit.location.y).removeUnit();
-	    						thread.mMap.getTile(x, y).addUnit(thread.selectedUnit);
+    							Static.map.getTile(thread.selectedUnit.location.x, thread.selectedUnit.location.y).removeUnit();
+    							Static.map.getTile(x, y).addUnit(thread.selectedUnit);
     					}else {
     						// the target contains another unit. If the unit is enemy-controlled, attack it
