the timer only starts when an action is taken
This commit is contained in:
parent
a65787b674
commit
d71f5e2a2e
21
src/main.cpp
21
src/main.cpp
@ -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)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user