diff --git a/include/cpp3ds/Simulator/Simulator.hpp b/include/cpp3ds/Simulator/Simulator.hpp index 0222920..205585b 100644 --- a/include/cpp3ds/Simulator/Simulator.hpp +++ b/include/cpp3ds/Simulator/Simulator.hpp @@ -33,6 +33,8 @@ namespace cpp3ds { sf::Texture pausedFrameTexture; sf::Sprite pausedFrame; + SimulatorState state = SIM_STOPPED; + void runGame(); void checkThreadState(); void saveScreenshot(); @@ -48,8 +50,7 @@ namespace cpp3ds { public: SFMLWidget *screen; - - SimulatorState state = SIM_STOPPED; + bool isThreadRunning = false; Simulator(Glib::RefPtr app, Glib::RefPtr builder); @@ -60,6 +61,7 @@ namespace cpp3ds { void stop(); float get_slider3d(); + SimulatorState getState(){ return state; } }; // Simulator global to be accessed in-game diff --git a/src/sim3ds/Window/Display.cpp b/src/sim3ds/Window/Display.cpp index 824beb7..2d8f760 100644 --- a/src/sim3ds/Window/Display.cpp +++ b/src/sim3ds/Window/Display.cpp @@ -6,7 +6,7 @@ namespace cpp3ds { void display(){ _simulator->screen->display(); _simulator->screen->renderWindow.clear(); - while (_simulator->state == SIM_PAUSED) + while (_simulator->getState() == SIM_PAUSED) sf:sleep(sf::milliseconds(100)); } diff --git a/src/sim3ds/Window/Scene.cpp b/src/sim3ds/Window/Scene.cpp index 58e9cdf..abc2b7f 100644 --- a/src/sim3ds/Window/Scene.cpp +++ b/src/sim3ds/Window/Scene.cpp @@ -13,7 +13,7 @@ namespace cpp3ds { sf::Clock clock; sf::Time deltaTime; while (ret == 0) { - if (_simulator->state == SIM_STOPPED) + if (_simulator->getState() == SIM_STOPPED) return -1; render(); if (useDisplay)