diff --git a/src/SC2MapLocaleExtractor/SC2MapLocaleExtractor.cpp b/src/SC2MapLocaleExtractor/SC2MapLocaleExtractor.cpp index 808e133..2d9d897 100644 --- a/src/SC2MapLocaleExtractor/SC2MapLocaleExtractor.cpp +++ b/src/SC2MapLocaleExtractor/SC2MapLocaleExtractor.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include // Third party: @@ -12,7 +13,6 @@ #include "helpers.h" #include "extractors.h" - int main(int argc, char** argv) { if(argc < 3) { @@ -40,5 +40,8 @@ int main(int argc, char** argv) return EXIT_FAILURE; } + std::cout << "Press ENTER to continue..."; + std::getchar(); + return EXIT_SUCCESS; } \ No newline at end of file diff --git a/src/SC2MapLocaleExtractor/extractors.cpp b/src/SC2MapLocaleExtractor/extractors.cpp index ec04b16..fb0ea74 100644 --- a/src/SC2MapLocaleExtractor/extractors.cpp +++ b/src/SC2MapLocaleExtractor/extractors.cpp @@ -59,6 +59,13 @@ std::optional extract_map_name_string(std::string game_description) std::vector map_name_split_comment = split_string(map_name, " /// "); map_name = map_name_split_comment[0]; } + + if (map_name.empty()) + { + std::cout << "Detected empty map name returning \n"; + return std::nullopt; + } + return std::make_optional(map_name); } std::cout << "Error! Detected empty map name returning \n"; @@ -105,17 +112,28 @@ std::optional locale_extractor(const std::filesystem::path& file auto maybe_locale = extract_locale_from_mpq(MPQArchive, foundLocaleFileData); // Checking if data was extracted: if (!maybe_locale.has_value()) { - // TODO: log + std::cout << "Couldn't extract locale from MPQ, error: " << "\n"; continue; } // Extracting map name: - std::string map_name_string = *extract_map_name_string(*maybe_locale); + std::optional maybe_map_name_string = extract_map_name_string(*maybe_locale); + if (!maybe_map_name_string.has_value()) + { + std::cout << "Detected empty map_name_string, skipping." << "\n"; + continue; + } + std::string map_name_string = *maybe_map_name_string; // Obtaining region code: std::string region_name = foundLocaleFileData.cFileName; std::string locale_region = locale_region_extractor(region_name); + if (map_name_string == "") + { + std::cout << "Detected empty string as a foreign_map_name, skipping. This happened when reading: " << locale_region << "\n"; + } + myMapping[locale_region] = map_name_string; } while (SFileFindNextFile(searchHandle, &foundLocaleFileData)); diff --git a/src/SC2MapLocaleExtractor/helpers.cpp b/src/SC2MapLocaleExtractor/helpers.cpp index a80ce45..bcbeb56 100644 --- a/src/SC2MapLocaleExtractor/helpers.cpp +++ b/src/SC2MapLocaleExtractor/helpers.cpp @@ -85,9 +85,14 @@ std::optional generate_final_locale_mapping(const std::vector