diff --git a/desktop_version/src/FileSystemUtils.cpp b/desktop_version/src/FileSystemUtils.cpp index 833a3dea..64651ca1 100644 --- a/desktop_version/src/FileSystemUtils.cpp +++ b/desktop_version/src/FileSystemUtils.cpp @@ -25,13 +25,9 @@ int mkdir(char* path, int mode) MultiByteToWideChar(CP_UTF8, 0, path, -1, utf16_path, MAX_PATH); return CreateDirectoryW(utf16_path, NULL); } -#define VNEEDS_MIGRATION (mkdirResult != 0) #elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) || defined(__DragonFly__) -#include -#include #include #include -#define VNEEDS_MIGRATION (mkdirResult == 0) #define MAX_PATH PATH_MAX #endif @@ -42,8 +38,6 @@ static char assetDir[MAX_PATH] = {'\0'}; static char virtualMountPath[MAX_PATH] = {'\0'}; static int PLATFORM_getOSDirectory(char* output, const size_t output_size); -static void PLATFORM_migrateSaveData(char* output); -static void PLATFORM_copyFile(const char *oldLocation, const char *newLocation); static void* bridged_malloc(PHYSFS_uint64 size) { @@ -66,7 +60,6 @@ static const PHYSFS_Allocator allocator = { int FILESYSTEM_init(char *argvZero, char* baseDir, char *assetsPath) { char output[MAX_PATH]; - int mkdirResult; int retval; const char* pathSep = PHYSFS_getDirSeparator(); char* basePath; @@ -136,15 +129,9 @@ int FILESYSTEM_init(char *argvZero, char* baseDir, char *assetsPath) "levels", pathSep ); - mkdirResult = mkdir(levelDir, 0777); + mkdir(levelDir, 0777); printf("Level directory: %s\n", levelDir); - /* We didn't exist until now, migrate files! */ - if (VNEEDS_MIGRATION) - { - PLATFORM_migrateSaveData(output); - } - basePath = SDL_GetBasePath(); if (basePath == NULL) @@ -1000,173 +987,6 @@ static int PLATFORM_getOSDirectory(char* output, const size_t output_size) #endif } -static void PLATFORM_migrateSaveData(char* output) -{ - char oldLocation[MAX_PATH]; - char newLocation[MAX_PATH]; - char oldDirectory[MAX_PATH]; -#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) || defined(__DragonFly__) - DIR *dir = NULL; - struct dirent *de = NULL; - DIR *subDir = NULL; - struct dirent *subDe = NULL; - char subDirLocation[MAX_PATH]; - const char *homeDir = SDL_getenv("HOME"); - if (homeDir == NULL) - { - /* Uhh, I don't want to get near this. -flibit */ - return; - } - const char oldPath[] = - #if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) || defined(__DragonFly__) - "/.vvvvvv/"; - #elif defined(__APPLE__) - "/Documents/VVVVVV/"; - #endif - SDL_snprintf(oldDirectory, sizeof(oldDirectory), "%s%s", homeDir, oldPath); - dir = opendir(oldDirectory); - if (!dir) - { - printf("Could not find directory %s\n", oldDirectory); - return; - } - - printf("Migrating old savedata to new location...\n"); - for (de = readdir(dir); de != NULL; de = readdir(dir)) - { - if ( SDL_strcmp(de->d_name, "..") == 0 || - SDL_strcmp(de->d_name, ".") == 0 ) - { - continue; - } - #define COPY_SAVEFILE(name) \ - else if (SDL_strcmp(de->d_name, name) == 0) \ - { \ - SDL_snprintf(oldLocation, sizeof(oldLocation), "%s%s", oldDirectory, name); \ - SDL_snprintf(newLocation, sizeof(newLocation), "%ssaves/%s", output, name); \ - PLATFORM_copyFile(oldLocation, newLocation); \ - } - COPY_SAVEFILE("unlock.vvv") - COPY_SAVEFILE("tsave.vvv") - COPY_SAVEFILE("qsave.vvv") - #undef COPY_SAVEFILE - else if (SDL_strstr(de->d_name, ".vvvvvv.vvv") != NULL) - { - SDL_snprintf(oldLocation, sizeof(oldLocation), "%s%s", oldDirectory, de->d_name); - SDL_snprintf(newLocation, sizeof(newLocation), "%ssaves/%s", output, de->d_name); - PLATFORM_copyFile(oldLocation, newLocation); - } - else if (SDL_strstr(de->d_name, ".vvvvvv") != NULL) - { - SDL_snprintf(oldLocation, sizeof(oldLocation), "%s%s", oldDirectory, de->d_name); - SDL_snprintf(newLocation, sizeof(newLocation), "%slevels/%s", output, de->d_name); - PLATFORM_copyFile(oldLocation, newLocation); - } - else if (SDL_strcmp(de->d_name, "Saves") == 0) - { - SDL_snprintf(subDirLocation, sizeof(subDirLocation), "%sSaves/", oldDirectory); - subDir = opendir(subDirLocation); - if (!subDir) - { - printf("Could not open Saves/ subdir!\n"); - continue; - } - for ( - subDe = readdir(subDir); - subDe != NULL; - subDe = readdir(subDir) - ) { - #define COPY_SAVEFILE(name) \ - (SDL_strcmp(subDe->d_name, name) == 0) \ - { \ - SDL_snprintf(oldLocation, sizeof(oldLocation), "%s%s", subDirLocation, name); \ - SDL_snprintf(newLocation, sizeof(newLocation), "%ssaves/%s", output, name); \ - PLATFORM_copyFile(oldLocation, newLocation); \ - } - if COPY_SAVEFILE("unlock.vvv") - else if COPY_SAVEFILE("tsave.vvv") - else if COPY_SAVEFILE("qsave.vvv") - #undef COPY_SAVEFILE - } - } - } -#elif defined(_WIN32) - WIN32_FIND_DATA findHandle; - HANDLE hFind = NULL; - char fileSearch[MAX_PATH]; - - /* Same place, different layout. */ - SDL_strlcpy(oldDirectory, output, sizeof(oldDirectory)); - - SDL_snprintf(fileSearch, sizeof(fileSearch), "%s\\*.vvvvvv", oldDirectory); - hFind = FindFirstFile(fileSearch, &findHandle); - if (hFind == INVALID_HANDLE_VALUE) - { - printf("Could not find directory %s\n", oldDirectory); - } - else do - { - if ((findHandle.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) - { - SDL_snprintf(oldLocation, sizeof(oldLocation), "%s%s", oldDirectory, findHandle.cFileName); - SDL_snprintf(newLocation, sizeof(newLocation), "%slevels\\%s", output, findHandle.cFileName); - PLATFORM_copyFile(oldLocation, newLocation); - } - } while (FindNextFile(hFind, &findHandle)); -#else -#error See PLATFORM_migrateSaveData -#endif -} - -static void PLATFORM_copyFile(const char *oldLocation, const char *newLocation) -{ - char *data; - size_t length, bytes_read, bytes_written; - - /* Read data */ - FILE *file = fopen(oldLocation, "rb"); - if (!file) - { - printf("Cannot open/copy %s\n", oldLocation); - return; - } - fseek(file, 0, SEEK_END); - length = ftell(file); - fseek(file, 0, SEEK_SET); - data = (char*) SDL_malloc(length); - if (data == NULL) - { - VVV_exit(1); - } - bytes_read = fread(data, 1, length, file); - fclose(file); - if (bytes_read != length) - { - printf("An error occurred when reading from %s\n", oldLocation); - SDL_free(data); - return; - } - - /* Write data */ - file = fopen(newLocation, "wb"); - if (!file) - { - printf("Could not write to %s\n", newLocation); - SDL_free(data); - return; - } - bytes_written = fwrite(data, 1, length, file); - fclose(file); - SDL_free(data); - - /* WTF did we just do */ - printf("Copied:\n\tOld: %s\n\tNew: %s\n", oldLocation, newLocation); - if (bytes_written != length) - { - printf("Warning: an error occurred when writing to %s\n", newLocation); - } -} - bool FILESYSTEM_openDirectoryEnabled(void) { /* This is just a check to see if we're on a desktop or tenfoot setup.