#include "DumpSource.h" #include #include #include #include #include #include "Killmail.h" using json = nlohmann::json; DumpSource::DumpSource(const char* filename) : m_killmails {} { if (!FileExists(filename)) throw "File does not exist"; char* text = LoadFileText(filename); auto dump = json::parse(text); for (const auto& info : dump["killmails"]) { Killmail km; km.position = { info["victim"]["position"]["x"].get(), info["victim"]["position"]["y"].get(), info["victim"]["position"]["z"].get(), }; auto id = info["solar_system_id"].get(); auto location = dump["locations"][std::to_string(id)]; km.location.system = location["name"].get().data(); km.location.constellation = location["constellation"].get().data(); km.location.region = location["region"].get().data(); m_killmails.push_back(std::move(km)); } UnloadFileText(text); } std::vector DumpSource::killmails() const { return m_killmails; }