summary refs log tree commit diff stats
path: root/src/game.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.h')
-rw-r--r--src/game.h80
1 files changed, 41 insertions, 39 deletions
diff --git a/src/game.h b/src/game.h index dd4b2f7..346d67e 100644 --- a/src/game.h +++ b/src/game.h
@@ -1,45 +1,47 @@
1#ifndef GAME_H 1#ifndef GAME_H_1014DDC9
2#define GAME_H 2#define GAME_H_1014DDC9
3 3
4#include <memory> 4#include "renderer.h"
5#include <functional> 5#include "entity_manager.h"
6#include <list> 6#include "system_manager.h"
7#include <map>
8#include "map.h"
9#include "world.h" 7#include "world.h"
10 8
11class Entity; 9class Game {
12struct GLFWwindow; 10public:
13 11
14struct Savefile { 12 Game(GLFWwindow* window);
15 const Map* map;
16 std::pair<double, double> position;
17};
18 13
19class Game { 14 void execute();
20 public: 15
21 Game(const char* maps); 16 inline EntityManager& getEntityManager()
22 void execute(GLFWwindow* window); 17 {
23 void loadMap(const Map& map, std::pair<double, double> position); 18 return entityManager_;
24 void detectCollision(Entity& collider, std::pair<double, double> old_position); 19 }
25 void saveGame(); 20
26 void schedule(double time, std::function<void ()> callback); 21 inline SystemManager& getSystemManager()
27 void playerDie(); 22 {
28 const World& getWorld() const; 23 return systemManager_;
29 24 }
30 private: 25
31 friend void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods); 26 inline const World& getWorld()
32 27 {
33 std::list<std::shared_ptr<Entity>> entities; 28 return world_;
34 std::list<std::shared_ptr<Entity>> nextEntities; 29 }
35 std::pair<double, double> nextPosition; 30
36 bool newWorld; 31 friend void key_callback(
37 std::shared_ptr<Entity> player; 32 GLFWwindow* window,
38 const Map* currentMap; 33 int key,
39 Savefile save; 34 int scancode,
40 std::list<std::pair<double, std::function<void ()>>> scheduled; 35 int action,
41 bool shouldQuit = false; 36 int mods);
42 World world; 37
38private:
39
40 GLFWwindow* const window_;
41 EntityManager entityManager_;
42 SystemManager systemManager_;
43 World world_;
44 bool shouldQuit_ = false;
43}; 45};
44 46
45#endif 47#endif /* end of include guard: GAME_H_1014DDC9 */