@@ -120,6 +120,7 @@ void Level::setLevel(int levelNumber)
120120 switch (levelNumber)
121121 {
122122 case 1 :
123+ bgm1.replay ();
123124 backgroundPath = " assets/textures/stage1.png" ;
124125 topEdgeCollision = 225 ;
125126 enemyInfos = {
@@ -133,6 +134,7 @@ void Level::setLevel(int levelNumber)
133134 };
134135 break ;
135136 case 2 :
137+ bgm2.replay ();
136138 backgroundPath = " assets/textures/stage2.png" ;
137139 topEdgeCollision = 237 ;
138140 enemyInfos = {
@@ -145,6 +147,7 @@ void Level::setLevel(int levelNumber)
145147 };
146148 break ;
147149 case 3 :
150+ bgm3.replay ();
148151 backgroundPath = " assets/textures/stage3.png" ;
149152 topEdgeCollision = 210 ;
150153 enemyInfos = {
@@ -401,8 +404,6 @@ void Level::beginState(GameState newState, GameState oldState)
401404 bgm1.stop ();
402405 bgm2.stop ();
403406 bgm3.stop ();
404- // Reset coins
405- player.setCoins (0 );
406407 break ;
407408 case GameState::Playing:
408409 if (!isFirstLoad && oldState != GameState::Paused)
@@ -432,6 +433,8 @@ void Level::endState(GameState oldState,GameState newState)
432433 entities.clear ();
433434 }
434435 break ;
436+ case GameState::Paused:
437+ break ;
435438 case GameState::GameOver:
436439 enemies.clear ();
437440 break ;
@@ -651,8 +654,17 @@ void Level::doPaused(float deltaTime)
651654 setState (GameState::Playing);
652655
653656 if (Input::getKeyDown (KeyCode::Q))
657+ {
658+ // Reset all game state variables
659+ player.setPosition ({ SCREEN_WIDTH / 2 - 200 ,(SCREEN_HEIGHT - 10 ) });
660+ camera.setPosition (glm::vec2{0 ,0 });
661+ player.setHP (player.getMaxHP ());
662+ player.setMP (player.getMaxMP ());
663+ enemies.clear ();
664+ entities.clear ();
665+ loadLevelAssets ();
654666 setState (GameState::Menu);
655-
667+ }
656668}
657669
658670void Level::doGameOver ()
0 commit comments