/** * @brief Instanciates and starts all listeners thread (chat, online players). * @pre The client have to be connected before to call this function. */ void MainWindow::startListeners() { // Start a thread for listening server requests. _listener = new Listener(_player.socket, this); connect(_listener, SIGNAL(pseudoAlreadyExists(QString)), this, SLOT(pseudoAlreadyExists(QString))); connect(_listener, SIGNAL(addMsg(QString)), this, SLOT(addMsg(QString))); connect(_listener, SIGNAL(addPlayerToView(player)), this, SIGNAL(askAddPlayer(player))); connect(_listener, SIGNAL(removePlayerFromView(player)), this, SIGNAL(askRmPlayer(player))); connect(_listener, SIGNAL(advisePlayerForGame(QString)), this, SLOT(adviseForGame(QString))); connect(_listener, SIGNAL(advisePlayerForAbortedGame(QString)), this, SLOT(adviseForAbortedGame(QString))); connect(_listener, SIGNAL(startGame()), this, SLOT(startGame())); connect(_listener, SIGNAL(clientBusy(player)), ui->rightMenuWidget, SIGNAL(askSetBusy(player))); connect(_listener, SIGNAL(clientFree(player)), ui->rightMenuWidget, SIGNAL(askSetFree(player))); connect(_listener, SIGNAL(setOpponent(player)), this, SLOT(setOpponent(player))); connect(_listener, SIGNAL(opponentQuit(player)), this, SLOT(opponentQuit(player))); connect(_listener, SIGNAL(receiveCheckerboard(checkerboard)), ui->checkerboardwidget, SLOT(receiveCheckerboard(checkerboard))); connect(_listener, SIGNAL(receiveWinner(player)), this, SLOT(displayWinner(player))); }
void GApp::onRender(void) { Surface::draw(surfGrid, display, 0, 0); for (int i = 0; i < 9; ++i) { int x = (i % 3) * 200; int y = (i / 3) * 200; if (gameBoard.getCell(i) == TicTacToe::GRID_X) { Surface::draw(surfX, display, x, y); } else if (gameBoard.getCell(i) == TicTacToe::GRID_O) { Surface::draw(surfO, display, x, y); } TicTacToe::GridType winner = gameBoard.getWinner(); if (winner != TicTacToe::GRID_NONE) { displayWinner(winner); } } SDL_Flip(display); }