TSharedRef<FJsonObject> UFlareSaveWriter::SavePeople(FFlarePeopleSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("Population", FormatInt32(Data->Population));
	JsonObject->SetStringField("FoodStock", FormatInt32(Data->FoodStock));
	JsonObject->SetStringField("FuelStock", FormatInt32(Data->FuelStock));
	JsonObject->SetStringField("ToolStock", FormatInt32(Data->ToolStock));
	JsonObject->SetStringField("TechStock", FormatInt32(Data->TechStock));
	SaveFloat(JsonObject,"FoodConsumption", Data->FoodConsumption);
	SaveFloat(JsonObject,"FuelConsumption", Data->FuelConsumption);
	SaveFloat(JsonObject,"ToolConsumption", Data->ToolConsumption);
	SaveFloat(JsonObject,"TechConsumption", Data->TechConsumption);
	JsonObject->SetStringField("Money", FormatInt32(Data->Money));
	JsonObject->SetStringField("Dept", FormatInt32(Data->Dept));
	JsonObject->SetStringField("BirthPoint", FormatInt32(Data->BirthPoint));
	JsonObject->SetStringField("DeathPoint", FormatInt32(Data->DeathPoint));
	JsonObject->SetStringField("HungerPoint", FormatInt32(Data->HungerPoint));
	JsonObject->SetStringField("HappinessPoint", FormatInt32(Data->HappinessPoint));

	TArray< TSharedPtr<FJsonValue> > CompanyReputations;
	for(int i = 0; i < Data->CompanyReputations.Num(); i++)
	{
		CompanyReputations.Add(MakeShareable(new FJsonValueObject(SaveCompanyReputation(&Data->CompanyReputations[i]))));
	}
	JsonObject->SetArrayField("CompanyReputations", CompanyReputations);


	return JsonObject;
}
TSharedRef<FJsonObject> UFlareSaveWriter::SaveSpacecraftComponentTurret(FFlareSpacecraftComponentTurretSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	SaveFloat(JsonObject,"TurretAngle", Data->TurretAngle);
	SaveFloat(JsonObject,"BarrelsAngle", Data->BarrelsAngle);

	return JsonObject;
}
Esempio n. 3
0
TSharedRef<FJsonObject> UFlareSaveWriter::SaveSpacecraft(FFlareSpacecraftSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("Immatriculation", Data->Immatriculation.ToString());
	JsonObject->SetStringField("NickName", Data->NickName.ToString());
	JsonObject->SetStringField("Identifier", Data->Identifier.ToString());
	JsonObject->SetStringField("CompanyIdentifier", Data->CompanyIdentifier.ToString());
	JsonObject->SetStringField("Location", FormatVector(Data->Location));
	JsonObject->SetStringField("Rotation", FormatRotator(Data->Rotation));
	JsonObject->SetStringField("SpawnMode", FormatEnum<EFlareSpawnMode::Type>("EFlareSpawnMode",Data->SpawnMode));
	JsonObject->SetStringField("LinearVelocity", FormatVector(Data->LinearVelocity));
	JsonObject->SetStringField("AngularVelocity", FormatVector(Data->AngularVelocity));
	JsonObject->SetStringField("DockedTo", Data->DockedTo.ToString());
	JsonObject->SetStringField("DockedAt", FormatInt32(Data->DockedAt));
	SaveFloat(JsonObject,"Heat", Data->Heat);
	SaveFloat(JsonObject,"PowerOutageDelay", Data->PowerOutageDelay);
	SaveFloat(JsonObject,"PowerOutageAcculumator", Data->PowerOutageAcculumator);
	JsonObject->SetStringField("DynamicComponentStateIdentifier", Data->DynamicComponentStateIdentifier.ToString());
	SaveFloat(JsonObject,"DynamicComponentStateProgress", Data->DynamicComponentStateProgress);
	JsonObject->SetStringField("Level", FormatInt32(Data->Level));
	JsonObject->SetBoolField("IsTrading", Data->IsTrading);
	JsonObject->SetObjectField("Pilot", SavePilot(&Data->Pilot));
	JsonObject->SetObjectField("Asteroid", SaveAsteroid(&Data->AsteroidData));

	TArray< TSharedPtr<FJsonValue> > Components;
	for(int i = 0; i < Data->Components.Num(); i++)
	{
		Components.Add(MakeShareable(new FJsonValueObject(SaveSpacecraftComponent(&Data->Components[i]))));
	}
	JsonObject->SetArrayField("Components", Components);

	TArray< TSharedPtr<FJsonValue> > Cargo;
	for(int i = 0; i < Data->Cargo.Num(); i++)
	{
		Cargo.Add(MakeShareable(new FJsonValueObject(SaveCargo(&Data->Cargo[i]))));
	}
	JsonObject->SetArrayField("Cargo", Cargo);

	TArray< TSharedPtr<FJsonValue> > FactoryStates;
	for(int i = 0; i < Data->FactoryStates.Num(); i++)
	{
		FactoryStates.Add(MakeShareable(new FJsonValueObject(SaveFactory(&Data->FactoryStates[i]))));
	}
	JsonObject->SetArrayField("FactoryStates", FactoryStates);


	TArray< TSharedPtr<FJsonValue> > SalesExcludedResources;
	for(int i = 0; i < Data->SalesExcludedResources.Num(); i++)
	{
		SalesExcludedResources.Add(MakeShareable(new FJsonValueString(Data->SalesExcludedResources[i].ToString())));
	}
	JsonObject->SetArrayField("SalesExcludedResources", SalesExcludedResources);

	return JsonObject;
}
TSharedRef<FJsonObject> UFlareSaveWriter::SaveBomb(FFlareBombSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("Location", FormatVector(Data->Location));
	JsonObject->SetStringField("Rotation", FormatRotator(Data->Rotation));
	JsonObject->SetStringField("LinearVelocity", FormatVector(Data->LinearVelocity));
	JsonObject->SetStringField("AngularVelocity", FormatVector(Data->AngularVelocity));
	JsonObject->SetStringField("WeaponSlotIdentifier", Data->WeaponSlotIdentifier.ToString());
	JsonObject->SetStringField("ParentSpacecraft", Data->ParentSpacecraft.ToString());
	JsonObject->SetBoolField("Activated", Data->Activated);
	JsonObject->SetBoolField("Dropped", Data->Dropped);
	SaveFloat(JsonObject,"DropParentDistance", Data->DropParentDistance);
	SaveFloat(JsonObject,"LifeTime", Data->LifeTime);

	return JsonObject;
}
Esempio n. 5
0
/*!
 Save parameters of AKFVEC type structure to file. This function adds
 ".x", ".y" and ".z" to the last of parameter name and save value with
 the combined name.
 @return If function fails, the return value is 0. When function fails, not
 all parameters are saved to file, i.e. parameters file may collapsed.
 If function succeeds, the return value is 1.
 @param[in] fp Pointer to \c FILE structure.
 @param[in] lpKeyName The name of paraemter.
 @param[in] vec Pointer to \c AKFVEC type structure.
 */
int16 SaveFloatVec(FILE *fp, const char *lpKeyName, const AKFVEC *vec)
{
	int16 ret = 0;
	char keyName[64];

	ret = 1;
	snprintf(keyName, sizeof(keyName), "%s.x", lpKeyName);
	ret = ret && SaveFloat(fp, keyName, vec->u.x);

	snprintf(keyName, sizeof(keyName), "%s.y", lpKeyName);
	ret = ret && SaveFloat(fp, keyName, vec->u.y);

	snprintf(keyName, sizeof(keyName), "%s.z", lpKeyName);
	ret = ret && SaveFloat(fp, keyName, vec->u.z);

	return ret;
}
TSharedRef<FJsonObject> UFlareSaveWriter::SaveCompanyReputation(FFlareCompanyReputationSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("CompanyIdentifier", Data->CompanyIdentifier.ToString());
	SaveFloat(JsonObject,"Reputation", Data->Reputation);

	return JsonObject;
}
TSharedRef<FJsonObject> UFlareSaveWriter::SaveResourcePrice(FFFlareResourcePrice* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("ResourceIdentifier", Data->ResourceIdentifier.ToString());
	SaveFloat(JsonObject,"Price", Data->Price);
	JsonObject->SetObjectField("Prices", SaveFloatBuffer(&Data->Prices));


	return JsonObject;
}
TSharedRef<FJsonObject> UFlareSaveWriter::SaveQuestStepProgress(FFlareQuestStepProgressSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("ConditionIdentifier", Data->ConditionIdentifier.ToString());
	JsonObject->SetStringField("CurrentProgression", FormatInt32(Data->CurrentProgression));
	JsonObject->SetStringField("InitialTransform", FormatTransform(Data->InitialTransform));
	SaveFloat(JsonObject,"InitialVelocity", Data->InitialVelocity);

	return JsonObject;
}
TSharedRef<FJsonObject> UFlareSaveWriter::SaveSpacecraftComponent(FFlareSpacecraftComponentSave* Data)
{
	TSharedRef<FJsonObject> JsonObject = MakeShareable(new FJsonObject());

	JsonObject->SetStringField("ComponentIdentifier", Data->ComponentIdentifier.ToString());
	JsonObject->SetStringField("ShipSlotIdentifier", Data->ShipSlotIdentifier.ToString());
	SaveFloat(JsonObject,"Damage", Data->Damage);
	JsonObject->SetObjectField("Turret", SaveSpacecraftComponentTurret(&Data->Turret));
	JsonObject->SetObjectField("Weapon", SaveSpacecraftComponentWeapon(&Data->Weapon));
	JsonObject->SetObjectField("Pilot", SaveTurretPilot(&Data->Pilot));

	return JsonObject;
}
Esempio n. 10
0
/*!
 Save parameters to file which is specified with #CSPEC_SETTING_FILE. This
 function saves variables when the offsets of magnetic sensor estimated
 successfully.
 @return If function fails, the return value is #DMT_FAIL. When function fails,
 the parameter file may collapsed. Therefore, the parameters file should be
 discarded. If function succeeds, the return value is #DMT_SUCCESS.
 @param[out] prms A pointer to #AS9888PRMS structure. Member variables are
 saved to the parameter file.
 */
int16 SaveParameters(AS9888PRMS *prms)
{
	int16 ret = 1;
	FILE *fp;

	//Open setting file for write.
	if ((fp = fopen(CSPEC_SETTING_FILE, "w")) == NULL) 
	{
		DMTERROR_STR("fopen");
		return DMT_FAIL;
	}

	/* Save data to HO */
	ret = ret && SaveFloatVec(fp, "HO", &prms->mfv_HO);
	/* Save FST_COMP */
	ret = ret && SaveFloat(fp, "t9eRt", prms->m_cmp.t9eRt);
	ret = ret && SaveFloat(fp, "t9eLv", prms->m_cmp.t9eLv);
	ret = ret && SaveFloatVec(fp, "kst", &prms->m_cmp.kst);
	ret = ret && SaveFloatVec(fp, "st", &prms->m_cmp.st);
	ret = ret && SaveFloatVec(fp, "kot", &prms->m_cmp.kot);
	ret = ret && SaveFloatVec(fp, "ot", &prms->m_cmp.ot);

	if (fclose(fp) != 0) 
	{
		DMTERROR_STR("fclose");
		ret = 0;
	}

	if (ret == 0) 
	{
		DMTERROR_STR(__FUNCTION__);
		return DMT_FAIL;
	}

	return DMT_SUCCESS;
}