Handle concession properly.

Took 57 minutes

Took 38 seconds

Took 18 seconds

Took 21 seconds
This commit is contained in:
Lukas Brübach 2025-09-26 11:23:21 +02:00
parent 762ea47b8e
commit 8abb0348a0
2 changed files with 5 additions and 9 deletions

View file

@ -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);

View file

@ -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()