@Override
    public void mouseClicked(MouseEvent e) {
	List<GuiControl> controlList = new ArrayList<GuiControl>();
	controlList.addAll(this.controlList);
	for (GuiControl c : controlList)
	    c.mouseClicked(e);

	if (mapCache == null)
	    return;
	int mapWidth = mapCache.length;
	int mapHeight = mapCache[0].length;

	if (e.getButton() == MouseEvent.BUTTON1 && !firstClick) {
	    int x = (int) (((e.getX() + scrollX) / zoom) / tileSize);
	    int y = (int) (((e.getY() + scrollY) / zoom) / tileSize);

	    if (x < 0 || x >= field.length || y < 0 || y >= field[x].length)
		return;
	    Building[][] buildings = Client.instance.buildings;

	    field = new boolean[mapWidth][mapHeight];
	    for (int x1 = x; x1 > x1 - 6 && x1 >= 0; x1--) {
		for (int y1 = y; y1 > y1 - 6 && y1 >= 0; y1--) {
		    Building b = buildings[x1][y1];
		    if (b != null && b.getSizeX() + x1 > x && b.getSizeY() + y1 > y) {
			field[x1][y1] = true;
			return;
		    }
		}
	    }
	}
	firstClick = false;
    }