protected void setupNewGame(){		
		//Semi test code: Get the opponent (AI, Human)
		NewGameDialog ngd = new NewGameDialog(this); //make modal dialog
		NewGameBundle ngb = ngd.getGameSetup();
		
		int player1 = ngb.getPlayer1(); //this code will execute after the dialog box closes (modal)
		if (player1 == -1) {
			//user clicked X, ignore new game request
			return;
		}
		if(player1 > 0){
			p1ai = new AI(GameBoard.PLAYER1, player1, this);
		} else {
			p1ai = null;
		}
		
		int player2 = ngb.getPlayer2(); //this code will execute after the dialog box closes (modal)
		if (player2 == -1 ) {
			//user clicked X, ignore new game request
			return;
		}
		if(player2 > 0){
			p2ai = new AI(GameBoard.PLAYER2, player2, this);
		} else {
			p2ai = null;
		}
		//System.out.println("Players: "+player1+" vs "+player2);
		drawPanel.removeAll();
		drawPanel.revalidate();
		drawPanel.resetBroken();
		drawPanel.repaint();
		
		
		//Make a new gamestate, clear the old one
		gamestate = new GameBoard(this,ngb.getFlyMode());
	
		//Draw circles to look like pieces. These pieces however will do nothing, as this is the title screen.
		pieces = new GamePieceButton[3][8];
		
		//Get snap coordinates - if the window has changed size (for some, any reason, not just resizing) we should update our snap coordiantes reference.
		snapCoordinates = coordinates.getSnapCoordinates();

		for(int r = 0; r < 3; r++){ //each ring
			for(int p = 0; p < 8; p++){ //each position
				Point pt = snapCoordinates[r][p];
				pieces[r][p] = new GamePieceButton(new GamePiece(r,p), this);
				pieces[r][p].setBounds(pt.x-15, pt.y-15, 30, 30); //this draws from the top left. snap coordinates returns the centerpoint so move a radius up-left to make it draw properly
				if (p1ai == null) {
					pieces[r][p].setMode(GamePieceButton.PLACE_MODE); //pieces are ready to place.
				} else {
					pieces[r][p].setMode(GamePieceButton.AI_PLACE_MODE); //pieces are ready to place, AI turn.
				}
				pieces[r][p].addActionListener(this);
				drawPanel.add(pieces[r][p]);
			}
		}
		if (p1ai == null) {
			setDirections("Player 1's turn to place a piece");
		} else {
			setDirections("AI Player 1 is choosing where to place a piece...");
			p1ai.performTurn(gamestate); //player 1's ai will now perform the first turn
		}
		gamestate.playBackgroundMusic();
		drawPanel.repaint();
	}