the timer only starts when an action is taken

This commit is contained in:
thorium1256 2025-06-22 14:41:50 +03:00
parent a65787b674
commit d71f5e2a2e

View File

@ -18,13 +18,15 @@ void startGame(Board &board)
refresh(); refresh();
bool gameRunning = true; bool gameRunning = true;
time_t startTime = time(nullptr); time_t startTime = 0;
int elapsedTime = 0; int elapsedTime = 0;
bool isPaused = false; bool isPaused = false;
time_t startPauseTime = 0; time_t startPauseTime = 0;
time_t pauseTime = 0; time_t pauseTime = 0;
time_t totalpausetime = 0; time_t totalpausetime = 0;
bool somethingHasBeenDone = false;
while (gameRunning) while (gameRunning)
{ {
@ -33,7 +35,7 @@ void startGame(Board &board)
{ {
gameRunning = false; gameRunning = false;
} }
if (!isPaused) if (!isPaused && somethingHasBeenDone)
elapsedTime = difftime(time(NULL), startTime) - totalpausetime; elapsedTime = difftime(time(NULL), startTime) - totalpausetime;
char flags[5]; char flags[5];
char tim[5]; char tim[5];
@ -154,9 +156,19 @@ void startGame(Board &board)
return; return;
break; break;
case 'z': case 'z':
if (!somethingHasBeenDone)
{
startTime = time(nullptr);
somethingHasBeenDone = true;
}
board.revealCellAt(cursorX, cursorY); board.revealCellAt(cursorX, cursorY);
break; break;
case 'x': case 'x':
if (!somethingHasBeenDone)
{
startTime = time(nullptr);
somethingHasBeenDone = true;
}
if (board.getCellStateAt(cursorX, cursorY) == Cell::State::Flagged) if (board.getCellStateAt(cursorX, cursorY) == Cell::State::Flagged)
{ {
minesLeft++; minesLeft++;
@ -185,6 +197,11 @@ void startGame(Board &board)
isPaused = !isPaused; isPaused = !isPaused;
break; break;
case 'c': case 'c':
if (!somethingHasBeenDone)
{
startTime = time(nullptr);
somethingHasBeenDone = true;
}
auto neighbors = board.getNeighborsOf(cursorX, cursorY); auto neighbors = board.getNeighborsOf(cursorX, cursorY);
for (const Cell &neighbor : neighbors) for (const Cell &neighbor : neighbors)
{ {