|
|
@ -32,7 +32,7 @@ const SkiddingProperties* AbstractCharacteristics::getSkiddingProperties() const
|
|
|
|
return nullptr;
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void AbstractCharacteristics::process(CharacteristicType type, Value value, bool &isSet) const
|
|
|
|
void AbstractCharacteristics::process(CharacteristicType type, Value value, bool *isSet) const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Log::warn("AbstractCharacteristics", "This type does not do anything");
|
|
|
|
Log::warn("AbstractCharacteristics", "This type does not do anything");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -228,7 +228,7 @@ float AbstractCharacteristics::getSuspensionStiffness() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SUSPENSION_STIFFNESS, &result, isSet);
|
|
|
|
process(SUSPENSION_STIFFNESS, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_STIFFNESS");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_STIFFNESS");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -238,7 +238,7 @@ float AbstractCharacteristics::getSuspensionRest() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SUSPENSION_REST, &result, isSet);
|
|
|
|
process(SUSPENSION_REST, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_REST");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_REST");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -248,7 +248,7 @@ float AbstractCharacteristics::getSuspensionTravelCm() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SUSPENSION_TRAVEL_CM, &result, isSet);
|
|
|
|
process(SUSPENSION_TRAVEL_CM, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_TRAVEL_CM");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_TRAVEL_CM");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -258,7 +258,7 @@ float AbstractCharacteristics::getSuspensionExpSpringResponse() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SUSPENSION_EXP_SPRING_RESPONSE, &result, isSet);
|
|
|
|
process(SUSPENSION_EXP_SPRING_RESPONSE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_EXP_SPRING_RESPONSE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_EXP_SPRING_RESPONSE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -268,18 +268,17 @@ float AbstractCharacteristics::getSuspensionMaxForce() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SUSPENSION_MAX_FORCE, &result, isSet);
|
|
|
|
process(SUSPENSION_MAX_FORCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_MAX_FORCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SUSPENSION_MAX_FORCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getStabilityRollInfluence() const
|
|
|
|
float AbstractCharacteristics::getStabilityRollInfluence() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STABILITY_ROLL_INFLUENCE, &result, isSet);
|
|
|
|
process(STABILITY_ROLL_INFLUENCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_ROLL_INFLUENCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_ROLL_INFLUENCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -289,7 +288,7 @@ float AbstractCharacteristics::getStabilityChassisLinearDamping() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STABILITY_CHASSIS_LINEAR_DAMPING, &result, isSet);
|
|
|
|
process(STABILITY_CHASSIS_LINEAR_DAMPING, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_CHASSIS_LINEAR_DAMPING");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_CHASSIS_LINEAR_DAMPING");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -299,7 +298,7 @@ float AbstractCharacteristics::getStabilityChassisAngularDamping() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STABILITY_CHASSIS_ANGULAR_DAMPING, &result, isSet);
|
|
|
|
process(STABILITY_CHASSIS_ANGULAR_DAMPING, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_CHASSIS_ANGULAR_DAMPING");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_CHASSIS_ANGULAR_DAMPING");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -309,7 +308,7 @@ float AbstractCharacteristics::getStabilityDownwardImpulseFactor() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STABILITY_DOWNWARD_IMPULSE_FACTOR, &result, isSet);
|
|
|
|
process(STABILITY_DOWNWARD_IMPULSE_FACTOR, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_DOWNWARD_IMPULSE_FACTOR");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_DOWNWARD_IMPULSE_FACTOR");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -319,7 +318,7 @@ float AbstractCharacteristics::getStabilityTrackConnectionAccel() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STABILITY_TRACK_CONNECTION_ACCEL, &result, isSet);
|
|
|
|
process(STABILITY_TRACK_CONNECTION_ACCEL, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_TRACK_CONNECTION_ACCEL");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_TRACK_CONNECTION_ACCEL");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -329,18 +328,17 @@ float AbstractCharacteristics::getStabilitySmoothFlyingImpulse() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STABILITY_SMOOTH_FLYING_IMPULSE, &result, isSet);
|
|
|
|
process(STABILITY_SMOOTH_FLYING_IMPULSE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_SMOOTH_FLYING_IMPULSE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STABILITY_SMOOTH_FLYING_IMPULSE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
InterpolationArray&& AbstractCharacteristics::getTurnRadius() const
|
|
|
|
InterpolationArray&& AbstractCharacteristics::getTurnRadius() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
InterpolationArray result;
|
|
|
|
InterpolationArray result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(TURN_RADIUS, &result, isSet);
|
|
|
|
process(TURN_RADIUS, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic TURN_RADIUS");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic TURN_RADIUS");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
@ -350,7 +348,7 @@ float AbstractCharacteristics::getTurnTimeResetSteer() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(TURN_TIME_RESET_STEER, &result, isSet);
|
|
|
|
process(TURN_TIME_RESET_STEER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic TURN_TIME_RESET_STEER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic TURN_TIME_RESET_STEER");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -360,18 +358,17 @@ InterpolationArray&& AbstractCharacteristics::getTurnTimeFullSteer() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
InterpolationArray result;
|
|
|
|
InterpolationArray result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(TURN_TIME_FULL_STEER, &result, isSet);
|
|
|
|
process(TURN_TIME_FULL_STEER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic TURN_TIME_FULL_STEER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic TURN_TIME_FULL_STEER");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getEnginePower() const
|
|
|
|
float AbstractCharacteristics::getEnginePower() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ENGINE_POWER, &result, isSet);
|
|
|
|
process(ENGINE_POWER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_POWER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_POWER");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -381,7 +378,7 @@ float AbstractCharacteristics::getEngineMaxSpeed() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ENGINE_MAX_SPEED, &result, isSet);
|
|
|
|
process(ENGINE_MAX_SPEED, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_MAX_SPEED");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_MAX_SPEED");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -391,7 +388,7 @@ float AbstractCharacteristics::getEngineBrakeFactor() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ENGINE_BRAKE_FACTOR, &result, isSet);
|
|
|
|
process(ENGINE_BRAKE_FACTOR, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_BRAKE_FACTOR");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_BRAKE_FACTOR");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -401,7 +398,7 @@ float AbstractCharacteristics::getEngineBrakeTimeIncrease() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ENGINE_BRAKE_TIME_INCREASE, &result, isSet);
|
|
|
|
process(ENGINE_BRAKE_TIME_INCREASE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_BRAKE_TIME_INCREASE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_BRAKE_TIME_INCREASE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -411,18 +408,17 @@ float AbstractCharacteristics::getEngineMaxSpeedReverseRatio() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ENGINE_MAX_SPEED_REVERSE_RATIO, &result, isSet);
|
|
|
|
process(ENGINE_MAX_SPEED_REVERSE_RATIO, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_MAX_SPEED_REVERSE_RATIO");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ENGINE_MAX_SPEED_REVERSE_RATIO");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<float>&& AbstractCharacteristics::getGearSwitchRatio() const
|
|
|
|
std::vector<float>&& AbstractCharacteristics::getGearSwitchRatio() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::vector<float> result;
|
|
|
|
std::vector<float> result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(GEAR_SWITCH_RATIO, &result, isSet);
|
|
|
|
process(GEAR_SWITCH_RATIO, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic GEAR_SWITCH_RATIO");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic GEAR_SWITCH_RATIO");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
@ -432,29 +428,27 @@ std::vector<float>&& AbstractCharacteristics::getGearPowerIncrease() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::vector<float> result;
|
|
|
|
std::vector<float> result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(GEAR_POWER_INCREASE, &result, isSet);
|
|
|
|
process(GEAR_POWER_INCREASE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic GEAR_POWER_INCREASE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic GEAR_POWER_INCREASE");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getMass() const
|
|
|
|
float AbstractCharacteristics::getMass() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(MASS, &result, isSet);
|
|
|
|
process(MASS, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic MASS");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic MASS");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getWheelsDampingRelaxation() const
|
|
|
|
float AbstractCharacteristics::getWheelsDampingRelaxation() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(WHEELS_DAMPING_RELAXATION, &result, isSet);
|
|
|
|
process(WHEELS_DAMPING_RELAXATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_DAMPING_RELAXATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_DAMPING_RELAXATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -464,7 +458,7 @@ float AbstractCharacteristics::getWheelsDampingCompression() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(WHEELS_DAMPING_COMPRESSION, &result, isSet);
|
|
|
|
process(WHEELS_DAMPING_COMPRESSION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_DAMPING_COMPRESSION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_DAMPING_COMPRESSION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -474,7 +468,7 @@ float AbstractCharacteristics::getWheelsRadius() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(WHEELS_RADIUS, &result, isSet);
|
|
|
|
process(WHEELS_RADIUS, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_RADIUS");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_RADIUS");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -484,18 +478,17 @@ std::vector<float>&& AbstractCharacteristics::getWheelsPosition() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::vector<float> result;
|
|
|
|
std::vector<float> result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(WHEELS_POSITION, &result, isSet);
|
|
|
|
process(WHEELS_POSITION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_POSITION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic WHEELS_POSITION");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getCameraDistance() const
|
|
|
|
float AbstractCharacteristics::getCameraDistance() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(CAMERA_DISTANCE, &result, isSet);
|
|
|
|
process(CAMERA_DISTANCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic CAMERA_DISTANCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic CAMERA_DISTANCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -505,7 +498,7 @@ float AbstractCharacteristics::getCameraForwardUpAngle() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(CAMERA_FORWARD_UP_ANGLE, &result, isSet);
|
|
|
|
process(CAMERA_FORWARD_UP_ANGLE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic CAMERA_FORWARD_UP_ANGLE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic CAMERA_FORWARD_UP_ANGLE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -515,29 +508,27 @@ float AbstractCharacteristics::getCameraBackwardUpAngle() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(CAMERA_BACKWARD_UP_ANGLE, &result, isSet);
|
|
|
|
process(CAMERA_BACKWARD_UP_ANGLE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic CAMERA_BACKWARD_UP_ANGLE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic CAMERA_BACKWARD_UP_ANGLE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getJumpAnimationTime() const
|
|
|
|
float AbstractCharacteristics::getJumpAnimationTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(JUMP_ANIMATION_TIME, &result, isSet);
|
|
|
|
process(JUMP_ANIMATION_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic JUMP_ANIMATION_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic JUMP_ANIMATION_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getLeanMax() const
|
|
|
|
float AbstractCharacteristics::getLeanMax() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(LEAN_MAX, &result, isSet);
|
|
|
|
process(LEAN_MAX, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic LEAN_MAX");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic LEAN_MAX");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -547,18 +538,17 @@ float AbstractCharacteristics::getLeanSpeed() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(LEAN_SPEED, &result, isSet);
|
|
|
|
process(LEAN_SPEED, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic LEAN_SPEED");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic LEAN_SPEED");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getAnvilDuration() const
|
|
|
|
float AbstractCharacteristics::getAnvilDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ANVIL_DURATION, &result, isSet);
|
|
|
|
process(ANVIL_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ANVIL_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ANVIL_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -568,7 +558,7 @@ float AbstractCharacteristics::getAnvilWeight() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ANVIL_WEIGHT, &result, isSet);
|
|
|
|
process(ANVIL_WEIGHT, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ANVIL_WEIGHT");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ANVIL_WEIGHT");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -578,18 +568,17 @@ float AbstractCharacteristics::getAnvilSpeedFactor() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ANVIL_SPEED_FACTOR, &result, isSet);
|
|
|
|
process(ANVIL_SPEED_FACTOR, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ANVIL_SPEED_FACTOR");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ANVIL_SPEED_FACTOR");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getParachuteFriction() const
|
|
|
|
float AbstractCharacteristics::getParachuteFriction() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PARACHUTE_FRICTION, &result, isSet);
|
|
|
|
process(PARACHUTE_FRICTION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_FRICTION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_FRICTION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -599,7 +588,7 @@ float AbstractCharacteristics::getParachuteDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PARACHUTE_DURATION, &result, isSet);
|
|
|
|
process(PARACHUTE_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -609,7 +598,7 @@ float AbstractCharacteristics::getParachuteDurationOther() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PARACHUTE_DURATION_OTHER, &result, isSet);
|
|
|
|
process(PARACHUTE_DURATION_OTHER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_DURATION_OTHER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_DURATION_OTHER");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -619,7 +608,7 @@ float AbstractCharacteristics::getParachuteLboundFranction() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PARACHUTE_LBOUND_FRANCTION, &result, isSet);
|
|
|
|
process(PARACHUTE_LBOUND_FRANCTION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_LBOUND_FRANCTION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_LBOUND_FRANCTION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -629,7 +618,7 @@ float AbstractCharacteristics::getParachuteUboundFranction() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PARACHUTE_UBOUND_FRANCTION, &result, isSet);
|
|
|
|
process(PARACHUTE_UBOUND_FRANCTION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_UBOUND_FRANCTION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_UBOUND_FRANCTION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -639,18 +628,17 @@ float AbstractCharacteristics::getParachuteMaxSpeed() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PARACHUTE_MAX_SPEED, &result, isSet);
|
|
|
|
process(PARACHUTE_MAX_SPEED, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_MAX_SPEED");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PARACHUTE_MAX_SPEED");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getBubblegumDuration() const
|
|
|
|
float AbstractCharacteristics::getBubblegumDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(BUBBLEGUM_DURATION, &result, isSet);
|
|
|
|
process(BUBBLEGUM_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -660,7 +648,7 @@ float AbstractCharacteristics::getBubblegumSpeedFraction() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(BUBBLEGUM_SPEED_FRACTION, &result, isSet);
|
|
|
|
process(BUBBLEGUM_SPEED_FRACTION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_SPEED_FRACTION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_SPEED_FRACTION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -670,7 +658,7 @@ float AbstractCharacteristics::getBubblegumTorque() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(BUBBLEGUM_TORQUE, &result, isSet);
|
|
|
|
process(BUBBLEGUM_TORQUE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_TORQUE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_TORQUE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -680,7 +668,7 @@ float AbstractCharacteristics::getBubblegumFadeInTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(BUBBLEGUM_FADE_IN_TIME, &result, isSet);
|
|
|
|
process(BUBBLEGUM_FADE_IN_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_FADE_IN_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_FADE_IN_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -690,18 +678,17 @@ float AbstractCharacteristics::getBubblegumShieldDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(BUBBLEGUM_SHIELD_DURATION, &result, isSet);
|
|
|
|
process(BUBBLEGUM_SHIELD_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_SHIELD_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic BUBBLEGUM_SHIELD_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getZipperDuration() const
|
|
|
|
float AbstractCharacteristics::getZipperDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ZIPPER_DURATION, &result, isSet);
|
|
|
|
process(ZIPPER_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -711,7 +698,7 @@ float AbstractCharacteristics::getZipperForce() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ZIPPER_FORCE, &result, isSet);
|
|
|
|
process(ZIPPER_FORCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_FORCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_FORCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -721,7 +708,7 @@ float AbstractCharacteristics::getZipperSpeedGain() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ZIPPER_SPEED_GAIN, &result, isSet);
|
|
|
|
process(ZIPPER_SPEED_GAIN, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_SPEED_GAIN");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_SPEED_GAIN");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -731,7 +718,7 @@ float AbstractCharacteristics::getZipperSpeedIncrease() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ZIPPER_SPEED_INCREASE, &result, isSet);
|
|
|
|
process(ZIPPER_SPEED_INCREASE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_SPEED_INCREASE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_SPEED_INCREASE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -741,18 +728,17 @@ float AbstractCharacteristics::getZipperFadeOutTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(ZIPPER_FADE_OUT_TIME, &result, isSet);
|
|
|
|
process(ZIPPER_FADE_OUT_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_FADE_OUT_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic ZIPPER_FADE_OUT_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getSwatterDuration() const
|
|
|
|
float AbstractCharacteristics::getSwatterDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SWATTER_DURATION, &result, isSet);
|
|
|
|
process(SWATTER_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -762,7 +748,7 @@ float AbstractCharacteristics::getSwatterDistance() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SWATTER_DISTANCE, &result, isSet);
|
|
|
|
process(SWATTER_DISTANCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_DISTANCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_DISTANCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -772,7 +758,7 @@ float AbstractCharacteristics::getSwatterSquashDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SWATTER_SQUASH_DURATION, &result, isSet);
|
|
|
|
process(SWATTER_SQUASH_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_SQUASH_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_SQUASH_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -782,18 +768,17 @@ float AbstractCharacteristics::getSwatterSquashSlowdown() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SWATTER_SQUASH_SLOWDOWN, &result, isSet);
|
|
|
|
process(SWATTER_SQUASH_SLOWDOWN, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_SQUASH_SLOWDOWN");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SWATTER_SQUASH_SLOWDOWN");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getPlungerMaxLength() const
|
|
|
|
float AbstractCharacteristics::getPlungerMaxLength() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PLUNGER_MAX_LENGTH, &result, isSet);
|
|
|
|
process(PLUNGER_MAX_LENGTH, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_MAX_LENGTH");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_MAX_LENGTH");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -803,7 +788,7 @@ float AbstractCharacteristics::getPlungerForce() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PLUNGER_FORCE, &result, isSet);
|
|
|
|
process(PLUNGER_FORCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_FORCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_FORCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -813,7 +798,7 @@ float AbstractCharacteristics::getPlungerDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PLUNGER_DURATION, &result, isSet);
|
|
|
|
process(PLUNGER_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -823,7 +808,7 @@ float AbstractCharacteristics::getPlungerSpeedIncrease() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PLUNGER_SPEED_INCREASE, &result, isSet);
|
|
|
|
process(PLUNGER_SPEED_INCREASE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_SPEED_INCREASE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_SPEED_INCREASE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -833,7 +818,7 @@ float AbstractCharacteristics::getPlungerFadeOutTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PLUNGER_FADE_OUT_TIME, &result, isSet);
|
|
|
|
process(PLUNGER_FADE_OUT_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_FADE_OUT_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_FADE_OUT_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -843,18 +828,17 @@ float AbstractCharacteristics::getPlungerInFaceTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(PLUNGER_IN_FACE_TIME, &result, isSet);
|
|
|
|
process(PLUNGER_IN_FACE_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_IN_FACE_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic PLUNGER_IN_FACE_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<float>&& AbstractCharacteristics::getStartupTime() const
|
|
|
|
std::vector<float>&& AbstractCharacteristics::getStartupTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::vector<float> result;
|
|
|
|
std::vector<float> result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STARTUP_TIME, &result, isSet);
|
|
|
|
process(STARTUP_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STARTUP_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STARTUP_TIME");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
@ -864,18 +848,17 @@ std::vector<float>&& AbstractCharacteristics::getStartupBoost() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::vector<float> result;
|
|
|
|
std::vector<float> result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(STARTUP_BOOST, &result, isSet);
|
|
|
|
process(STARTUP_BOOST, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STARTUP_BOOST");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic STARTUP_BOOST");
|
|
|
|
return std::move(result);
|
|
|
|
return std::move(result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getRescueDuration() const
|
|
|
|
float AbstractCharacteristics::getRescueDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(RESCUE_DURATION, &result, isSet);
|
|
|
|
process(RESCUE_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic RESCUE_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic RESCUE_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -885,7 +868,7 @@ float AbstractCharacteristics::getRescueVertOffset() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(RESCUE_VERT_OFFSET, &result, isSet);
|
|
|
|
process(RESCUE_VERT_OFFSET, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic RESCUE_VERT_OFFSET");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic RESCUE_VERT_OFFSET");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -895,18 +878,17 @@ float AbstractCharacteristics::getRescueHeight() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(RESCUE_HEIGHT, &result, isSet);
|
|
|
|
process(RESCUE_HEIGHT, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic RESCUE_HEIGHT");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic RESCUE_HEIGHT");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getExplosionDuration() const
|
|
|
|
float AbstractCharacteristics::getExplosionDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(EXPLOSION_DURATION, &result, isSet);
|
|
|
|
process(EXPLOSION_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic EXPLOSION_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic EXPLOSION_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -916,7 +898,7 @@ float AbstractCharacteristics::getExplosionRadius() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(EXPLOSION_RADIUS, &result, isSet);
|
|
|
|
process(EXPLOSION_RADIUS, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic EXPLOSION_RADIUS");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic EXPLOSION_RADIUS");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -926,18 +908,17 @@ float AbstractCharacteristics::getExplosionInvulnerabilityTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(EXPLOSION_INVULNERABILITY_TIME, &result, isSet);
|
|
|
|
process(EXPLOSION_INVULNERABILITY_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic EXPLOSION_INVULNERABILITY_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic EXPLOSION_INVULNERABILITY_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getNitroDuration() const
|
|
|
|
float AbstractCharacteristics::getNitroDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_DURATION, &result, isSet);
|
|
|
|
process(NITRO_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -947,7 +928,7 @@ float AbstractCharacteristics::getNitroEngineForce() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_ENGINE_FORCE, &result, isSet);
|
|
|
|
process(NITRO_ENGINE_FORCE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_ENGINE_FORCE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_ENGINE_FORCE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -957,7 +938,7 @@ float AbstractCharacteristics::getNitroConsumption() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_CONSUMPTION, &result, isSet);
|
|
|
|
process(NITRO_CONSUMPTION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_CONSUMPTION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_CONSUMPTION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -967,7 +948,7 @@ float AbstractCharacteristics::getNitroSmallContainer() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_SMALL_CONTAINER, &result, isSet);
|
|
|
|
process(NITRO_SMALL_CONTAINER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_SMALL_CONTAINER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_SMALL_CONTAINER");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -977,7 +958,7 @@ float AbstractCharacteristics::getNitroBigContainer() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_BIG_CONTAINER, &result, isSet);
|
|
|
|
process(NITRO_BIG_CONTAINER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_BIG_CONTAINER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_BIG_CONTAINER");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -987,7 +968,7 @@ float AbstractCharacteristics::getNitroMaxSpeedIncrease() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_MAX_SPEED_INCREASE, &result, isSet);
|
|
|
|
process(NITRO_MAX_SPEED_INCREASE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_MAX_SPEED_INCREASE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_MAX_SPEED_INCREASE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -997,7 +978,7 @@ float AbstractCharacteristics::getNitroFadeOutTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_FADE_OUT_TIME, &result, isSet);
|
|
|
|
process(NITRO_FADE_OUT_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_FADE_OUT_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_FADE_OUT_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1007,18 +988,17 @@ float AbstractCharacteristics::getNitroMax() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(NITRO_MAX, &result, isSet);
|
|
|
|
process(NITRO_MAX, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_MAX");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic NITRO_MAX");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float AbstractCharacteristics::getSlipstreamDuration() const
|
|
|
|
float AbstractCharacteristics::getSlipstreamDuration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_DURATION, &result, isSet);
|
|
|
|
process(SLIPSTREAM_DURATION, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_DURATION");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_DURATION");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1028,7 +1008,7 @@ float AbstractCharacteristics::getSlipstreamLength() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_LENGTH, &result, isSet);
|
|
|
|
process(SLIPSTREAM_LENGTH, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_LENGTH");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_LENGTH");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1038,7 +1018,7 @@ float AbstractCharacteristics::getSlipstreamWidth() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_WIDTH, &result, isSet);
|
|
|
|
process(SLIPSTREAM_WIDTH, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_WIDTH");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_WIDTH");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1048,7 +1028,7 @@ float AbstractCharacteristics::getSlipstreamCollectTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_COLLECT_TIME, &result, isSet);
|
|
|
|
process(SLIPSTREAM_COLLECT_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_COLLECT_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_COLLECT_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1058,7 +1038,7 @@ float AbstractCharacteristics::getSlipstreamUseTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_USE_TIME, &result, isSet);
|
|
|
|
process(SLIPSTREAM_USE_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_USE_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_USE_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1068,7 +1048,7 @@ float AbstractCharacteristics::getSlipstreamAddPower() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_ADD_POWER, &result, isSet);
|
|
|
|
process(SLIPSTREAM_ADD_POWER, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_ADD_POWER");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_ADD_POWER");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1078,7 +1058,7 @@ float AbstractCharacteristics::getSlipstreamMinSpeed() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_MIN_SPEED, &result, isSet);
|
|
|
|
process(SLIPSTREAM_MIN_SPEED, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_MIN_SPEED");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_MIN_SPEED");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1088,7 +1068,7 @@ float AbstractCharacteristics::getSlipstreamMaxSpeedIncrease() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_MAX_SPEED_INCREASE, &result, isSet);
|
|
|
|
process(SLIPSTREAM_MAX_SPEED_INCREASE, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_MAX_SPEED_INCREASE");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_MAX_SPEED_INCREASE");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
@ -1098,7 +1078,7 @@ float AbstractCharacteristics::getSlipstreamFadeOutTime() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float result;
|
|
|
|
float result;
|
|
|
|
bool isSet = false;
|
|
|
|
bool isSet = false;
|
|
|
|
process(SLIPSTREAM_FADE_OUT_TIME, &result, isSet);
|
|
|
|
process(SLIPSTREAM_FADE_OUT_TIME, &result, &isSet);
|
|
|
|
if (!isSet)
|
|
|
|
if (!isSet)
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_FADE_OUT_TIME");
|
|
|
|
Log::fatal("AbstractCharacteristics", "Can't get characteristic SLIPSTREAM_FADE_OUT_TIME");
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|