|
@@ -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)
|
|
|
{
|
|
|
- std::vector<std::string> 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");
|
|
|
+ /* 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) {
|
|
|
- ShowError("Failure when opening map cache file %s\n", map_cache_file.c_str());
|
|
|
- exit(EXIT_FAILURE);
|
|
|
- }
|
|
|
+ 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<std::string> directories = { std::string(db_path) + "/", std::string(db_path) + "/" + std::string(DBIMPORT) + "/" };
|
|
|
|
|
|
- // Open the map list
|
|
|
- FILE *list;
|
|
|
+ for (const auto &directory : directories) {
|
|
|
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();
|
|
|
|