summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-05-26 19:26:11 +0200
committerAki <please@ignore.pl>2022-05-26 19:26:11 +0200
commit2cd33c5d81088a5235554330e8f0c7f7302fa740 (patch)
treebb12a28ca85dc062455b23fa36f5b82a67b964df
parent82737f92d16d35ba1d526b9118c32c47af5936aa (diff)
downloadderelict-2cd33c5d81088a5235554330e8f0c7f7302fa740.zip
derelict-2cd33c5d81088a5235554330e8f0c7f7302fa740.tar.gz
derelict-2cd33c5d81088a5235554330e8f0c7f7302fa740.tar.bz2
Allowed optional members in killmails
-rw-r--r--DumpSource.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/DumpSource.cpp b/DumpSource.cpp
index b9c86be..cfcd9f0 100644
--- a/DumpSource.cpp
+++ b/DumpSource.cpp
@@ -55,10 +55,13 @@ from_json(const json& j, Killmail& km)
j.at("solar_system_id").get_to(km.location);
j.at("victim").at("ship_type_id").get_to(km.ship);
j.at("victim").at("position").get_to(km.position);
- j.at("victim").at("character_id").get_to(km.owner.character);
+ if (j.at("victim").contains("character_id"))
+ j.at("victim").at("character_id").get_to(km.owner.character);
j.at("victim").at("corporation_id").get_to(km.owner.corporation);
- j.at("victim").at("alliance_id").get_to(km.owner.alliance);
- j.at("victim").at("faction_id").get_to(km.owner.faction);
+ if (j.at("victim").contains("alliance_id"))
+ j.at("victim").at("alliance_id").get_to(km.owner.alliance);
+ if (j.at("victim").contains("faction_id"))
+ j.at("victim").at("faction_id").get_to(km.owner.faction);
auto calendar = j.at("killmail_time").get<tm>();
km.time = std::mktime(&calendar);
}