diff options
Diffstat (limited to 'src/menu_system.cpp')
-rw-r--r-- | src/menu_system.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/menu_system.cpp b/src/menu_system.cpp index 468fa6e..6b03fca 100644 --- a/src/menu_system.cpp +++ b/src/menu_system.cpp | |||
@@ -44,7 +44,8 @@ void MenuSystem::openPauseMenu() { | |||
44 | MenuBuilder().Command("Resume Game") | 44 | MenuBuilder().Command("Resume Game") |
45 | .ActivationFunction([] (Game& game) { | 45 | .ActivationFunction([] (Game& game) { |
46 | game.getSystem<MenuSystem>().closePauseMenu(); | 46 | game.getSystem<MenuSystem>().closePauseMenu(); |
47 | }), | 47 | }) |
48 | .SkipSoundEffect(), | ||
48 | MenuBuilder().Command("Quit") | 49 | MenuBuilder().Command("Quit") |
49 | .ActivationFunction([] (Game& game) { | 50 | .ActivationFunction([] (Game& game) { |
50 | game.quit(); | 51 | game.quit(); |
@@ -54,7 +55,7 @@ void MenuSystem::openPauseMenu() { | |||
54 | if (game_.getMap().hasExitArea()) { | 55 | if (game_.getMap().hasExitArea()) { |
55 | builders.push_back(MenuBuilder().Command("Exit Area") | 56 | builders.push_back(MenuBuilder().Command("Exit Area") |
56 | .ActivationFunction([] (Game& game) { | 57 | .ActivationFunction([] (Game& game) { |
57 | game.getSystem<MenuSystem>().closePauseMenu(); | 58 | game.getSystem<MenuSystem>().closePauseMenu(false); |
58 | game.getSystem<ScriptSystem>().runScript(game.getMap().getName(), "exit_area"); | 59 | game.getSystem<ScriptSystem>().runScript(game.getMap().getName(), "exit_area"); |
59 | })); | 60 | })); |
60 | } | 61 | } |
@@ -62,11 +63,17 @@ void MenuSystem::openPauseMenu() { | |||
62 | menu_ = CreateMenu(builders); | 63 | menu_ = CreateMenu(builders); |
63 | 64 | ||
64 | cursor_ = 0; | 65 | cursor_ = 0; |
66 | |||
67 | game_.getMixer().playSound("../res/sfx/menu_open.wav"); | ||
65 | } | 68 | } |
66 | 69 | ||
67 | void MenuSystem::closePauseMenu() { | 70 | void MenuSystem::closePauseMenu(bool playSfx) { |
68 | pauseAnimation_.start(125, 0.0); | 71 | pauseAnimation_.start(125, 0.0); |
69 | openState_ = OpenState::Animating; | 72 | openState_ = OpenState::Animating; |
73 | |||
74 | if (playSfx) { | ||
75 | game_.getMixer().playSound("../res/sfx/menu_close.wav"); | ||
76 | } | ||
70 | } | 77 | } |
71 | 78 | ||
72 | void MenuSystem::pressedUp() { | 79 | void MenuSystem::pressedUp() { |
@@ -96,9 +103,13 @@ void MenuSystem::pressedDown() { | |||
96 | } | 103 | } |
97 | 104 | ||
98 | void MenuSystem::activateOption() { | 105 | void MenuSystem::activateOption() { |
99 | game_.getMixer().playSound("../res/sfx/menu_activate.wav"); | 106 | if (menu_[cursor_].type == MenuType::Command) { |
107 | if (menu_[cursor_].playSfx) { | ||
108 | game_.getMixer().playSound("../res/sfx/menu_activate.wav"); | ||
109 | } | ||
100 | 110 | ||
101 | if (menu_[cursor_].type == MenuType::Command && menu_[cursor_].activationFunction) { | 111 | if (menu_[cursor_].activationFunction) { |
102 | menu_[cursor_].activationFunction(game_); | 112 | menu_[cursor_].activationFunction(game_); |
113 | } | ||
103 | } | 114 | } |
104 | } | 115 | } |