diff options
Diffstat (limited to 'src/menu_system.cpp')
-rw-r--r-- | src/menu_system.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/menu_system.cpp b/src/menu_system.cpp index 34616a6..468fa6e 100644 --- a/src/menu_system.cpp +++ b/src/menu_system.cpp | |||
@@ -1,5 +1,6 @@ | |||
1 | #include "menu_system.h" | 1 | #include "menu_system.h" |
2 | #include "game.h" | 2 | #include "game.h" |
3 | #include "script_system.h" | ||
3 | 4 | ||
4 | void MenuSystem::tick(double dt) { | 5 | void MenuSystem::tick(double dt) { |
5 | pauseAnimation_.tick(dt); | 6 | pauseAnimation_.tick(dt); |
@@ -38,7 +39,7 @@ void MenuSystem::openPauseMenu() { | |||
38 | 39 | ||
39 | game_.pauseGameplay(); | 40 | game_.pauseGameplay(); |
40 | 41 | ||
41 | menu_ = CreateMenu({ | 42 | std::vector<MenuBuilder> builders = { |
42 | MenuBuilder().Command("Settings"), | 43 | MenuBuilder().Command("Settings"), |
43 | MenuBuilder().Command("Resume Game") | 44 | MenuBuilder().Command("Resume Game") |
44 | .ActivationFunction([] (Game& game) { | 45 | .ActivationFunction([] (Game& game) { |
@@ -48,7 +49,17 @@ void MenuSystem::openPauseMenu() { | |||
48 | .ActivationFunction([] (Game& game) { | 49 | .ActivationFunction([] (Game& game) { |
49 | game.quit(); | 50 | game.quit(); |
50 | }) | 51 | }) |
51 | }); | 52 | }; |
53 | |||
54 | if (game_.getMap().hasExitArea()) { | ||
55 | builders.push_back(MenuBuilder().Command("Exit Area") | ||
56 | .ActivationFunction([] (Game& game) { | ||
57 | game.getSystem<MenuSystem>().closePauseMenu(); | ||
58 | game.getSystem<ScriptSystem>().runScript(game.getMap().getName(), "exit_area"); | ||
59 | })); | ||
60 | } | ||
61 | |||
62 | menu_ = CreateMenu(builders); | ||
52 | 63 | ||
53 | cursor_ = 0; | 64 | cursor_ = 0; |
54 | } | 65 | } |