mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
[TabGame/PlayerManager] Handle concession properly. (#6178)
* Handle concession properly. Took 57 minutes Took 38 seconds Took 18 seconds Took 21 seconds * Set text and enable/disable on game start/stop. (Does not fix the translation issue but at least disables the button.) Took 51 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
fad1280185
commit
891e7bf6e4
2 changed files with 12 additions and 9 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -150,6 +150,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()
|
||||
|
|
@ -492,13 +493,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);
|
||||
}
|
||||
}
|
||||
|
|
@ -800,6 +802,9 @@ void TabGame::startGame(bool _resuming)
|
|||
playerListWidget->setGameStarted(true, game->getGameState()->isResuming());
|
||||
game->getGameMetaInfo()->setStarted(true);
|
||||
static_cast<GameScene *>(gameView->scene())->rearrange();
|
||||
|
||||
aConcede->setText(tr("&Concede"));
|
||||
aConcede->setEnabled(true);
|
||||
}
|
||||
|
||||
void TabGame::stopGame()
|
||||
|
|
@ -816,6 +821,9 @@ void TabGame::stopGame()
|
|||
playerListWidget->setGameStarted(false, false);
|
||||
|
||||
scene->clearViews();
|
||||
|
||||
aConcede->setText(tr("&Concede"));
|
||||
aConcede->setEnabled(false);
|
||||
}
|
||||
|
||||
void TabGame::closeGame()
|
||||
|
|
@ -935,6 +943,9 @@ void TabGame::createMenuItems()
|
|||
connect(aGameInfo, &QAction::triggered, this, &TabGame::actGameInfo);
|
||||
aConcede = new QAction(this);
|
||||
connect(aConcede, &QAction::triggered, this, &TabGame::actConcede);
|
||||
if (!game->getGameMetaInfo()->started()) {
|
||||
aConcede->setEnabled(false);
|
||||
}
|
||||
connect(game->getPlayerManager(), &PlayerManager::activeLocalPlayerConceded, game->getGameEventHandler(),
|
||||
&GameEventHandler::handleActiveLocalPlayerConceded);
|
||||
connect(game->getPlayerManager(), &PlayerManager::activeLocalPlayerUnconceded, game->getGameEventHandler(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue