From 1cbd688761f350d88448d1d9005b546bc9706e24 Mon Sep 17 00:00:00 2001 From: aleos89 Date: Tue, 23 Jul 2019 10:22:19 -0400 Subject: [PATCH] Partial reversion * Made it so changes are made only to the import map_cache to relieve the main one from merge conflicts. --- src/tool/mapcache.cpp | 77 ++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/src/tool/mapcache.cpp b/src/tool/mapcache.cpp index b34ff3fca6..1771fd3890 100644 --- a/src/tool/mapcache.cpp +++ b/src/tool/mapcache.cpp @@ -150,7 +150,7 @@ int find_map(char *name) for(i = 0; i < header.map_count; i++) { if(fread(&info, sizeof(info), 1, map_cache_fp) != 1) - printf("An error has occured in fread while reading \"%s\"\n", map_cache_fp); + ShowError("An error has occured in fread while reading \"%s\"\n", map_cache_fp); if(strcmp(name, info.name) == 0) // Map found return 1; else // Map not found, jump to the beginning of the next map info header @@ -195,39 +195,40 @@ void process_args(int argc, char *argv[]) int do_init(int argc, char** argv) { + + /* setup pre-defined, #define-dependant */ + map_cache_file = std::string(db_path) + "/" + std::string(DBIMPORT) + "/map_cache.dat"; + + // Process the command-line arguments + process_args(argc, argv); + + ShowStatus("Initializing grfio with %s\n", grf_list_file.c_str()); + grfio_init(grf_list_file.c_str()); + + // Attempt to open the map cache file and force rebuild if not found + ShowStatus("Opening map cache: %s\n", map_cache_file.c_str()); + if (!rebuild) { + map_cache_fp = fopen(map_cache_file.c_str(), "rb"); + if (map_cache_fp == NULL) { + ShowNotice("Existing map cache not found, forcing rebuild mode\n"); + rebuild = 1; + } else + fclose(map_cache_fp); + } + if (rebuild) + map_cache_fp = fopen(map_cache_file.c_str(), "w+b"); + else + map_cache_fp = fopen(map_cache_file.c_str(), "r+b"); + if (map_cache_fp == NULL) { + ShowError("Failure when opening map cache file %s\n", map_cache_file.c_str()); + exit(EXIT_FAILURE); + } + + // Open the map list + FILE *list; std::vector directories = { std::string(db_path) + "/", std::string(db_path) + "/" + std::string(DBIMPORT) + "/" }; for (const auto &directory : directories) { - /* setup pre-defined, #define-dependant */ - map_cache_file = directory + "map_cache.dat"; - - // Process the command-line arguments - process_args(argc, argv); - - ShowStatus("Initializing grfio with %s\n", grf_list_file.c_str()); - grfio_init(grf_list_file.c_str()); - - // Attempt to open the map cache file and force rebuild if not found - ShowStatus("Opening map cache: %s\n", map_cache_file.c_str()); - if (!rebuild) { - map_cache_fp = fopen(map_cache_file.c_str(), "rb"); - if (map_cache_fp == NULL) { - ShowNotice("Existing map cache not found, forcing rebuild mode\n"); - rebuild = 1; - } else - fclose(map_cache_fp); - } - if (rebuild) - map_cache_fp = fopen(map_cache_file.c_str(), "w+b"); - else - map_cache_fp = fopen(map_cache_file.c_str(), "r+b"); - if (map_cache_fp == NULL) { - ShowError("Failure when opening map cache file %s\n", map_cache_file.c_str()); - exit(EXIT_FAILURE); - } - - // Open the map list - FILE *list; std::string filename = directory + map_list_file; ShowStatus("Opening map list: %s\n", filename.c_str()); @@ -243,7 +244,7 @@ int do_init(int argc, char** argv) header.map_count = 0; } else { if (fread(&header, sizeof(struct main_header), 1, map_cache_fp) != 1) - printf("An error has occured while reading \"%s\"\n", map_cache_fp); + ShowError("An error has occured while reading \"%s\"\n", map_cache_fp); header.file_size = GetULong((unsigned char *)&(header.file_size)); header.map_count = GetUShort((unsigned char *)&(header.map_count)); } @@ -279,14 +280,14 @@ int do_init(int argc, char** argv) ShowStatus("Closing map list: %s\n", filename.c_str()); fclose(list); - - // Write the main header and close the map cache - ShowStatus("Closing map cache: %s\n", map_cache_file.c_str()); - fseek(map_cache_fp, 0, SEEK_SET); - fwrite(&header, sizeof(struct main_header), 1, map_cache_fp); - fclose(map_cache_fp); } + // Write the main header and close the map cache + ShowStatus("Closing map cache: %s\n", map_cache_file.c_str()); + fseek(map_cache_fp, 0, SEEK_SET); + fwrite(&header, sizeof(struct main_header), 1, map_cache_fp); + fclose(map_cache_fp); + ShowStatus("Finalizing grfio\n"); grfio_final();