Procházet zdrojové kódy

Engine: add quit function
SFML: handle window close event

Streetwalrus Einstein před 10 roky
rodič
revize
2b5b455eb8
3 změnil soubory, kde provedl 21 přidání a 1 odebrání
  1. 5 0
      platform/sfml/Graphics.cpp
  2. 7 1
      src/engine/main.cpp
  3. 9 0
      src/engine/main.h

+ 5 - 0
platform/sfml/Graphics.cpp

@@ -1,4 +1,5 @@
 #include "Graphics.h"
+#include "engine/main.h"
 #include <SFML/Graphics.hpp>
 #include "utility/misc.h"
 
@@ -34,6 +35,10 @@ void GRAPHICS::frame_end()
 
     while(window.pollEvent(event))
     {
+        if (event.type == sf::Event::Closed)
+        {
+            WalrusRPG::quit();
+        }
     }
 
     window.setView(view = sf::View(sf::FloatRect(0, 0, winsize.x, winsize.y)));

+ 7 - 1
src/engine/main.cpp

@@ -1,3 +1,4 @@
+#include "main.h"
 #include "StateMachine.h"
 #include "Timing.h"
 #include "Graphics.h"
@@ -79,8 +80,13 @@ int main(int argc, char *argv[])
     StateMachine machine(new States::StateMap(0, 0, map));
     machine.run();
 
+    quit();
+}
+
+void WalrusRPG::quit()
+{
     Quirks::deinit();
     Timing::deinit();
     Graphics::deinit();
-    return 0;
+    exit(0);
 }

+ 9 - 0
src/engine/main.h

@@ -0,0 +1,9 @@
+#ifndef INCLUDE_MAIN_H
+#define INCLUDE_MAIN_H
+
+namespace WalrusRPG
+{
+    void quit();
+}
+
+#endif