mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-10 01:22:25 +01:00
Resolve issues with save before load/quit prompt
This commit is contained in:
@@ -21,14 +21,13 @@ var EmscriptenDeps = {
|
||||
return data;
|
||||
}
|
||||
},
|
||||
EmscriptenSaveGame: async (isTrackDesign, isAutosave, isSaveAs, type) => {
|
||||
EmscriptenSaveGame: async (isTrackDesign, isAutosave, type) => {
|
||||
isTrackDesign = isTrackDesign === 1;
|
||||
isAutosave = isAutosave === 1;
|
||||
isSaveAs = isSaveAs === 1;
|
||||
const data = SAVE.readFileData(isTrackDesign);
|
||||
try {
|
||||
if (window.showSaveFilePicker) {
|
||||
if (SAVE.filehandle === null || isSaveAs) {
|
||||
if (SAVE.filehandle === null) {
|
||||
SAVE.filehandle = null;
|
||||
const file = await showSaveFilePicker({
|
||||
id: "OpenRCT2-" + type,
|
||||
@@ -75,7 +74,6 @@ var EmscriptenDeps = {
|
||||
EmscriptenLoadGame: async (type) => {
|
||||
try {
|
||||
if (window.showOpenFilePicker) {
|
||||
SAVE.filehandle = null;
|
||||
const [file] = await showOpenFilePicker({
|
||||
id: "OpenRCT2-" + type,
|
||||
types: [
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#ifdef __EMSCRIPTEN__
|
||||
extern "C" {
|
||||
extern void EmscriptenLoadGame(LoadSaveType type);
|
||||
extern void EmscriptenSaveGame(bool isTrackDesign, bool isAutosave, bool saveAs, LoadSaveType type);
|
||||
extern void EmscriptenSaveGame(bool isTrackDesign, bool isAutosave, LoadSaveType type);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace OpenRCT2::Ui::FileBrowser
|
||||
if (action == LoadSaveAction::save)
|
||||
{
|
||||
Select("/save.park", action, type, trackDesign);
|
||||
EmscriptenSaveGame(type == LoadSaveType::track, false, true, type);
|
||||
EmscriptenSaveGame(type == LoadSaveType::track, false, type);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
extern "C" {
|
||||
extern void EmscriptenSaveGame(bool isTrackDesign, bool isAutosave, bool saveAs, LoadSaveType type);
|
||||
extern void EmscriptenSaveGame(bool isTrackDesign, bool isAutosave, LoadSaveType type);
|
||||
extern void EmscriptenResetAutosave();
|
||||
}
|
||||
#endif
|
||||
@@ -468,7 +468,7 @@ void SaveGame()
|
||||
#else
|
||||
const auto savePath = Path::WithExtension("save", ".park");
|
||||
SaveGameWithName(savePath);
|
||||
EmscriptenSaveGame(false, false, false, LoadSaveType::park);
|
||||
EmscriptenSaveGame(false, false, LoadSaveType::park);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -521,6 +521,9 @@ std::unique_ptr<Intent> CreateSaveGameAsIntent()
|
||||
|
||||
void SaveGameAs()
|
||||
{
|
||||
#ifdef __EMSCRIPTEN__
|
||||
EmscriptenResetAutosave();
|
||||
#endif
|
||||
auto intent = CreateSaveGameAsIntent();
|
||||
ContextOpenIntent(intent.get());
|
||||
}
|
||||
@@ -632,7 +635,7 @@ void GameAutosave()
|
||||
{
|
||||
const auto savePath = Path::WithExtension("save", ".park");
|
||||
SaveGameWithName(savePath);
|
||||
EmscriptenSaveGame(false, true, false, LoadSaveType::park);
|
||||
EmscriptenSaveGame(false, true, LoadSaveType::park);
|
||||
}
|
||||
#endif // __EMSCRIPTEN__
|
||||
|
||||
|
||||
Reference in New Issue
Block a user