diff --git a/UnleashedRecomp/app.h b/UnleashedRecomp/app.h index dccb2519..9714d108 100644 --- a/UnleashedRecomp/app.h +++ b/UnleashedRecomp/app.h @@ -8,6 +8,7 @@ public: static inline bool s_isInit; static inline bool s_isMissingDLC; static inline bool s_isLoading; + static inline bool s_isSaving; static inline bool s_isWerehog; static inline bool s_isSaveDataCorrupt; diff --git a/UnleashedRecomp/patches/resident_patches.cpp b/UnleashedRecomp/patches/resident_patches.cpp index 791b4153..64a220d7 100644 --- a/UnleashedRecomp/patches/resident_patches.cpp +++ b/UnleashedRecomp/patches/resident_patches.cpp @@ -97,6 +97,8 @@ PPC_FUNC(sub_824E5170) __imp__sub_824E5170(ctx, base); + App::s_isSaving = pSaveIcon->m_IsVisible; + if (pSaveIcon->m_IsVisible) { App::s_isSaveDataCorrupt = false; diff --git a/UnleashedRecomp/ui/game_window.cpp b/UnleashedRecomp/ui/game_window.cpp index cc25ab61..2bd5ad10 100644 --- a/UnleashedRecomp/ui/game_window.cpp +++ b/UnleashedRecomp/ui/game_window.cpp @@ -34,8 +34,14 @@ int Window_OnSDLEvent(void*, SDL_Event* event) switch (event->type) { case SDL_QUIT: + { + if (App::s_isSaving) + break; + App::Exit(); + break; + } case SDL_KEYDOWN: {