Skip to content

Commit

Permalink
FIX: Stopping player before starting scene transitions
Browse files Browse the repository at this point in the history
  • Loading branch information
afska committed Jan 16, 2024
1 parent f442a25 commit db947c5
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/scenes/AdminScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ bool AdminScene::selectOption(u32 selected, int direction) {
u8 value = SAVEFILE_read8(SRAM->adminSettings.navigationStyle);
SAVEFILE_write8(SRAM->adminSettings.navigationStyle,
change(value, 2, direction));
player_stop();
engine->transitionIntoScene(new AdminScene(engine, fs, true),
new PixelTransitionEffect());
return false;
Expand Down
4 changes: 3 additions & 1 deletion src/scenes/CalibrateScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,9 @@ void CalibrateScene::save() {
void CalibrateScene::goBack() {
if (onFinish != NULL)
onFinish();
else
else {
player_stop();
engine->transitionIntoScene(new SettingsScene(engine, fs),
new PixelTransitionEffect());
}
}
1 change: 1 addition & 0 deletions src/scenes/DeathMixScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ void DeathMixScene::confirm(u16 keys) {
SAVEFILE_write8(SRAM->state.isPlaying, true);
STATE_setup(songChart.song, songChart.chart);
deathMix->multiplier = GameState.mods.multiplier;
player_stop();
engine->transitionIntoScene(
new SongScene(engine, fs, songChart.song, songChart.chart, NULL,
std::move(deathMix)),
Expand Down
2 changes: 2 additions & 0 deletions src/scenes/MultiplayerLobbyScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,13 @@ void MultiplayerLobbyScene::refresh(int newMessageId) {
}

void MultiplayerLobbyScene::start() {
player_stop();
engine->transitionIntoScene(new SelectionScene(engine, fs),
new PixelTransitionEffect());
}

void MultiplayerLobbyScene::goBack() {
player_stop();
engine->transitionIntoScene(new StartScene(engine, fs),
new PixelTransitionEffect());
syncer->initialize(SyncMode::SYNC_MODE_OFFLINE);
Expand Down
2 changes: 2 additions & 0 deletions src/scenes/SelectionScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -558,13 +558,15 @@ bool SelectionScene::onNumericLevelChange(ArrowDirection selector,
if (selector == ArrowDirection::UPRIGHT && !isDouble) {
SAVEFILE_write8(SRAM->adminSettings.arcadeCharts,
ArcadeChartsOpts::DOUBLE);
player_stop();
engine->transitionIntoScene(
new SelectionScene(engine, fs, InitialLevel::FIRST_LEVEL),
new PixelTransitionEffect());
return true;
} else if (selector == ArrowDirection::UPLEFT && isDouble) {
SAVEFILE_write8(SRAM->adminSettings.arcadeCharts,
ArcadeChartsOpts::SINGLE);
player_stop();
engine->transitionIntoScene(
new SelectionScene(engine, fs, InitialLevel::LAST_LEVEL),
new PixelTransitionEffect());
Expand Down
2 changes: 2 additions & 0 deletions src/scenes/SettingsScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ bool SettingsScene::selectOption(u32 selected, int direction) {
if (direction != 0)
return true;

player_stop();
engine->transitionIntoScene(new CalibrateScene(engine, fs),
new PixelTransitionEffect());
return false;
Expand Down Expand Up @@ -122,6 +123,7 @@ bool SettingsScene::selectOption(u32 selected, int direction) {
if (direction != 0)
return true;

player_stop();
engine->transitionIntoScene(new StartScene(engine, fs),
new PixelTransitionEffect());
return false;
Expand Down

0 comments on commit db947c5

Please sign in to comment.