mirror of
https://git.eden-emu.dev/archive/citron
synced 2026-04-17 10:10:45 -04:00
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
This commit is contained in:
@@ -445,6 +445,12 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
|
|||||||
system->RegisterContentProvider(FileSys::ContentProviderUnionSlot::FrontendManual, provider.get());
|
system->RegisterContentProvider(FileSys::ContentProviderUnionSlot::FrontendManual, provider.get());
|
||||||
system->GetFileSystemController().CreateFactories(*vfs);
|
system->GetFileSystemController().CreateFactories(*vfs);
|
||||||
|
|
||||||
|
system->SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>());
|
||||||
|
system->RegisterContentProvider(FileSys::ContentProviderUnionSlot::FrontendManual, provider.get());
|
||||||
|
|
||||||
|
// 1. First, create the factories
|
||||||
|
system->GetFileSystemController().CreateFactories(*vfs);
|
||||||
|
|
||||||
autoloader_provider = std::make_unique<FileSys::ManualContentProvider>();
|
autoloader_provider = std::make_unique<FileSys::ManualContentProvider>();
|
||||||
system->RegisterContentProvider(FileSys::ContentProviderUnionSlot::Autoloader,
|
system->RegisterContentProvider(FileSys::ContentProviderUnionSlot::Autoloader,
|
||||||
autoloader_provider.get());
|
autoloader_provider.get());
|
||||||
@@ -5714,20 +5720,23 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This stops mirroring threads before we start saving configs.
|
||||||
|
if (emu_thread != nullptr) {
|
||||||
|
ShutdownGame();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now save settings
|
||||||
UpdateUISettings();
|
UpdateUISettings();
|
||||||
|
config->SaveAllValues();
|
||||||
|
|
||||||
game_list->SaveInterfaceLayout();
|
game_list->SaveInterfaceLayout();
|
||||||
UISettings::SaveWindowState();
|
UISettings::SaveWindowState();
|
||||||
hotkey_registry.SaveHotkeys();
|
hotkey_registry.SaveHotkeys();
|
||||||
|
|
||||||
// Unload controllers early
|
// Unload controllers
|
||||||
controller_dialog->UnloadController();
|
controller_dialog->UnloadController();
|
||||||
game_list->UnloadController();
|
game_list->UnloadController();
|
||||||
|
|
||||||
// Shutdown session if the emu thread is active...
|
|
||||||
if (emu_thread != nullptr) {
|
|
||||||
ShutdownGame();
|
|
||||||
}
|
|
||||||
|
|
||||||
render_window->close();
|
render_window->close();
|
||||||
multiplayer_state->Close();
|
multiplayer_state->Close();
|
||||||
system->HIDCore().UnloadInputDevices();
|
system->HIDCore().UnloadInputDevices();
|
||||||
|
|||||||
Reference in New Issue
Block a user