mirror of https://github.com/OpenRCT2/OpenRCT2.git
make saved games and landscapes copy recursively
This commit is contained in:
parent
524ae55052
commit
0ce4d70e35
|
@ -72,6 +72,25 @@ static void openrct2_copy_files_over(const char *originalDirectory, const char *
|
|||
platform_file_copy(oldPath, newPath);
|
||||
}
|
||||
platform_enumerate_files_end(fileEnumHandle);
|
||||
|
||||
fileEnumHandle = platform_enumerate_directories_begin(originalDirectory);
|
||||
while (platform_enumerate_directories_next(fileEnumHandle, filter)) {
|
||||
strcpy(newPath, newDirectory);
|
||||
strcat(newPath, filter);
|
||||
|
||||
strcpy(oldPath, originalDirectory);
|
||||
ch = strchr(oldPath, '*');
|
||||
if (ch != NULL)
|
||||
*ch = 0;
|
||||
strcat(oldPath, filter);
|
||||
|
||||
if (!platform_ensure_directory_exists(newPath)) {
|
||||
log_error("Could not create directory %s.", newPath);
|
||||
return;
|
||||
}
|
||||
openrct2_copy_files_over(oldPath, newPath, extension);
|
||||
}
|
||||
platform_enumerate_directories_end(fileEnumHandle);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -92,7 +92,7 @@ int platform_enumerate_files_next(int handle, file_info *outFileInfo);
|
|||
void platform_enumerate_files_end(int handle);
|
||||
int platform_enumerate_directories_begin(const char *directory);
|
||||
int platform_enumerate_directories_next(int handle, char *path);
|
||||
int platform_enumerate_directories_end(int handle);
|
||||
void platform_enumerate_directories_end(int handle);
|
||||
int platform_file_copy(const char *srcPath, const char *dstPath);
|
||||
int platform_file_move(const char *srcPath, const char *dstPath);
|
||||
int platform_file_delete(const char *path);
|
||||
|
|
|
@ -234,8 +234,10 @@ int platform_enumerate_directories_next(int handle, char *path)
|
|||
}
|
||||
}
|
||||
|
||||
while ((enumFileInfo->data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0
|
||||
|| strchr(enumFileInfo->data.cFileName, '.') != NULL) {
|
||||
while (
|
||||
(enumFileInfo->data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0
|
||||
|| strchr(enumFileInfo->data.cFileName, '.') != NULL
|
||||
) {
|
||||
if (!FindNextFile(enumFileInfo->handle, &enumFileInfo->data)) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -246,7 +248,8 @@ int platform_enumerate_directories_next(int handle, char *path)
|
|||
strncat(path, "\\", MAX_PATH);
|
||||
return 1;
|
||||
}
|
||||
int platform_enumerate_directories_end(int handle)
|
||||
|
||||
void platform_enumerate_directories_end(int handle)
|
||||
{
|
||||
enumerate_file_info *enumFileInfo;
|
||||
|
||||
|
|
Loading…
Reference in New Issue