From d84c5864fd224682c83f273c710defbe825d48cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Sun, 7 Sep 2025 14:24:28 +0200 Subject: [PATCH] Properly respond to game started again. Took 49 minutes --- cockatrice/src/client/tabs/tab_game.cpp | 1 + cockatrice/src/game/game_event_handler.cpp | 10 ++++++++++ cockatrice/src/game/game_state.h | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/cockatrice/src/client/tabs/tab_game.cpp b/cockatrice/src/client/tabs/tab_game.cpp index 028dabcb4..1b404c88c 100644 --- a/cockatrice/src/client/tabs/tab_game.cpp +++ b/cockatrice/src/client/tabs/tab_game.cpp @@ -109,6 +109,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, connect(gameState, &GameState::playerAdded, this, &TabGame::addPlayer); connect(gameState, &GameState::spectatorAdded, this, &TabGame::addSpectator); + connect(gameMetaInfo, &GameMetaInfo::startedChanged, gameState, &GameState::onStartedChanged); connect(gameState, &GameState::gameStarted, this, &TabGame::startGame); gameEventHandler = new GameEventHandler(this); diff --git a/cockatrice/src/game/game_event_handler.cpp b/cockatrice/src/game/game_event_handler.cpp index 11cf6a7a2..8f6b6db52 100644 --- a/cockatrice/src/game/game_event_handler.cpp +++ b/cockatrice/src/game/game_event_handler.cpp @@ -124,34 +124,44 @@ void GameEventHandler::processGameEventContainer(const GameEventContainer &cont, switch (eventType) { case GameEvent::GAME_STATE_CHANGED: + qInfo() << "Game state changed event"; eventGameStateChanged(event.GetExtension(Event_GameStateChanged::ext), playerId, context); break; case GameEvent::PLAYER_PROPERTIES_CHANGED: + qInfo() << "player prop event"; eventPlayerPropertiesChanged(event.GetExtension(Event_PlayerPropertiesChanged::ext), playerId, context); break; case GameEvent::JOIN: + qInfo() << "join event"; eventJoin(event.GetExtension(Event_Join::ext), playerId, context); break; case GameEvent::LEAVE: + qInfo() << "leave event"; eventLeave(event.GetExtension(Event_Leave::ext), playerId, context); break; case GameEvent::KICKED: + qInfo() << "kicked event"; eventKicked(event.GetExtension(Event_Kicked::ext), playerId, context); break; case GameEvent::GAME_HOST_CHANGED: + qInfo() << "host changed event"; eventGameHostChanged(event.GetExtension(Event_GameHostChanged::ext), playerId, context); break; case GameEvent::GAME_CLOSED: + qInfo() << "game closed event"; eventGameClosed(event.GetExtension(Event_GameClosed::ext), playerId, context); break; case GameEvent::SET_ACTIVE_PLAYER: + qInfo() << "set active player event"; eventSetActivePlayer(event.GetExtension(Event_SetActivePlayer::ext), playerId, context); break; case GameEvent::SET_ACTIVE_PHASE: + qInfo() << "set active phase"; eventSetActivePhase(event.GetExtension(Event_SetActivePhase::ext), playerId, context); break; case GameEvent::REVERSE_TURN: + qInfo() << "reverse turn event"; eventReverseTurn(event.GetExtension(Event_ReverseTurn::ext), playerId, context); break; diff --git a/cockatrice/src/game/game_state.h b/cockatrice/src/game/game_state.h index 8621d4aa7..4699f89b4 100644 --- a/cockatrice/src/game/game_state.h +++ b/cockatrice/src/game/game_state.h @@ -199,6 +199,16 @@ public: return gameClosed; } + void onStartedChanged(bool _started) + { + if (_started) { + startGameTimer(); + emit gameStarted(_started); + } else { + emit gameStopped(); + } + } + void startGameTimer(); void setGameStateKnown(bool known)