From d71f5e2a2e17dc4a4f4407bd47a7b773b7d4252d Mon Sep 17 00:00:00 2001 From: thorium1256 Date: Sun, 22 Jun 2025 14:41:50 +0300 Subject: [PATCH] the timer only starts when an action is taken --- src/main.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4b25f64..64483de 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,13 +18,15 @@ void startGame(Board &board) refresh(); bool gameRunning = true; - time_t startTime = time(nullptr); + time_t startTime = 0; int elapsedTime = 0; bool isPaused = false; time_t startPauseTime = 0; time_t pauseTime = 0; time_t totalpausetime = 0; + bool somethingHasBeenDone = false; + while (gameRunning) { @@ -33,7 +35,7 @@ void startGame(Board &board) { gameRunning = false; } - if (!isPaused) + if (!isPaused && somethingHasBeenDone) elapsedTime = difftime(time(NULL), startTime) - totalpausetime; char flags[5]; char tim[5]; @@ -154,9 +156,19 @@ void startGame(Board &board) return; break; case 'z': + if (!somethingHasBeenDone) + { + startTime = time(nullptr); + somethingHasBeenDone = true; + } board.revealCellAt(cursorX, cursorY); break; case 'x': + if (!somethingHasBeenDone) + { + startTime = time(nullptr); + somethingHasBeenDone = true; + } if (board.getCellStateAt(cursorX, cursorY) == Cell::State::Flagged) { minesLeft++; @@ -185,6 +197,11 @@ void startGame(Board &board) isPaused = !isPaused; break; case 'c': + if (!somethingHasBeenDone) + { + startTime = time(nullptr); + somethingHasBeenDone = true; + } auto neighbors = board.getNeighborsOf(cursorX, cursorY); for (const Cell &neighbor : neighbors) {