merge fix

This commit is contained in:
Bernardo Magri
2025-03-11 10:41:58 +00:00
4 changed files with 17 additions and 15 deletions

View File

@@ -57,14 +57,13 @@ void MineField::initBombs(int x, int y) {
startTimer();
//init the timer to zero and start the timer thread
// m_time = 0;
//timerThread = std::thread(&MineField::timerTick, this);
//timerThread.detach(); //not sure if this is okay (better to call join() when I set the condition to stop the thread)
}
bool MineField::openCell(int x, int y) {
if(isBomb(x, y)) {
m_exploded = true;
timerThread.join();
gameOverSignal.emit();
stopTimer();
return false;

View File

@@ -56,5 +56,5 @@ public:
sigc::signal<void(int)> remainingFlagsSignal;
sigc::signal<void(void)> gameWonSignal;
sigc::signal<void(void)> gameOverSignal;
sigc::signal<void(unsigned int)> timerSignal;
sigc::signal<void(size_t)> timerSignal;
};

View File

@@ -163,20 +163,22 @@ void MainWindow::gameOver() {
//std::cout << "Signal gameOver emmited\n";
}
bool MainWindow::updateClockLabel()
void MainWindow::updateClockLabel(size_t time)
{
++m_elapsedTime;
//++m_elapsedTime;
int deciseconds = m_elapsedTime % 10;
int seconds = (m_elapsedTime / 10) % 60;
int minutes = (m_elapsedTime /600) % 60;
//int deciseconds = m_elapsedTime % 10;
//int seconds = (m_elapsedTime / 10) % 60;
//int minutes = (m_elapsedTime /600) % 60;
Glib::ustring msg = Glib::ustring::compose("Elapsed time: %1:%2.%3", \
Glib::ustring::format(std::setfill(L'0'), std::setw(2), minutes), \
Glib::ustring::format(std::setfill(L'0'), std::setw(2), seconds), \
Glib::ustring::format(std::setfill(L'0'), std::setw(1), deciseconds));
Glib::ustring msg = Glib::ustring::compose("Elapsed time: %1", time);
// Glib::ustring msg = Glib::ustring::compose("Elapsed time: %1:%2.%3", \
// Glib::ustring::format(std::setfill(L'0'), std::setw(2), minutes), \
// Glib::ustring::format(std::setfill(L'0'), std::setw(2), seconds), \
// Glib::ustring::format(std::setfill(L'0'), std::setw(1), deciseconds));
clockLabel.set_label(msg);
return true;
//return true;
}
MainWindow::MainWindow()
@@ -273,9 +275,10 @@ MainWindow::MainWindow()
//optionButton.set_icon_name("open-menu");
field.timerSignal.connect(sigc::bind(sigc::mem_fun(*this, &MainWindow::updateClockLabel)));
//if (clockSignalConn.connected()) clockSignalConn.disconnect();
//elapsedTime = 0;
clockSignalConn = Glib::signal_timeout().connect(sigc::mem_fun(*this, &MainWindow::updateClockLabel), 100);
//clockSignalConn = Glib::signal_timeout().connect(sigc::mem_fun(*this, &MainWindow::updateClockLabel), 100);
//}
//create the minefield
//field = new MineField(COLS, MINES);

View File

@@ -32,7 +32,7 @@ class MainWindow : public Gtk::Window
void updateCell(int x, int y);
void openBombs();
void updateFlagsLabel(int flags);
bool updateClockLabel();
void updateClockLabel(size_t time);
void gameWon();
void gameOver();
sigc::connection clockSignalConn;