#include "confighelper.h" #include "stringutils.h" std::string readfile(const wchar_t *fname) { FILE *f; _wfopen_s(&f, fname, L"rb"); if (f == 0) return {}; fseek(f, 0, SEEK_END); auto len = ftell(f); fseek(f, 0, SEEK_SET); std::string buff; buff.resize(len); fread(buff.data(), 1, len, f); fclose(f); return buff; } void writefile(const wchar_t *fname, const std::string &s) { FILE *f; _wfopen_s(&f, fname, L"w"); fprintf(f, "%s", s.c_str()); fclose(f); } confighelper::confighelper() { configpath = std::filesystem::current_path() / (x64 ? "config64.json" : "config32.json"); try { configs = nlohmann::json::parse(readfile(configpath.c_str())); } catch (std::exception &) { configs = {}; } if (configs.find("plugins") == configs.end()) { configs["plugins"] = {}; } } confighelper::~confighelper() { writefile(configpath.c_str(), configs.dump(4)); }