public void layPath(Node[][] map, int pathWidth) {
		Point pointer = new Point(start);
		int wanderCounter=20;
		while (pointer.x != end.x || pointer.y != end.y) {
			for (int px=0; px<pathWidth; px++) {
				for (int py=0; py<pathWidth; py++) {
					// if (!map[pointer.x+px][pointer.y+py].isRoom())
					map[pointer.x+px][pointer.y+py].setPath(true);
				}
			}

			
			int xDiff=end.x-pointer.x; int yDiff=end.y-pointer.y;
			// check for zeroes so we don't divide by them
			// and get 1 or -1 based on direction
			if (xDiff!=0) xDiff=Math.abs(xDiff)/xDiff;
			if (yDiff!=0) yDiff=Math.abs(yDiff)/yDiff;
			
			if (wanderCounter>0) {
			// check which direction is easier to go (if there is a choice)
			// if (xDiff == yDiff) {
				wanderCounter--;
				Point p1 = new Point(pointer.x+xDiff,pointer.y);
				Point p2 = new Point(pointer.x,pointer.y+yDiff);
				
				double heightDiff1 = 
						Math.abs(map[pointer.x][pointer.y].getHeight()-map[p1.x][p1.y].getHeight());
				double heightDiff2 = 
						Math.abs(map[pointer.x][pointer.y].getHeight()-map[p2.x][p2.y].getHeight());
				
				if (heightDiff1 < heightDiff2)
					yDiff=0;
				else
					xDiff=0;
				
			} else 
				wanderCounter=20;
			
			pointer.translate(xDiff, yDiff);
		}

		map[end.x][end.y].setPath(true);
	}