public void promotePawn(int r, int c)
	{
		Player cur = (Definitions.flip(whoseTurn()) == Definitions.Color.WHITE ? m_data.m_game.getP1() : m_data.m_game.getP2());

		if (cur instanceof HumanPlayer)
		{
			String[] param = { "Queen", "Rook", "Knight", "Bishop" };
			String input = (String) JOptionPane.showInputDialog(null, "Which piece do you want to promote to?", "Pawn Promotion", JOptionPane.QUESTION_MESSAGE, null, param, param[0]);

			int sq = (7-r)*8 + (7-c);
			setPawns(getPawns() & ~(1L << sq));
			if (input == "Queen")
				setQueens(getQueens() | (1L << sq));
			else if (input == "Rook")
				setRooks(getRooks() | (1L << sq));
			else if (input == "Knight")
				setKnights(getKnights() | (1L << sq));		
			else //Bishop
				setBishops(getBishops() | (1L << sq));
		}
		else //TODO: AI chooses queen for now
		{
			int sq = (7-r)*8 + (7-c);
			setPawns(getPawns() & ~(1L << sq));
			setQueens(getQueens() | (1L << sq));
		}
	}