diff options
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
| diff --git a/src/main.cpp b/src/main.cpp index 2bd8f3c..ae64079 100644 --- a/src/main.cpp +++ b/src/main.cpp | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #include <vector> | 1 | #include <vector> |
| 2 | #include <fov.h> | 2 | #include <fov.h> |
| 3 | #include <iostream> | 3 | #include <iostream> |
| 4 | #include <memory> | ||
| 4 | #include "util.h" | 5 | #include "util.h" |
| 5 | #include "game.h" | 6 | #include "game.h" |
| 6 | #include "renderer.h" | 7 | #include "renderer.h" |
| @@ -21,7 +22,7 @@ int main(int, char**) | |||
| 21 | Renderer renderer; | 22 | Renderer renderer; |
| 22 | Muxer muxer; | 23 | Muxer muxer; |
| 23 | 24 | ||
| 24 | Game game(rng, muxer, renderer); | 25 | std::unique_ptr<Game> game = std::make_unique<Game>(rng, muxer, renderer); |
| 25 | 26 | ||
| 26 | constexpr int titleFadeLen = 2000; | 27 | constexpr int titleFadeLen = 2000; |
| 27 | bool doneTitles = false; | 28 | bool doneTitles = false; |
| @@ -32,22 +33,26 @@ int main(int, char**) | |||
| 32 | titleFade.start(titleFadeLen); | 33 | titleFade.start(titleFadeLen); |
| 33 | 34 | ||
| 34 | size_t lastTime = SDL_GetTicks(); | 35 | size_t lastTime = SDL_GetTicks(); |
| 35 | while (!game.quit) | 36 | while (!game->quit) |
| 36 | { | 37 | { |
| 37 | size_t currentTime = SDL_GetTicks(); | 38 | size_t currentTime = SDL_GetTicks(); |
| 38 | size_t frameTime = currentTime - lastTime; | 39 | size_t frameTime = currentTime - lastTime; |
| 39 | lastTime = currentTime; | 40 | lastTime = currentTime; |
| 40 | 41 | ||
| 41 | if (doneTitles) { | 42 | if (doneTitles) { |
| 42 | game.update(frameTime); | 43 | game->update(frameTime); |
| 43 | renderer.renderGame(game, true); | 44 | renderer.renderGame(*game, true); |
| 44 | muxer.update(); | 45 | muxer.update(); |
| 46 | |||
| 47 | if (game->losing == LoseState::Done) { | ||
| 48 | game = std::make_unique<Game>(rng, muxer, renderer); | ||
| 49 | } | ||
| 45 | } else { | 50 | } else { |
| 46 | SDL_Event e; | 51 | SDL_Event e; |
| 47 | 52 | ||
| 48 | while (SDL_PollEvent(&e)) { | 53 | while (SDL_PollEvent(&e)) { |
| 49 | if (e.type == SDL_QUIT) { | 54 | if (e.type == SDL_QUIT) { |
| 50 | game.quit = true; | 55 | game->quit = true; |
| 51 | } | 56 | } |
| 52 | } | 57 | } |
| 53 | 58 | ||
