This commit is contained in:
Flakebi
2015-04-13 11:10:18 +02:00
parent a3f94f6b67
commit 78b4634363
3 changed files with 173 additions and 382 deletions

71
src/karts/abstract_characteristics.cpp Normal file → Executable file
View File

@@ -18,37 +18,44 @@
#include "karts/abstract_characteristics.hpp"
#include "utils/log.hpp"
#include <cmath>
AbstractCharacteristics::AbstractCharacteristics()
{
// Set all variables to their default value (1)
m_suspension_stiffness = m_suspension_rest = m_suspension_travel_cm =
m_suspension_exp_spring_response = m_suspension_max_force =
m_stability_roll_influence = m_stability_chassis_linear_damping =
m_stability_chassis_angular_damping = m_stability_downward_impulse_factor =
m_stability_track_connection_accel = m_stability_smooth_flying_impulse =
m_turn_time_reset_steer = m_engine_power = m_engine_max_speed =
m_engine_brake_factor = m_engine_brake_time_increase =
m_engine_max_speed_reverse_ratio = m_mass = m_wheels_damping_relaxation =
m_wheels_damping_compression = m_wheels_wheel_radius = m_camera_distance =
m_camera_forward_up_angle = m_camera_backward_up_angle =
m_jump_animation_time = m_lean_max = m_lean_speed = m_anvil_duration =
m_anvil_weight = m_anvil_speed_factor = m_parachute_friction =
m_parachute_duration = m_parachute_duration_other =
m_parachute_lbound_franction = m_parachute_ubound_franction =
m_parachute_max_speed = m_bubblegum_duration = m_bubblegum_speed_fraction =
m_bubblegum_torque = m_bubblegum_fade_in_time =
m_bubblegum_shield_duration = m_zipper_duration = m_zipper_force =
m_zipper_speed_gain = m_zipper_speed_increase = m_zipper_fade_out_time =
m_swatter_duration = m_swatter_distance = m_swatter_squash_duration =
m_swatter_squash_slowdown = m_plunger_max_length = m_plunger_force =
m_plunger_duration = m_plunger_speed_increase = m_plunger_fade_out_time =
m_plunger_in_face_time = m_rescue_duration = m_rescue_vert_offset =
m_rescue_height = m_explosion_duration = m_explosion_radius =
m_explosion_invulnerability_time = m_nitro_duration =
m_nitro_engine_force = m_nitro_consumption = m_nitro_small_container =
m_nitro_big_container = m_nitro_max_speed_increase =
m_nitro_fade_out_time = m_nitro_max = m_slipstream_duration =
m_slipstream_length = m_slipstream_width = m_slipstream_collect_time =
m_slipstream_use_time = m_slipstream_add_power = m_slipstream_min_speed =
m_slipstream_max_speed_increase = m_slipstream_fade_out_time = 1;
}
}
float AbstractCharacteristics::processFloat(CharacteristicType type, float value) const
{
return getFloat(type);
}
std::vector<float> AbstractCharacteristics::processFloatVector(CharacteristicType type, const std::vector<float> &value) const
{
return getFloatVector(type);
}
InterpolationArray AbstractCharacteristics::processInterpolationArray(CharacteristicType type, const InterpolationArray &value) const
{
return getInterpolationArray(type);
}
float AbstractCharacteristics::getFloat(CharacteristicType type) const
{
Log::fatal("AbstractCharacteristics", "This type does not support getFloat");
return NAN;
}
std::vector<float> AbstractCharacteristics::getFloatVector(CharacteristicType type) const
{
Log::fatal("AbstractCharacteristics", "This type does not support getFloatVector");
return std::vector<float>();
}
InterpolationArray AbstractCharacteristics::getInterpolationArray(CharacteristicType type) const
{
Log::fatal("AbstractCharacteristics", "This type does not support getInterpolationArray");
return InterpolationArray();
}

475
src/karts/abstract_characteristics.hpp Normal file → Executable file
View File

@@ -40,14 +40,15 @@ class SkiddingProperties;
*/
class AbstractCharacteristics
{
private:
/* Characteristics that are saved as float. Use the following lines as input
/* The following lines are the input for a script that generates code for this class
Suspension: stiffness, rest, travelCm, expSpringResponse, maxForce
Stability: rollInfluence, chassisLinearDamping, chassisAngularDamping, downwardImpulseFactor, trackConnectionAccel, smoothFlyingImpulse
Turn: timeResetSteer
Turn: radius, timeFullSteer, timeResetSteer
Engine: power, maxSpeed, brakeFactor, brakeTimeIncrease, maxSpeedReverseRatio
Gear: switchRatio, powerIncrease
Mass
Wheels: dampingRelaxation, dampingCompression, wheelRadius
Skidding
Camera: distance, forwardUpAngle, backwardUpAngle
Jump: animationTime
Lean: max, speed
@@ -57,135 +58,121 @@ private:
Zipper: duration, force, speedGain, speedIncrease, fadeOutTime
Swatter: duration, distance, squashDuration, squashSlowdown
Plunger: maxLength, force, duration, speedIncrease, fadeOutTime, inFaceTime
Startup: time, boost
Rescue: duration, vertOffset, height
Explosion: duration, radius, invulnerabilityTime
Nitro: duration, engineForce, consumption, smallContainer, bigContainer, maxSpeedIncrease, fadeOutTime, max
Slipstream: duration, length, width, collectTime, useTime, addPower, minSpeed, maxSpeedIncrease, fadeOutTime
*/
/* ---------- Variables generated by the script ---------- */
// Suspension
float m_suspension_stiffness;
float m_suspension_rest;
float m_suspension_travel_cm;
float m_suspension_exp_spring_response;
float m_suspension_max_force;
// Stability
float m_stability_roll_influence;
float m_stability_chassis_linear_damping;
float m_stability_chassis_angular_damping;
float m_stability_downward_impulse_factor;
float m_stability_track_connection_accel;
float m_stability_smooth_flying_impulse;
public:
enum CharacteristicType
{
// Suspension
SUSPENSION_STIFFNESS,
SUSPENSION_REST,
SUSPENSION_TRAVEL_CM,
SUSPENSION_EXP_SPRING_RESPONSE,
SUSPENSION_MAX_FORCE,
// Stability
STABILITY_ROLL_INFLUENCE,
STABILITY_CHASSIS_LINEAR_DAMPING,
STABILITY_CHASSIS_ANGULAR_DAMPING,
STABILITY_DOWNWARD_IMPULSE_FACTOR,
STABILITY_TRACK_CONNECTION_ACCEL,
STABILITY_SMOOTH_FLYING_IMPULSE,
// Turn
TURN_TIME_RESET_STEER,
// Engine
ENGINE_POWER,
ENGINE_MAX_SPEED,
ENGINE_BRAKE_FACTOR,
ENGINE_BRAKE_TIME_INCREASE,
ENGINE_MAX_SPEED_REVERSE_RATIO,
// Mass
MASS,
// Wheels
WHEELS_DAMPING_RELAXATION,
WHEELS_DAMPING_COMPRESSION,
WHEELS_WHEEL_RADIUS,
// Camera
CAMERA_DISTANCE,
CAMERA_FORWARD_UP_ANGLE,
CAMERA_BACKWARD_UP_ANGLE,
// Jump
JUMP_ANIMATION_TIME,
// Lean
LEAN_MAX,
LEAN_SPEED,
// Anvil
ANVIL_DURATION,
ANVIL_WEIGHT,
ANVIL_SPEED_FACTOR,
// Parachute
PARACHUTE_FRICTION,
PARACHUTE_DURATION,
PARACHUTE_DURATION_OTHER,
PARACHUTE_LBOUND_FRANCTION,
PARACHUTE_UBOUND_FRANCTION,
PARACHUTE_MAX_SPEED,
// Bubblegum
BUBBLEGUM_DURATION,
BUBBLEGUM_SPEED_FRACTION,
BUBBLEGUM_TORQUE,
BUBBLEGUM_FADE_IN_TIME,
BUBBLEGUM_SHIELD_DURATION,
// Zipper
ZIPPER_DURATION,
ZIPPER_FORCE,
ZIPPER_SPEED_GAIN,
ZIPPER_SPEED_INCREASE,
ZIPPER_FADE_OUT_TIME,
// Swatter
SWATTER_DURATION,
SWATTER_DISTANCE,
SWATTER_SQUASH_DURATION,
SWATTER_SQUASH_SLOWDOWN,
// Plunger
PLUNGER_MAX_LENGTH,
PLUNGER_FORCE,
PLUNGER_DURATION,
PLUNGER_SPEED_INCREASE,
PLUNGER_FADE_OUT_TIME,
PLUNGER_IN_FACE_TIME,
// Rescue
RESCUE_DURATION,
RESCUE_VERT_OFFSET,
RESCUE_HEIGHT,
// Explosion
EXPLOSION_DURATION,
EXPLOSION_RADIUS,
EXPLOSION_INVULNERABILITY_TIME,
// Nitro
NITRO_DURATION,
NITRO_ENGINE_FORCE,
NITRO_CONSUMPTION,
NITRO_SMALL_CONTAINER,
NITRO_BIG_CONTAINER,
NITRO_MAX_SPEED_INCREASE,
NITRO_FADE_OUT_TIME,
NITRO_MAX,
// Slipstream
SLIPSTREAM_DURATION,
SLIPSTREAM_LENGTH,
SLIPSTREAM_WIDTH,
SLIPSTREAM_COLLECT_TIME,
SLIPSTREAM_USE_TIME,
SLIPSTREAM_ADD_POWER,
SLIPSTREAM_MIN_SPEED,
SLIPSTREAM_MAX_SPEED_INCREASE,
SLIPSTREAM_FADE_OUT_TIME,
// Count
CHARACTERISTIC_COUNT
};
private:
// Turn
float m_turn_time_reset_steer;
// Engine
float m_engine_power;
float m_engine_max_speed;
float m_engine_brake_factor;
float m_engine_brake_time_increase;
float m_engine_max_speed_reverse_ratio;
// Mass
float m_mass;
// Wheels
float m_wheels_damping_relaxation;
float m_wheels_damping_compression;
float m_wheels_wheel_radius;
// Camera
float m_camera_distance;
float m_camera_forward_up_angle;
float m_camera_backward_up_angle;
// Jump
float m_jump_animation_time;
// Lean
float m_lean_max;
float m_lean_speed;
// Anvil
float m_anvil_duration;
float m_anvil_weight;
float m_anvil_speed_factor;
// Parachute
float m_parachute_friction;
float m_parachute_duration;
float m_parachute_duration_other;
float m_parachute_lbound_franction;
float m_parachute_ubound_franction;
float m_parachute_max_speed;
// Bubblegum
float m_bubblegum_duration;
float m_bubblegum_speed_fraction;
float m_bubblegum_torque;
float m_bubblegum_fade_in_time;
float m_bubblegum_shield_duration;
// Zipper
float m_zipper_duration;
float m_zipper_force;
float m_zipper_speed_gain;
float m_zipper_speed_increase;
float m_zipper_fade_out_time;
// Swatter
float m_swatter_duration;
float m_swatter_distance;
float m_swatter_squash_duration;
float m_swatter_squash_slowdown;
// Plunger
float m_plunger_max_length;
float m_plunger_force;
float m_plunger_duration;
float m_plunger_speed_increase;
float m_plunger_fade_out_time;
float m_plunger_in_face_time;
// Rescue
float m_rescue_duration;
float m_rescue_vert_offset;
float m_rescue_height;
// Explosion
float m_explosion_duration;
float m_explosion_radius;
float m_explosion_invulnerability_time;
// Nitro
float m_nitro_duration;
float m_nitro_engine_force;
float m_nitro_consumption;
float m_nitro_small_container;
float m_nitro_big_container;
float m_nitro_max_speed_increase;
float m_nitro_fade_out_time;
float m_nitro_max;
// Slipstream
float m_slipstream_duration;
float m_slipstream_length;
float m_slipstream_width;
float m_slipstream_collect_time;
float m_slipstream_use_time;
float m_slipstream_add_power;
float m_slipstream_min_speed;
float m_slipstream_max_speed_increase;
float m_slipstream_fade_out_time;
/* ---------- Variables added by hand ---------- */
// Turn
InterpolationArray m_turn_radius;
/*InterpolationArray m_turn_radius;
InterpolationArray m_turn_time_full_steer;
// Gear
@@ -193,242 +180,32 @@ private:
std::vector<float> m_gear_power_increase;
// Wheels
std::vector<Vec3> m_wheel_position;
std::vector<Vec3> m_wheel_position;*/
// Skid
SkiddingProperties *m_skidding;
/* ---------- Miscellaneous ---------- */
/** The skididing properties for this kart, as a separate object in order
* to reduce dependencies (and therefore compile time) when changing
* any skidding property. */
/*SkiddingProperties *m_skidding;
// Startup
std::vector<float> m_startup_time;
std::vector<float> m_startup_boost;
std::vector<float> m_startup_boost;*/
public:
AbstractCharacteristics();
/* ---------- Getters generated by the script ---------- */
virtual const SkiddingProperties* getSkiddingProperties() const;
float getSuspensionStiffness() const { return m_suspension_stiffness; }
float getSuspensionRest() const { return m_suspension_rest; }
float getSuspensionTravelCm() const { return m_suspension_travel_cm; }
float getSuspensionExpSpringResponse() const { return m_suspension_exp_spring_response; }
float getSuspensionMaxForce() const { return m_suspension_max_force; }
virtual float processFloat(CharacteristicType type, float value) const;
virtual std::vector<float> processFloatVector(CharacteristicType type,
const std::vector<float> &value) const;
virtual InterpolationArray processInterpolationArray(CharacteristicType type,
const InterpolationArray &value) const;
float getStabilityRollInfluence() const { return m_stability_roll_influence; }
float getStabilityChassisLinearDamping() const { return m_stability_chassis_linear_damping; }
float getStabilityChassisAngularDamping() const { return m_stability_chassis_angular_damping; }
float getStabilityDownwardImpulseFactor() const { return m_stability_downward_impulse_factor; }
float getStabilityTrackConnectionAccel() const { return m_stability_track_connection_accel; }
float getStabilitySmoothFlyingImpulse() const { return m_stability_smooth_flying_impulse; }
float getTurnTimeResetSteer() const { return m_turn_time_reset_steer; }
float getEnginePower() const { return m_engine_power; }
float getEngineMaxSpeed() const { return m_engine_max_speed; }
float getEngineBrakeFactor() const { return m_engine_brake_factor; }
float getEngineBrakeTimeIncrease() const { return m_engine_brake_time_increase; }
float getEngineMaxSpeedReverseRatio() const { return m_engine_max_speed_reverse_ratio; }
float getMass() const { return m_mass; }
float getWheelsDampingRelaxation() const { return m_wheels_damping_relaxation; }
float getWheelsDampingCompression() const { return m_wheels_damping_compression; }
float getWheelsWheelRadius() const { return m_wheels_wheel_radius; }
float getCameraDistance() const { return m_camera_distance; }
float getCameraForwardUpAngle() const { return m_camera_forward_up_angle; }
float getCameraBackwardUpAngle() const { return m_camera_backward_up_angle; }
float getJumpAnimationTime() const { return m_jump_animation_time; }
float getLeanMax() const { return m_lean_max; }
float getLeanSpeed() const { return m_lean_speed; }
float getAnvilDuration() const { return m_anvil_duration; }
float getAnvilWeight() const { return m_anvil_weight; }
float getAnvilSpeedFactor() const { return m_anvil_speed_factor; }
float getParachuteFriction() const { return m_parachute_friction; }
float getParachuteDuration() const { return m_parachute_duration; }
float getParachuteDurationOther() const { return m_parachute_duration_other; }
float getParachuteLboundFranction() const { return m_parachute_lbound_franction; }
float getParachuteUboundFranction() const { return m_parachute_ubound_franction; }
float getParachuteMaxSpeed() const { return m_parachute_max_speed; }
float getBubblegumDuration() const { return m_bubblegum_duration; }
float getBubblegumSpeedFraction() const { return m_bubblegum_speed_fraction; }
float getBubblegumTorque() const { return m_bubblegum_torque; }
float getBubblegumFadeInTime() const { return m_bubblegum_fade_in_time; }
float getBubblegumShieldDuration() const { return m_bubblegum_shield_duration; }
float getZipperDuration() const { return m_zipper_duration; }
float getZipperForce() const { return m_zipper_force; }
float getZipperSpeedGain() const { return m_zipper_speed_gain; }
float getZipperSpeedIncrease() const { return m_zipper_speed_increase; }
float getZipperFadeOutTime() const { return m_zipper_fade_out_time; }
float getSwatterDuration() const { return m_swatter_duration; }
float getSwatterDistance() const { return m_swatter_distance; }
float getSwatterSquashDuration() const { return m_swatter_squash_duration; }
float getSwatterSquashSlowdown() const { return m_swatter_squash_slowdown; }
float getPlungerMaxLength() const { return m_plunger_max_length; }
float getPlungerForce() const { return m_plunger_force; }
float getPlungerDuration() const { return m_plunger_duration; }
float getPlungerSpeedIncrease() const { return m_plunger_speed_increase; }
float getPlungerFadeOutTime() const { return m_plunger_fade_out_time; }
float getPlungerInFaceTime() const { return m_plunger_in_face_time; }
float getRescueDuration() const { return m_rescue_duration; }
float getRescueVertOffset() const { return m_rescue_vert_offset; }
float getRescueHeight() const { return m_rescue_height; }
float getExplosionDuration() const { return m_explosion_duration; }
float getExplosionRadius() const { return m_explosion_radius; }
float getExplosionInvulnerabilityTime() const { return m_explosion_invulnerability_time; }
float getNitroDuration() const { return m_nitro_duration; }
float getNitroEngineForce() const { return m_nitro_engine_force; }
float getNitroConsumption() const { return m_nitro_consumption; }
float getNitroSmallContainer() const { return m_nitro_small_container; }
float getNitroBigContainer() const { return m_nitro_big_container; }
float getNitroMaxSpeedIncrease() const { return m_nitro_max_speed_increase; }
float getNitroFadeOutTime() const { return m_nitro_fade_out_time; }
float getNitroMax() const { return m_nitro_max; }
float getSlipstreamDuration() const { return m_slipstream_duration; }
float getSlipstreamLength() const { return m_slipstream_length; }
float getSlipstreamWidth() const { return m_slipstream_width; }
float getSlipstreamCollectTime() const { return m_slipstream_collect_time; }
float getSlipstreamUseTime() const { return m_slipstream_use_time; }
float getSlipstreamAddPower() const { return m_slipstream_add_power; }
float getSlipstreamMinSpeed() const { return m_slipstream_min_speed; }
float getSlipstreamMaxSpeedIncrease() const { return m_slipstream_max_speed_increase; }
float getSlipstreamFadeOutTime() const { return m_slipstream_fade_out_time; }
/* ---------- Getters added by hand ---------- */
float getTurnRadius(float steer) const { return m_turn_radius.get(steer); }
float getTurnTimeFullSteer(float steer) const { return m_turn_time_full_steer.get(steer); }
float getGearSwitchRatio(int gear) const { return m_gear_switch_ratio[gear]; }
float getGearPowerIncrease(int gear) const { return m_gear_power_increase[gear]; }
Vec3 getWheelPosition(int wheel) const { return m_wheel_position[wheel]; }
SkiddingProperties* getSkiddingProperties() const { return m_skidding; }
protected:
/* ---------- Setters generated by the script ---------- */
void setSuspensionStiffness(float value) { m_suspension_stiffness = value; }
void setSuspensionRest(float value) { m_suspension_rest = value; }
void setSuspensionTravelCm(float value) { m_suspension_travel_cm = value; }
void setSuspensionExpSpringResponse(float value) { m_suspension_exp_spring_response = value; }
void setSuspensionMaxForce(float value) { m_suspension_max_force = value; }
void setStabilityRollInfluence(float value) { m_stability_roll_influence = value; }
void setStabilityChassisLinearDamping(float value) { m_stability_chassis_linear_damping = value; }
void setStabilityChassisAngularDamping(float value) { m_stability_chassis_angular_damping = value; }
void setStabilityDownwardImpulseFactor(float value) { m_stability_downward_impulse_factor = value; }
void setStabilityTrackConnectionAccel(float value) { m_stability_track_connection_accel = value; }
void setStabilitySmoothFlyingImpulse(float value) { m_stability_smooth_flying_impulse = value; }
void setTurnTimeResetSteer(float value) { m_turn_time_reset_steer = value; }
void setEnginePower(float value) { m_engine_power = value; }
void setEngineMaxSpeed(float value) { m_engine_max_speed = value; }
void setEngineBrakeFactor(float value) { m_engine_brake_factor = value; }
void setEngineBrakeTimeIncrease(float value) { m_engine_brake_time_increase = value; }
void setEngineMaxSpeedReverseRatio(float value) { m_engine_max_speed_reverse_ratio = value; }
void setMass(float value) { m_mass = value; }
void setWheelsDampingRelaxation(float value) { m_wheels_damping_relaxation = value; }
void setWheelsDampingCompression(float value) { m_wheels_damping_compression = value; }
void setWheelsWheelRadius(float value) { m_wheels_wheel_radius = value; }
void setCameraDistance(float value) { m_camera_distance = value; }
void setCameraForwardUpAngle(float value) { m_camera_forward_up_angle = value; }
void setCameraBackwardUpAngle(float value) { m_camera_backward_up_angle = value; }
void setJumpAnimationTime(float value) { m_jump_animation_time = value; }
void setLeanMax(float value) { m_lean_max = value; }
void setLeanSpeed(float value) { m_lean_speed = value; }
void setAnvilDuration(float value) { m_anvil_duration = value; }
void setAnvilWeight(float value) { m_anvil_weight = value; }
void setAnvilSpeedFactor(float value) { m_anvil_speed_factor = value; }
void setParachuteFriction(float value) { m_parachute_friction = value; }
void setParachuteDuration(float value) { m_parachute_duration = value; }
void setParachuteDurationOther(float value) { m_parachute_duration_other = value; }
void setParachuteLboundFranction(float value) { m_parachute_lbound_franction = value; }
void setParachuteUboundFranction(float value) { m_parachute_ubound_franction = value; }
void setParachuteMaxSpeed(float value) { m_parachute_max_speed = value; }
void setBubblegumDuration(float value) { m_bubblegum_duration = value; }
void setBubblegumSpeedFraction(float value) { m_bubblegum_speed_fraction = value; }
void setBubblegumTorque(float value) { m_bubblegum_torque = value; }
void setBubblegumFadeInTime(float value) { m_bubblegum_fade_in_time = value; }
void setBubblegumShieldDuration(float value) { m_bubblegum_shield_duration = value; }
void setZipperDuration(float value) { m_zipper_duration = value; }
void setZipperForce(float value) { m_zipper_force = value; }
void setZipperSpeedGain(float value) { m_zipper_speed_gain = value; }
void setZipperSpeedIncrease(float value) { m_zipper_speed_increase = value; }
void setZipperFadeOutTime(float value) { m_zipper_fade_out_time = value; }
void setSwatterDuration(float value) { m_swatter_duration = value; }
void setSwatterDistance(float value) { m_swatter_distance = value; }
void setSwatterSquashDuration(float value) { m_swatter_squash_duration = value; }
void setSwatterSquashSlowdown(float value) { m_swatter_squash_slowdown = value; }
void setPlungerMaxLength(float value) { m_plunger_max_length = value; }
void setPlungerForce(float value) { m_plunger_force = value; }
void setPlungerDuration(float value) { m_plunger_duration = value; }
void setPlungerSpeedIncrease(float value) { m_plunger_speed_increase = value; }
void setPlungerFadeOutTime(float value) { m_plunger_fade_out_time = value; }
void setPlungerInFaceTime(float value) { m_plunger_in_face_time = value; }
void setRescueDuration(float value) { m_rescue_duration = value; }
void setRescueVertOffset(float value) { m_rescue_vert_offset = value; }
void setRescueHeight(float value) { m_rescue_height = value; }
void setExplosionDuration(float value) { m_explosion_duration = value; }
void setExplosionRadius(float value) { m_explosion_radius = value; }
void setExplosionInvulnerabilityTime(float value) { m_explosion_invulnerability_time = value; }
void setNitroDuration(float value) { m_nitro_duration = value; }
void setNitroEngineForce(float value) { m_nitro_engine_force = value; }
void setNitroConsumption(float value) { m_nitro_consumption = value; }
void setNitroSmallContainer(float value) { m_nitro_small_container = value; }
void setNitroBigContainer(float value) { m_nitro_big_container = value; }
void setNitroMaxSpeedIncrease(float value) { m_nitro_max_speed_increase = value; }
void setNitroFadeOutTime(float value) { m_nitro_fade_out_time = value; }
void setNitroMax(float value) { m_nitro_max = value; }
void setSlipstreamDuration(float value) { m_slipstream_duration = value; }
void setSlipstreamLength(float value) { m_slipstream_length = value; }
void setSlipstreamWidth(float value) { m_slipstream_width = value; }
void setSlipstreamCollectTime(float value) { m_slipstream_collect_time = value; }
void setSlipstreamUseTime(float value) { m_slipstream_use_time = value; }
void setSlipstreamAddPower(float value) { m_slipstream_add_power = value; }
void setSlipstreamMinSpeed(float value) { m_slipstream_min_speed = value; }
void setSlipstreamMaxSpeedIncrease(float value) { m_slipstream_max_speed_increase = value; }
void setSlipstreamFadeOutTime(float value) { m_slipstream_fade_out_time = value; }
/* ---------- Setters added by hand ---------- */
void setGearSwitchRatio(int gear, float value) { m_gear_switch_ratio[gear] = value; }
void setGearPowerIncrease(int gear, float value) { m_gear_power_increase[gear] = value; }
void setWheelPosition(int wheel, Vec3 value) { m_wheel_position[wheel] = value; }
virtual float getFloat(CharacteristicType type) const;
virtual std::vector<float> getFloatVector(CharacteristicType type) const;
virtual InterpolationArray getInterpolationArray(CharacteristicType type) const;
};
#endif

9
tools/create_kart_properties.py Normal file → Executable file
View File

@@ -104,6 +104,13 @@ def main():
# Print the results
print("Variables ****************************************")
for g in groups:
print(" // {0}".format(g.baseName.title()))
for n in g.subNames:
print(" {0},".format(joinSubName(g, n, False).upper()))
# Commented out code
"""print("Variables ****************************************")
for g in groups:
print()
print(" // {0}".format(g.baseName.title()))
@@ -153,7 +160,7 @@ def main():
nameUnderscore = joinSubName(g, n, False)
print(" void set{0}(float value){2} {{ m_{1}{3} = value; }}".
format(nameTitle, nameUnderscore, " " * (nameLengthTitle - len(nameTitle)),
" " * (nameLengthUnderscore - len(nameUnderscore))))
" " * (nameLengthUnderscore - len(nameUnderscore))))"""
if __name__ == '__main__':
main()