99#include " ../../../build/soundbank.h"
1010#include " ../enemies/damsel.h"
1111#include " ../animations/smooch.h"
12+ #include " ../../sound/sound_utils.h"
1213
1314//
1415// Created by xdbeef on 27.05.18.
@@ -33,7 +34,6 @@ void GameState::reset_main_dude() {
3334void GameState::start_new_game () {
3435
3536 reset_main_dude ();
36-
3737 global::hud->hearts = 4 ;
3838 global::hud->ropes = 4 ;
3939 global::hud->bombs = 4 ;
@@ -45,6 +45,7 @@ void GameState::start_new_game() {
4545
4646void GameState::start_main_menu () {
4747
48+ global::main_dude->climbing = false ;
4849 global::camera->follow_main_dude = false ;
4950 global::game_state->in_main_menu = true ;
5051 global::game_state->levels_transition_screen = false ;
@@ -134,9 +135,12 @@ void GameState::handle_changing_screens() {
134135
135136 // next level or starting game
136137
137- mmEffectCancel (global::menu_music_handler);
138- mmEffectCancel (global::cave_music_handler);
139- global::cave_music_handler = mmEffect (SFX_MCAVE);
138+ if (global::game_state->in_main_menu ) {
139+ sound::stop_menu_music ();
140+ sound::start_cave_music ();
141+ } else
142+ sound::stop_cave_music ();
143+
140144
141145 global::level_generator->generate_frame ();
142146 global::level_generator->generate_rooms ();
@@ -150,8 +154,9 @@ void GameState::handle_changing_screens() {
150154
151155 global::game_state->robbed_killed_shopkeeper = false ;
152156
153- mmEffectCancel (global::cave_music_handler);
154- global::menu_music_handler = mmEffect (SFX_MTITLE);
157+ sound::stop_cave_music ();
158+ sound::start_menu_music ();
159+
155160 global::level_generator->generate_splash_screen (SplashScreenType::MAIN_MENU_UPPER);
156161 global::level_generator->generate_splash_screen (SplashScreenType::MAIN_MENU_LOWER);
157162// set_position_to(MapTileType::ENTRANCE);
@@ -196,6 +201,8 @@ void GameState::handle_changing_screens() {
196201
197202 if (global::game_state->in_main_menu ) {
198203 global::game_state->start_new_game ();
204+ } else {
205+ sound::start_cave_music ();
199206 }
200207
201208 global::game_state->start_next_level ();
@@ -204,14 +211,14 @@ void GameState::handle_changing_screens() {
204211
205212 if (global::game_state->scores_screen )
206213 global::game_state->start_main_menu ();
207- else if (global::main_dude->dead )
214+ else if (global::main_dude->dead ) {
208215 global::game_state->start_scores ();
209- else
216+ } else
210217 global::game_state->start_level_transition_screen ();
211218 }
212219
213220 global::main_dude->exiting_level = false ;
214- mmEffectCancel (SFX_MCAVE);
221+
215222
216223 } else if (global::main_dude->animFrame >= 16 && global::game_state->splash_screen ) {
217224
0 commit comments