]> git.tdb.fi Git - libs/game.git/blob - source/game/director.h
24ef6341caaf7e93e784ccc7bde1176621ef7e55
[libs/game.git] / source / game / director.h
1 #ifndef MSP_GAME_DIRECTOR_H_
2 #define MSP_GAME_DIRECTOR_H_
3
4 #include <memory>
5 #include <vector>
6 #include <msp/time/timedelta.h>
7 #include <msp/time/timestamp.h>
8
9 namespace Msp::Game {
10
11 class Stage;
12
13 class Director
14 {
15 private:
16         std::vector<std::unique_ptr<Stage>> stages;
17         Time::TimeStamp last_tick;
18         Time::TimeDelta stepsize = Time::sec/60;
19         Time::TimeDelta backlog;
20         unsigned max_steps_per_frame = 5;
21         unsigned max_backlog_steps = 600;
22
23 public:
24         Stage &create_stage();
25
26         void tick();
27 };
28
29 } // namespace Msp::Game
30
31 #endif