Example #1
0
void _PlanOperation::addField(const Json::Value &field) {
  if (field.isNumeric()) {
    addField(field.asUInt());
  } else if (field.isString()) {
    addNamedField(field.asString());
  } else throw std::runtime_error("Can't parse field name, neither numeric nor std::string");
}
Example #2
0
void ProjectileData::initPersistFields()
{
   addNamedField(particleEmitter,  TypeParticleEmitterDataPtr, ProjectileData);
   addNamedField(particleWaterEmitter, TypeParticleEmitterDataPtr, ProjectileData);

   addNamedField(projectileShapeName, TypeFilename, ProjectileData);
   addNamedField(scale, TypePoint3F, ProjectileData);

   addNamedField(sound, TypeSFXProfilePtr, ProjectileData);

   addNamedField(explosion, TypeExplosionDataPtr, ProjectileData);
   addNamedField(waterExplosion, TypeExplosionDataPtr, ProjectileData);

   addNamedField(splash, TypeSplashDataPtr, ProjectileData);

   addNamedField(decal, TypeDecalDataPtr, ProjectileData);

   addNamedField(lightDesc, TypeLightDescriptionPtr, ProjectileData );

   static FRangeValidator lightRadiusValidator( 1, 20 );
   static FRangeValidator velInheritFactorValidator( 0, 1 );
   static FRangeValidator muzzleVelocityValidator( 0, 10000 );

   addNamedField(isBallistic, TypeBool, ProjectileData);
	addNamedFieldV(velInheritFactor, TypeF32, ProjectileData, &velInheritFactorValidator );
   addNamedFieldV(muzzleVelocity, TypeF32, ProjectileData, &muzzleVelocityValidator );
   addNamedField(impactForce, TypeF32, ProjectileData);

   static IRangeValidatorScaled lifetimeValidator( TickMs, 0, Projectile::MaxLivingTicks );
   static IRangeValidatorScaled armingDelayValidator( TickMs, 0, Projectile::MaxLivingTicks );
   static IRangeValidatorScaled fadeDelayValidator( TickMs, 0, Projectile::MaxLivingTicks );

   char message[1024];
   dSprintf(message, sizeof(message), "Milliseconds, values will be adjusted to fit %d millisecond tick intervals", TickMs);
   addProtectedField("lifetime", TypeS32, Offset(lifetime, ProjectileData), &setLifetime, &getScaledValue, message);
   addProtectedField("armingDelay", TypeS32, Offset(armingDelay, ProjectileData), &setArmingDelay, &getScaledValue, message);
   addProtectedField("fadeDelay", TypeS32, Offset(fadeDelay, ProjectileData), &setFadeDelay, &getScaledValue, message);

   static FRangeValidator bounceElasticityValidator( 0, 0.999f );
   static FRangeValidator bounceFrictionValidator( 0, 1 );
   static FRangeValidator gravityModValidator( 0, 1 );

   addNamedFieldV(bounceElasticity, TypeF32, ProjectileData, &bounceElasticityValidator );
   addNamedFieldV(bounceFriction, TypeF32, ProjectileData, &bounceFrictionValidator );
   addNamedFieldV(gravityMod, TypeF32, ProjectileData, &gravityModValidator );

   Parent::initPersistFields();
}