#include "config.h" #include "third-party/json.hpp" #include "util/FileIO.h" #include "common/util/FileUtil.h" Config gConfig; Config& get_config() { return gConfig; } void set_config(const std::string& path_to_config_file) { auto config_str = file_util::read_text_file(path_to_config_file); // to ignore comments in json, which may be useful auto cfg = nlohmann::json::parse(config_str, nullptr, true, true); gConfig.game_version = cfg.at("game_version").get(); gConfig.dgo_names = cfg.at("dgo_names").get>(); gConfig.write_disassembly = cfg.at("write_disassembly").get(); gConfig.write_hexdump = cfg.at("write_hexdump").get(); gConfig.write_scripts = cfg.at("write_scripts").get(); gConfig.write_hexdump_on_v3_only = cfg.at("write_hexdump_on_v3_only").get(); gConfig.disassemble_objects_without_functions = cfg.at("disassemble_objects_without_functions").get(); gConfig.find_basic_blocks = cfg.at("find_basic_blocks").get(); gConfig.write_hex_near_instructions = cfg.at("write_hex_near_instructions").get(); std::vector asm_functions_by_name = cfg.at("asm_functions_by_name").get>(); for (const auto& x : asm_functions_by_name) { gConfig.asm_functions_by_name.insert(x); } }