From 8abb0348a0edc4b041b40570da9b1010b4e331cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Fri, 26 Sep 2025 11:23:21 +0200 Subject: [PATCH] Handle concession properly. Took 57 minutes Took 38 seconds Took 18 seconds Took 21 seconds --- cockatrice/src/game/player/player_manager.cpp | 8 -------- cockatrice/src/tabs/tab_game.cpp | 6 +++++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/cockatrice/src/game/player/player_manager.cpp b/cockatrice/src/game/player/player_manager.cpp index 8fa7bde78..d8c12cee6 100644 --- a/cockatrice/src/game/player/player_manager.cpp +++ b/cockatrice/src/game/player/player_manager.cpp @@ -72,14 +72,6 @@ Player *PlayerManager::getPlayer(int playerId) const void PlayerManager::onPlayerConceded(int playerId, bool conceded) { - // GameEventHandler cares about this for sending the concede/unconcede commands - if (isLocalPlayer(playerId)) { - if (conceded) { - emit activeLocalPlayerConceded(); - } else { - emit activeLocalPlayerUnconceded(); - } - } // Everything else cares about this if (conceded) { emit playerConceded(playerId); diff --git a/cockatrice/src/tabs/tab_game.cpp b/cockatrice/src/tabs/tab_game.cpp index c8ea5e7fe..4ef0043a3 100644 --- a/cockatrice/src/tabs/tab_game.cpp +++ b/cockatrice/src/tabs/tab_game.cpp @@ -152,6 +152,7 @@ void TabGame::connectToPlayerManager() connect(game->getPlayerManager(), &PlayerManager::playerRemoved, this, &TabGame::processPlayerLeave); // update menu text when player concedes so that "concede" gets updated to "unconcede" connect(game->getPlayerManager(), &PlayerManager::playerConceded, this, &TabGame::retranslateUi); + connect(game->getPlayerManager(), &PlayerManager::playerUnconceded, this, &TabGame::retranslateUi); } void TabGame::connectToGameEventHandler() @@ -497,13 +498,14 @@ void TabGame::actConcede() if (QMessageBox::question(this, tr("Concede"), tr("Are you sure you want to concede this game?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes) return; + emit game->getPlayerManager()->activeLocalPlayerConceded(); player->setConceded(true); } else { if (QMessageBox::question(this, tr("Unconcede"), tr("You have already conceded. Do you want to return to this game?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes) return; - + emit game->getPlayerManager()->activeLocalPlayerUnconceded(); player->setConceded(false); } } @@ -821,6 +823,8 @@ void TabGame::stopGame() playerListWidget->setGameStarted(false, false); scene->clearViews(); + + retranslateUi(); } void TabGame::closeGame()