aboutsummaryrefslogtreecommitdiff
path: root/src/games/Game.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/games/Game.hpp')
-rw-r--r--src/games/Game.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/games/Game.hpp b/src/games/Game.hpp
new file mode 100644
index 0000000..9af98b4
--- /dev/null
+++ b/src/games/Game.hpp
@@ -0,0 +1,26 @@
+#pragma once
+
+#include <basic/defs.hpp>
+#include <SDL3/SDL.h>
+#include <memory>
+#include <vector>
+#include <renderer/RenderGroup.hpp>
+
+struct SDL_Window;
+
+class Game {
+public:
+ enum GameType {
+ NO_GAME,
+ TETRIS,
+ SNAKE,
+ MINESWEEPER
+ };
+
+ Game() = default;
+ virtual ~Game();
+ static std::unique_ptr<Game> Select(GameType type);
+
+ virtual bool Update(std::vector<SDL_Event> &events, RenderGroup &render_group) = 0;
+};
+