mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-06-08 20:04:55 +00:00
Fixing #228
This commit is contained in:
@@ -31,6 +31,9 @@ namespace BBM
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//! @brief The scene before the actual one. Used for back buttons.
|
||||||
|
SceneID previousScene = SplashScreen;
|
||||||
|
|
||||||
//! @brief The currently loaded scene
|
//! @brief The currently loaded scene
|
||||||
SceneID currentScene = SplashScreen;
|
SceneID currentScene = SplashScreen;
|
||||||
|
|
||||||
@@ -38,6 +41,6 @@ namespace BBM
|
|||||||
SceneID nextScene = SplashScreen;
|
SceneID nextScene = SplashScreen;
|
||||||
|
|
||||||
//! @brief The list of loaded scenes.
|
//! @brief The list of loaded scenes.
|
||||||
std::unordered_map<SceneID, std::shared_ptr<WAL::Scene>> _loadedScenes = {};
|
std::unordered_map<SceneID, std::shared_ptr<WAL::Scene>> loadedScenes = {};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
+13
-12
@@ -74,13 +74,14 @@ namespace BBM
|
|||||||
if (gameState.nextScene == gameState.currentScene)
|
if (gameState.nextScene == gameState.currentScene)
|
||||||
return;
|
return;
|
||||||
if (gameState.nextScene == GameState::SceneID::ScoreScene) {
|
if (gameState.nextScene == GameState::SceneID::ScoreScene) {
|
||||||
gameState._loadedScenes[GameState::SceneID::ScoreScene] = Runner::loadScoreScene(*engine.getScene());
|
gameState.loadedScenes[GameState::SceneID::ScoreScene] = Runner::loadScoreScene(*engine.getScene());
|
||||||
for (auto &[_, component]: engine.getScene()->view<ControllableComponent>()) {
|
for (auto &[_, component]: engine.getScene()->view<ControllableComponent>()) {
|
||||||
component.fastClick = false;
|
component.fastClick = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gameState._loadedScenes[gameState.currentScene] = engine.getScene();
|
gameState.loadedScenes[gameState.currentScene] = engine.getScene();
|
||||||
engine.changeScene(gameState._loadedScenes[gameState.nextScene]);
|
engine.changeScene(gameState.loadedScenes[gameState.nextScene]);
|
||||||
|
gameState.previousScene = gameState.currentScene;
|
||||||
gameState.currentScene = gameState.nextScene;
|
gameState.currentScene = gameState.nextScene;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,14 +151,14 @@ namespace BBM
|
|||||||
|
|
||||||
void Runner::loadScenes()
|
void Runner::loadScenes()
|
||||||
{
|
{
|
||||||
gameState._loadedScenes[GameState::SceneID::MainMenuScene] = loadMainMenuScene();
|
gameState.loadedScenes[GameState::SceneID::MainMenuScene] = loadMainMenuScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::SettingsScene] = loadSettingsMenuScene();
|
gameState.loadedScenes[GameState::SceneID::SettingsScene] = loadSettingsMenuScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::PauseMenuScene] = loadPauseMenuScene();
|
gameState.loadedScenes[GameState::SceneID::PauseMenuScene] = loadPauseMenuScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::TitleScreenScene] = loadTitleScreenScene();
|
gameState.loadedScenes[GameState::SceneID::TitleScreenScene] = loadTitleScreenScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::CreditScene] = loadCreditScene();
|
gameState.loadedScenes[GameState::SceneID::CreditScene] = loadCreditScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::SplashScreen] = loadSplashScreenScene();
|
gameState.loadedScenes[GameState::SceneID::SplashScreen] = loadSplashScreenScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::LobbyScene] = loadLobbyScene();
|
gameState.loadedScenes[GameState::SceneID::LobbyScene] = loadLobbyScene();
|
||||||
gameState._loadedScenes[GameState::SceneID::HowToPlayScene] = loadHowToPlayScene();
|
gameState.loadedScenes[GameState::SceneID::HowToPlayScene] = loadHowToPlayScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
int Runner::run()
|
int Runner::run()
|
||||||
@@ -167,7 +168,7 @@ namespace BBM
|
|||||||
Runner::addSystems(wal);
|
Runner::addSystems(wal);
|
||||||
Runner::enableRaylib(wal);
|
Runner::enableRaylib(wal);
|
||||||
Runner::loadScenes();
|
Runner::loadScenes();
|
||||||
wal.changeScene(Runner::gameState._loadedScenes[GameState::SceneID::SplashScreen]);
|
wal.changeScene(Runner::gameState.loadedScenes[GameState::SceneID::SplashScreen]);
|
||||||
wal.run<GameState>(Runner::updateState, Runner::gameState);
|
wal.run<GameState>(Runner::updateState, Runner::gameState);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ namespace BBM
|
|||||||
.addComponent<Drawable2DComponent, RAY::Texture>("assets/buttons/button_back.png")
|
.addComponent<Drawable2DComponent, RAY::Texture>("assets/buttons/button_back.png")
|
||||||
.addComponent<OnClickComponent>([](WAL::Entity &entity, WAL::Wal &)
|
.addComponent<OnClickComponent>([](WAL::Entity &entity, WAL::Wal &)
|
||||||
{
|
{
|
||||||
gameState.nextScene = BBM::GameState::SceneID::MainMenuScene;
|
gameState.nextScene = gameState.previousScene;
|
||||||
})
|
})
|
||||||
.addComponent<OnIdleComponent>([](WAL::Entity &entity, WAL::Wal &)
|
.addComponent<OnIdleComponent>([](WAL::Entity &entity, WAL::Wal &)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ namespace BBM
|
|||||||
});
|
});
|
||||||
playerCount++;
|
playerCount++;
|
||||||
}
|
}
|
||||||
Runner::gameState._loadedScenes[GameState::SceneID::GameScene] = scene;
|
Runner::gameState.loadedScenes[GameState::SceneID::GameScene] = scene;
|
||||||
Runner::gameState.nextScene = BBM::GameState::SceneID::GameScene;
|
Runner::gameState.nextScene = BBM::GameState::SceneID::GameScene;
|
||||||
wal.getSystem<LobbySystem>().unloadLobby();
|
wal.getSystem<LobbySystem>().unloadLobby();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user