private void startClicked()
	{
		if (herob.getUnits().size() < 1 || heror.getUnits().size() < 1) {
			QMessageBox.warning(gui.WindowStack.getLastInstance(), "Brak jednostek",  "Musisz dodać jakąś jednostkę do garnizonu");
			return;
		}
		
		herobClone = new core.Hero("", CastleType.HUMAN_CASTLE);
		herorClone = new core.Hero("", CastleType.HUMAN_CASTLE);
		herobClone.setColor(core.Color.BLUE);
		herorClone.setColor(core.Color.RED);
		for (core.GroupOfUnits u: herob.getUnits()) {
			herobClone.getUnits().add(new core.GroupOfUnits(u.type, herobClone, u.getNumber()));
		}
		for (core.GroupOfUnits u: heror.getUnits()) {
			herorClone.getUnits().add(new core.GroupOfUnits(u.type, herorClone, u.getNumber()));
		}
		
		core.Mission m = new core.MissionBattle();
		core.Player pb = new core.PlayerHuman(nameb.text(), core.Color.BLUE);
		pb.addHero(herob);
		
		core.Player pr;
		if (ai.isChecked()) {
			pr = new core.PlayerCPU(namer.text(), core.Color.RED);
		} else {
			pr = new core.PlayerHuman(namer.text(), core.Color.RED);
		}
		pr.addHero(heror);
		
		Battle b = new Battle(pb, pr, herob, heror, Terrain.GRASS, null);
		b.createMapWidget();
		b.populateMapWidget();;
		
		WindowBattle bat = new WindowBattle(b, pb, pr, herob, heror);
		b.updateQueue.connect(bat, "updateQueue(Queue)");
		b.log.connect(bat, "addLogLine(String)");
		b.start();
		
		gui.WindowStack ws = gui.WindowStack.getLastInstance();
		ws.push(bat);
		QApplication.processEvents();
	}