From 066295df2f19febefed30c1f2615b8ad0f6f03cc Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sat, 23 Oct 2021 09:18:13 +0900 Subject: [PATCH] Windows: Open folder chooser only if current folder has no ALD files --- src/win/dialog.c | 9 +++++++++ src/win/dialog.h | 1 + src/xsystem35.c | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/win/dialog.c b/src/win/dialog.c index 502b1a5..382ee61 100644 --- a/src/win/dialog.c +++ b/src/win/dialog.c @@ -40,6 +40,15 @@ static int CALLBACK select_game_callback(HWND hwnd, UINT uMsg, LPARAM lParam, LP return 0; } +boolean current_folder_has_ald(void) { + WIN32_FIND_DATA find_data; + HANDLE hFind = FindFirstFile("*.ALD", &find_data); + if (hFind == INVALID_HANDLE_VALUE) + return FALSE; + FindClose(hFind); + return TRUE; +} + boolean select_game_folder(void) { char title[256]; LoadString(GetModuleHandle(NULL), IDS_CHOOSE_GAME_FOLDER, title, sizeof(title)); diff --git a/src/win/dialog.h b/src/win/dialog.h index 97cfe9f..683fdd2 100644 --- a/src/win/dialog.h +++ b/src/win/dialog.h @@ -24,6 +24,7 @@ struct inputstring_param; struct inputnum_param; +boolean current_folder_has_ald(void); boolean select_game_folder(void); boolean input_string(struct inputstring_param *p); boolean input_number(struct inputnum_param *p); diff --git a/src/xsystem35.c b/src/xsystem35.c index b2e6d7d..535a5ee 100644 --- a/src/xsystem35.c +++ b/src/xsystem35.c @@ -486,7 +486,7 @@ int main(int argc, char **argv) { chdir(argv[2]); #endif #ifdef _WIN32 - if (argc == 1) { + if (argc == 1 && !current_folder_has_ald()) { if (!select_game_folder()) return 0; }