in Ambit/Source/Ambit/Mode/BulkScenarioConfiguration.cpp [49:100]
void FBulkScenarioConfiguration::DeserializeFromJson(TSharedPtr<FJsonObject> JsonObject)
{
if (JsonObject->HasField(JsonConstants::KVersionKey))
{
const FString Version = JsonObject->GetStringField(JsonConstants::KVersionKey);
// TODO: Support a list of approved/backwards compatible versions?
if (!Version.Equals(KCurrentVersion))
{
const FString InvalidVersion = FString::Printf(
TEXT("The version in the file (%s) is not supported"), *Version);
FMenuHelpers::LogErrorAndPopup(InvalidVersion);
return;
}
}
if (JsonObject->HasField(JsonConstants::KConfigurationNameKey))
{
this->ConfigurationName = JsonObject->GetStringField(JsonConstants::KConfigurationNameKey);
}
if (JsonObject->HasField(JsonConstants::KBatchNameKey))
{
this->BatchName = JsonObject->GetStringField(JsonConstants::KBatchNameKey);
}
if (JsonObject->HasField(JsonConstants::KTimeOfDayTypesKey))
{
this->TimeOfDayTypes.DeserializeFromJson(JsonObject->GetObjectField(JsonConstants::KTimeOfDayTypesKey));
}
if (JsonObject->HasField(JsonConstants::KWeatherTypesKey))
{
this->WeatherTypes.DeserializeFromJson(JsonObject->GetObjectField(JsonConstants::KWeatherTypesKey));
}
if (JsonObject->HasField(JsonConstants::KBatchPedestrianDensityKey))
{
this->PedestrianDensity.DeserializeFromJson(
JsonObject->GetObjectField(JsonConstants::KBatchPedestrianDensityKey));
}
if (JsonObject->HasField(JsonConstants::KBatchTrafficDensityKey))
{
this->VehicleDensity.DeserializeFromJson(JsonObject->GetObjectField(JsonConstants::KBatchTrafficDensityKey));
}
if (JsonObject->HasField(JsonConstants::KNumberOfPermutationsKey))
{
this->NumberOfPermutations = JsonObject->GetNumberField(JsonConstants::KNumberOfPermutationsKey);
}
}