public boolean[][] whereCanIWalk(Point in){
		boolean[][] output = new boolean[widht][height];
		
		clearVars();
		
		lastChecked.add(in);
		
		int lock = 0;
		boolean running = true;
		while(running){
			toCheck.clear();
			for(Point p : lastChecked){
				for(Point q : getPointsAround(p)){
					doStuff(q);
				}
			}
			
			for(Point p : toCheck){
				output[p.x][p.y] = true;
				pathSize[p.x][p.y] = 1;
				status = "now checking " + p.toString(); 
			}
			
			lastChecked = new HashSet<Point>(toCheck);
			lock++;
			
			if(lock > 9999 || lastChecked.size() == 0){
				status = "finish!";
				return output;
			}
		}
		return output;
	}