Index: src/com/medievaltech/advancewars/GameView.java
===================================================================
--- src/com/medievaltech/advancewars/GameView.java	(revision ebaddd97ef205aa37e549fec7cd109ec22d81384)
+++ src/com/medievaltech/advancewars/GameView.java	(revision 78d3c6fb7ebf70088d9995550abf1dd079b1b044)
@@ -61,5 +61,4 @@
         private com.medievaltech.gui.Window wndMainMenu, wndBattleMap;
         private Unit selectedUnit;
-        private boolean test = false;
         
         public DrawingThread(SurfaceHolder surfaceHolder, Context context, Handler handler) {
@@ -111,5 +110,5 @@
             Tile oceanTile = new Tile(mTilePaint2);
             
-            mMap = new Map(grassTile, 6, 8);
+            mMap = new Map(grassTile, 6, 8, new Point(10, 25));
             
             boolean land = true;
@@ -127,7 +126,5 @@
             
             mMap.getTile(2, 3).addUnit(new Soldier(mUnitPaint));
-            mMap.getTile(5, 7).addUnit(new Soldier(mUnitPaint));
-            
-            selectedUnit = mMap.getTile(2, 3).currentUnit;
+            mMap.getTile(5, 6).addUnit(new Soldier(mUnitPaint));
             
             mGameState = GameState.MAIN_MENU;
@@ -350,15 +347,14 @@
         		mTextPaint.setTextSize(12);
             	
-            	mMap.draw(canvas, 10, 25);
+            	mMap.draw(canvas);
             	
-            	for(Point p : selectedUnit.getMovementRange()) {
-            		canvas.drawRect(p.x*50+10, p.y*50+25, p.x*50+50+10, p.y*50+50+25, mSelectionPaint);
-            		if(!test)
-            			Log.i("AdvanceWars", "("+p.x+","+p.y+")");
+            	if(selectedUnit != null) {
+	            	for(Point p : selectedUnit.getMovementRange()) {
+	            		canvas.drawRect(p.x*50+10, p.y*50+25, p.x*50+50+10, p.y*50+50+25, mSelectionPaint);
+	            	}
             	}
-            	test = true;
             	
-            	text = "Advance Wars grid test";
-            	canvas.drawText(text, 0, 450-(metrics.ascent+metrics.descent)/2, mTextPaint);
+            	mMap.drawUnits(canvas);
+            	
         		break;
         	}
@@ -432,5 +428,12 @@
     		case BATTLE_MAP:
     			Log.i("AdvanceWars", "Touch event detected on battle map");
-    			thread.mGameState = GameState.MAIN_MENU;
+    			
+    			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;
+    				
+    				thread.selectedUnit = thread.mMap.getTile(x, y).currentUnit;
+    			}
+    			
     			break;
     		}
