FullscreenUI: Fix transition glitch when loading with no states

pull/3765/head
Stenzek 1 week ago
parent d9106576f9
commit 5dd559c15f
No known key found for this signature in database

@ -1708,18 +1708,10 @@ void FullscreenUI::DrawPauseMenu()
}
if (MenuButtonWithoutSummary(FSUI_ICONVSTR(ICON_PF_DOWNLOAD, "Load State"), has_game))
{
BeginTransition(TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME, []() {
OpenSaveStateSelector(VideoThread::GetGameSerial(), VideoThread::GetGamePath(), true);
});
}
OpenSaveStateSelector(VideoThread::GetGameSerial(), VideoThread::GetGamePath(), true);
if (MenuButtonWithoutSummary(FSUI_ICONVSTR(ICON_PF_DISKETTE, "Save State"), has_game))
{
BeginTransition(TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME, []() {
OpenSaveStateSelector(VideoThread::GetGameSerial(), VideoThread::GetGamePath(), false);
});
}
OpenSaveStateSelector(VideoThread::GetGameSerial(), VideoThread::GetGamePath(), false);
if (MenuButtonWithoutSummary(FSUI_ICONVSTR(ICON_PF_GAMEPAD_ALT, "Toggle Analog")))
{
@ -1960,7 +1952,8 @@ void FullscreenUI::OpenSaveStateSelector(const std::string& serial, const std::s
if (PopulateSaveStateListEntries(serial, std::move(undo_state), is_loading) > 0)
{
s_locals.save_state_selector_loading = is_loading;
SwitchToMainWindow(MainWindowType::SaveStateSelector);
BeginTransition(TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME,
[]() { SwitchToMainWindow(MainWindowType::SaveStateSelector); });
}
else
{
@ -1974,7 +1967,8 @@ void FullscreenUI::OpenSaveStateSelector(const std::string& serial, const std::s
if (PopulateSaveStateListEntries(serial, std::nullopt, is_loading) > 0)
{
s_locals.save_state_selector_loading = is_loading;
SwitchToMainWindow(MainWindowType::SaveStateSelector);
BeginTransition(TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME,
[]() { SwitchToMainWindow(MainWindowType::SaveStateSelector); });
}
else
{

@ -976,47 +976,44 @@ void FullscreenUI::HandleGameListOptions(const GameList::Entry* entry)
{FSUI_ICONSTR(ICON_FA_DELETE_LEFT, "Reset Play Time"), false},
};
OpenChoiceDialog(
entry->GetDisplayTitle(GameList::ShouldShowLocalizedTitles()), false, std::move(options),
[entry_path = entry->path, entry_serial = entry->serial](s32 index, const std::string& title,
bool checked) mutable {
switch (index)
{
case 0: // Open Game Properties
BeginTransition(TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME,
[entry_path = std::move(entry_path)]() { SwitchToGameSettingsForPath(entry_path); });
break;
case 1: // Open Containing Directory
ExitFullscreenAndOpenURL(Path::CreateFileURL(Path::GetDirectory(entry_path)));
break;
case 2: // Set Cover Image
DoSetCoverImage(std::move(entry_path));
break;
case 3: // Resume Game
DoStartPath(entry_path, System::GetGameSaveStatePath(entry_serial, -1));
break;
case 4: // Load State
BeginTransition(TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME,
[entry_serial = std::move(entry_serial), entry_path = std::move(entry_path)]() {
OpenSaveStateSelector(entry_serial, entry_path, true);
});
break;
case 5: // Default Boot
DoStartPath(entry_path);
break;
case 6: // Fast Boot
DoStartPath(entry_path, {}, true);
break;
case 7: // Slow Boot
DoStartPath(entry_path, {}, false);
break;
case 8: // Reset Play Time
GameList::ClearPlayedTimeForSerial(entry_serial);
break;
default:
break;
}
});
OpenChoiceDialog(entry->GetDisplayTitle(GameList::ShouldShowLocalizedTitles()), false, std::move(options),
[entry_path = entry->path, entry_serial = entry->serial](s32 index, const std::string& title,
bool checked) mutable {
switch (index)
{
case 0: // Open Game Properties
BeginTransition(
TransitionEffect::ZoomIn, DEFAULT_TRANSITION_TIME,
[entry_path = std::move(entry_path)]() { SwitchToGameSettingsForPath(entry_path); });
break;
case 1: // Open Containing Directory
ExitFullscreenAndOpenURL(Path::CreateFileURL(Path::GetDirectory(entry_path)));
break;
case 2: // Set Cover Image
DoSetCoverImage(std::move(entry_path));
break;
case 3: // Resume Game
DoStartPath(entry_path, System::GetGameSaveStatePath(entry_serial, -1));
break;
case 4: // Load State
OpenSaveStateSelector(entry_serial, entry_path, true);
break;
case 5: // Default Boot
DoStartPath(entry_path);
break;
case 6: // Fast Boot
DoStartPath(entry_path, {}, true);
break;
case 7: // Slow Boot
DoStartPath(entry_path, {}, false);
break;
case 8: // Reset Play Time
GameList::ClearPlayedTimeForSerial(entry_serial);
break;
default:
break;
}
});
}
else
{

Loading…
Cancel
Save