Merge branch 'master' into build/6162-use-vcpk-everywhere-aqt-install

This commit is contained in:
Bruno Alexandre Rosa 2025-09-26 18:14:59 -03:00
commit b476abf2a5
7 changed files with 26 additions and 30 deletions

View file

@ -340,6 +340,8 @@ void GameEventHandler::eventPlayerPropertiesChanged(const Event_PlayerProperties
while (playerIterator.hasNext()) while (playerIterator.hasNext())
playerIterator.next().value()->updateZones(); playerIterator.next().value()->updateZones();
emit logConcede(eventPlayerId);
break; break;
} }
case GameEventContext::UNCONCEDE: { case GameEventContext::UNCONCEDE: {
@ -349,6 +351,8 @@ void GameEventHandler::eventPlayerPropertiesChanged(const Event_PlayerProperties
while (playerIterator.hasNext()) while (playerIterator.hasNext())
playerIterator.next().value()->updateZones(); playerIterator.next().value()->updateZones();
emit logUnconcede(eventPlayerId);
break; break;
} }
case GameEventContext::DECK_SELECT: { case GameEventContext::DECK_SELECT: {

View file

@ -122,6 +122,8 @@ signals:
void logGameClosed(); void logGameClosed();
void logActivePlayer(Player *activePlayer); void logActivePlayer(Player *activePlayer);
void logActivePhaseChanged(int activePhase); void logActivePhaseChanged(int activePhase);
void logConcede(int playerId);
void logUnconcede(int playerId);
}; };
#endif // COCKATRICE_GAME_EVENT_HANDLER_H #endif // COCKATRICE_GAME_EVENT_HANDLER_H

View file

@ -15,6 +15,10 @@ GameState::GameState(AbstractGame *parent,
clients(_clients), gameStateKnown(_gameStateKnown), resuming(_resuming), currentPhase(_currentPhase), clients(_clients), gameStateKnown(_gameStateKnown), resuming(_resuming), currentPhase(_currentPhase),
activePlayer(-1), gameClosed(_gameClosed) activePlayer(-1), gameClosed(_gameClosed)
{ {
gameTimer = new QTimer(this);
gameTimer->setInterval(1000);
connect(gameTimer, &QTimer::timeout, this, &GameState::incrementGameTime);
gameTimer->start();
} }
void GameState::incrementGameTime() void GameState::incrementGameTime()
@ -24,6 +28,7 @@ void GameState::incrementGameTime()
void GameState::setGameTime(int _secondsElapsed) void GameState::setGameTime(int _secondsElapsed)
{ {
secondsElapsed = _secondsElapsed;
int seconds = _secondsElapsed; int seconds = _secondsElapsed;
int minutes = seconds / 60; int minutes = seconds / 60;
seconds -= minutes * 60; seconds -= minutes * 60;
@ -33,12 +38,4 @@ void GameState::setGameTime(int _secondsElapsed)
emit updateTimeElapsedLabel(QString::number(hours).rightJustified(2, '0') + ":" + emit updateTimeElapsedLabel(QString::number(hours).rightJustified(2, '0') + ":" +
QString::number(minutes).rightJustified(2, '0') + ":" + QString::number(minutes).rightJustified(2, '0') + ":" +
QString::number(seconds).rightJustified(2, '0')); QString::number(seconds).rightJustified(2, '0'));
}
void GameState::startGameTimer()
{
gameTimer = new QTimer(this);
gameTimer->setInterval(1000);
connect(gameTimer, &QTimer::timeout, this, &GameState::incrementGameTime);
gameTimer->start();
} }

View file

@ -91,15 +91,12 @@ public:
void onStartedChanged(bool _started) void onStartedChanged(bool _started)
{ {
if (_started) { if (_started) {
startGameTimer();
emit gameStarted(_started); emit gameStarted(_started);
} else { } else {
emit gameStopped(); emit gameStopped();
} }
} }
void startGameTimer();
void setGameStateKnown(bool known) void setGameStateKnown(bool known)
{ {
gameStateKnown = known; gameStateKnown = known;

View file

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

View file

@ -78,7 +78,6 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
connectToGameEventHandler(); connectToGameEventHandler();
connectPlayerListToGameEventHandler(); connectPlayerListToGameEventHandler();
connectMessageLogToGameEventHandler(); connectMessageLogToGameEventHandler();
connectMessageLogToPlayerHandler();
retranslateUi(); retranslateUi();
connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this, connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this,
@ -124,7 +123,6 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor,
connectToGameEventHandler(); connectToGameEventHandler();
connectPlayerListToGameEventHandler(); connectPlayerListToGameEventHandler();
connectMessageLogToGameEventHandler(); connectMessageLogToGameEventHandler();
connectMessageLogToPlayerHandler();
retranslateUi(); retranslateUi();
connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this, connect(&SettingsCache::instance().shortcuts(), &ShortcutsSettings::shortCutChanged, this,
@ -152,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()
@ -206,16 +205,13 @@ void TabGame::connectMessageLogToGameEventHandler()
connect(game->getGameEventHandler(), &GameEventHandler::logTurnReversed, messageLog, connect(game->getGameEventHandler(), &GameEventHandler::logTurnReversed, messageLog,
&MessageLogWidget::logReverseTurn); &MessageLogWidget::logReverseTurn);
connect(game->getGameEventHandler(), &GameEventHandler::logConcede, messageLog, &MessageLogWidget::logConcede);
connect(game->getGameEventHandler(), &GameEventHandler::logUnconcede, messageLog, &MessageLogWidget::logUnconcede);
connect(game->getGameEventHandler(), &GameEventHandler::logGameClosed, messageLog, connect(game->getGameEventHandler(), &GameEventHandler::logGameClosed, messageLog,
&MessageLogWidget::logGameClosed); &MessageLogWidget::logGameClosed);
} }
void TabGame::connectMessageLogToPlayerHandler()
{
connect(game->getPlayerManager(), &PlayerManager::playerConceded, messageLog, &MessageLogWidget::logConcede);
connect(game->getPlayerManager(), &PlayerManager::playerUnconceded, messageLog, &MessageLogWidget::logUnconcede);
}
void TabGame::connectPlayerListToGameEventHandler() void TabGame::connectPlayerListToGameEventHandler()
{ {
connect(game->getGameEventHandler(), &GameEventHandler::playerJoined, playerListWidget, connect(game->getGameEventHandler(), &GameEventHandler::playerJoined, playerListWidget,
@ -497,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);
} }
} }
@ -805,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()
@ -821,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()
@ -940,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(),
@ -1282,7 +1288,6 @@ void TabGame::createMessageDock(bool bReplay)
timeElapsedLabel = new QLabel; timeElapsedLabel = new QLabel;
timeElapsedLabel->setAlignment(Qt::AlignCenter); timeElapsedLabel->setAlignment(Qt::AlignCenter);
connect(game->getGameState(), &GameState::updateTimeElapsedLabel, this, &TabGame::updateTimeElapsedLabel); connect(game->getGameState(), &GameState::updateTimeElapsedLabel, this, &TabGame::updateTimeElapsedLabel);
game->getGameState()->startGameTimer();
messageLogLayout->addWidget(timeElapsedLabel); messageLogLayout->addWidget(timeElapsedLabel);
} }

View file

@ -168,7 +168,6 @@ public:
void connectToPlayerManager(); void connectToPlayerManager();
void connectToGameEventHandler(); void connectToGameEventHandler();
void connectMessageLogToGameEventHandler(); void connectMessageLogToGameEventHandler();
void connectMessageLogToPlayerHandler();
void connectPlayerListToGameEventHandler(); void connectPlayerListToGameEventHandler();
TabGame(TabSupervisor *_tabSupervisor, GameReplay *replay); TabGame(TabSupervisor *_tabSupervisor, GameReplay *replay);
~TabGame() override; ~TabGame() override;