diff --git a/src/config.c b/src/config.c index 36a16999e3..6f3c74ab3a 100644 --- a/src/config.c +++ b/src/config.c @@ -713,7 +713,7 @@ static bool config_find_rct2_path(char *resultPath) }; for (i = 0; i < countof(searchLocations); i++) { - if (platform_directory_exists(searchLocations[i]) ) { + if (platform_original_game_data_exists(searchLocations[i])) { strcpy(resultPath, searchLocations[i]); return true; } diff --git a/src/platform/platform.h b/src/platform/platform.h index ca7ad50dfd..2b103f9955 100644 --- a/src/platform/platform.h +++ b/src/platform/platform.h @@ -87,6 +87,7 @@ void platform_stop_text_input(); char platform_get_path_separator(); int platform_file_exists(const char *path); int platform_directory_exists(const char *path); +int platform_original_game_data_exists(const char *path); time_t platform_file_get_modified_time(char* path); int platform_ensure_directory_exists(const char *path); int platform_lock_single_instance(); diff --git a/src/platform/windows.c b/src/platform/windows.c index 558fa62918..5cc61d780d 100644 --- a/src/platform/windows.c +++ b/src/platform/windows.c @@ -101,6 +101,14 @@ int platform_directory_exists(const char *path) return dwAttrib != INVALID_FILE_ATTRIBUTES && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY); } +int platform_original_game_data_exists(const char *path) +{ + char checkPath[MAX_PATH]; + sprintf(checkPath, "%s%c%s%c%s", path, platform_get_path_separator(), "data", platform_get_path_separator(), "g1.dat"); + DWORD dwAttrib = GetFileAttributes(checkPath); + return dwAttrib != INVALID_FILE_ATTRIBUTES; +} + int platform_ensure_directory_exists(const char *path) { if (platform_directory_exists(path))