mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-13 01:24:46 -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)
|
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
|
// Everything else cares about this
|
||||||
if (conceded) {
|
if (conceded) {
|
||||||
emit playerConceded(playerId);
|
emit playerConceded(playerId);
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,7 @@ void TabGame::connectToPlayerManager()
|
||||||
connect(game->getPlayerManager(), &PlayerManager::playerRemoved, this, &TabGame::processPlayerLeave);
|
connect(game->getPlayerManager(), &PlayerManager::playerRemoved, this, &TabGame::processPlayerLeave);
|
||||||
// update menu text when player concedes so that "concede" gets updated to "unconcede"
|
// 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::playerConceded, this, &TabGame::retranslateUi);
|
||||||
|
connect(game->getPlayerManager(), &PlayerManager::playerUnconceded, this, &TabGame::retranslateUi);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabGame::connectToGameEventHandler()
|
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?"),
|
if (QMessageBox::question(this, tr("Concede"), tr("Are you sure you want to concede this game?"),
|
||||||
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes)
|
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes)
|
||||||
return;
|
return;
|
||||||
|
emit game->getPlayerManager()->activeLocalPlayerConceded();
|
||||||
player->setConceded(true);
|
player->setConceded(true);
|
||||||
} else {
|
} else {
|
||||||
if (QMessageBox::question(this, tr("Unconcede"),
|
if (QMessageBox::question(this, tr("Unconcede"),
|
||||||
tr("You have already conceded. Do you want to return to this game?"),
|
tr("You have already conceded. Do you want to return to this game?"),
|
||||||
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes)
|
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes)
|
||||||
return;
|
return;
|
||||||
|
emit game->getPlayerManager()->activeLocalPlayerUnconceded();
|
||||||
player->setConceded(false);
|
player->setConceded(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -800,6 +802,9 @@ void TabGame::startGame(bool _resuming)
|
||||||
playerListWidget->setGameStarted(true, game->getGameState()->isResuming());
|
playerListWidget->setGameStarted(true, game->getGameState()->isResuming());
|
||||||
game->getGameMetaInfo()->setStarted(true);
|
game->getGameMetaInfo()->setStarted(true);
|
||||||
static_cast<GameScene *>(gameView->scene())->rearrange();
|
static_cast<GameScene *>(gameView->scene())->rearrange();
|
||||||
|
|
||||||
|
aConcede->setText(tr("&Concede"));
|
||||||
|
aConcede->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabGame::stopGame()
|
void TabGame::stopGame()
|
||||||
|
|
@ -816,6 +821,9 @@ void TabGame::stopGame()
|
||||||
playerListWidget->setGameStarted(false, false);
|
playerListWidget->setGameStarted(false, false);
|
||||||
|
|
||||||
scene->clearViews();
|
scene->clearViews();
|
||||||
|
|
||||||
|
aConcede->setText(tr("&Concede"));
|
||||||
|
aConcede->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabGame::closeGame()
|
void TabGame::closeGame()
|
||||||
|
|
@ -935,6 +943,9 @@ void TabGame::createMenuItems()
|
||||||
connect(aGameInfo, &QAction::triggered, this, &TabGame::actGameInfo);
|
connect(aGameInfo, &QAction::triggered, this, &TabGame::actGameInfo);
|
||||||
aConcede = new QAction(this);
|
aConcede = new QAction(this);
|
||||||
connect(aConcede, &QAction::triggered, this, &TabGame::actConcede);
|
connect(aConcede, &QAction::triggered, this, &TabGame::actConcede);
|
||||||
|
if (!game->getGameMetaInfo()->started()) {
|
||||||
|
aConcede->setEnabled(false);
|
||||||
|
}
|
||||||
connect(game->getPlayerManager(), &PlayerManager::activeLocalPlayerConceded, game->getGameEventHandler(),
|
connect(game->getPlayerManager(), &PlayerManager::activeLocalPlayerConceded, game->getGameEventHandler(),
|
||||||
&GameEventHandler::handleActiveLocalPlayerConceded);
|
&GameEventHandler::handleActiveLocalPlayerConceded);
|
||||||
connect(game->getPlayerManager(), &PlayerManager::activeLocalPlayerUnconceded, game->getGameEventHandler(),
|
connect(game->getPlayerManager(), &PlayerManager::activeLocalPlayerUnconceded, game->getGameEventHandler(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue