|
enum | SkidState {
SKID_NONE
, SKID_ACCUMULATE_LEFT
, SKID_ACCUMULATE_RIGHT
, SKID_SHOW_GFX_LEFT
,
SKID_SHOW_GFX_RIGHT
, SKID_BREAK
} |
| SKID_NONE: Kart is currently not skidding. More...
|
|
|
| LEAK_CHECK () |
|
| Skidding (Kart *kart) |
| Constructor of the skidding object.
|
|
void | reset () |
| Resets all skidding related values.
|
|
float | updateGraphics (float dt) |
| Called once per rendered frame to potentially update the graphical jump height.
|
|
void | update (int dt, bool is_on_ground, float steer, KartControl::SkidControl skidding) |
| Updates skidding status.
|
|
void | saveState (BareNetworkString *buffer) |
| Save the skidding state of a kart.
|
|
void | rewindTo (BareNetworkString *buffer) |
| Restores the skidding state of a kart.
|
|
float | getVisualSkidRotation () const |
| Determines how much the graphics model of the kart should be rotated additionally (for skidding), depending on how long the kart has been skidding etc.
|
|
float | getSkidFactor () const |
| Returns the current skid factor in [1, skid_max_for_this_kart].
|
|
bool | isSkidding () const |
| Returns true if the kart is skidding.
|
|
float | getSteeringFraction () |
| Returns the steering fraction to be used by the physics.
|
|
SkidState | getSkidState () const |
| Returns the skidding state.
|
|
float | getSteeringWhenSkidding (float steering) const |
| Returns the steering value necessary to set in KartControls.m_steer in order to actually to steer the specified amount in 'steering'.
|
|
bool | getSkidBonusReady () const |
| Returns if the kart has skidded long enough to get a skid bonus if it stopped skidding now.
|
|
bool | isJumping () const |
|
void | prepareSmoothing () |
|
void | checkSmoothing () |
|
|
unsigned int | getSkidBonus (float *bonus_time, float *bonus_speed, float *bonus_force) const |
| Determines the bonus time and speed given the currently accumulated m_skid_time.
|
|
float | updateSteering (float steer, int ticks) |
| Computes the actual steering fraction to be used in the physics, and stores it in m_real_skidding.
|
|
|
float | m_skid_reduce_turn_delta |
| This is m_skid_reduce_turn_max - m_skid_reduce_turn_min.
|
|
float | m_real_steering |
| This is the actual steering (in fraction of max-steering-angle) to be used by this kart.
|
|
float | m_visual_rotation |
| An additional rotation (heading) of the kart while skidding.
|
|
float | m_skid_factor |
| Accumulated skidding factor.
|
|
uint16_t | m_skid_time |
| Keeps track on how long a kart has been skidding, in order to trigger the skidding bonus.
|
|
bool | m_skid_bonus_ready |
| True if the kart has skidded long enough to get a skid bonus if it stopped skidding now.
|
|
float | m_remaining_jump_time |
| Set to >0 when a graphical jump is to be done.
|
|
float | m_graphical_remaining_jump_time |
|
float | m_prev_visual_rotation |
|
float | m_smoothing_time |
|
float | m_smoothing_dt |
|
int | m_skid_bonus_end_ticks |
|
SkidState | m_skid_state |
| The current skidding state.
|
|
Kart * | m_kart |
| A read-only pointer to the kart's properties.
|
|
◆ SkidState
SKID_NONE: Kart is currently not skidding.
SKID_ACCUMULATE_LEFT: Kart is skidding to the left and accumulating for bonus. SKID_ACCUMULATE_RIGHT: Similar for turning right SKID_SHOW_GFX_LEFT: Shows the gfx, while the bonus is active, and the kart was turning left. SKID_SHOW_GFX_RIGHT: Similar for turning right. SKID_BREAK: Skidding was stopped without bonus
◆ getSkidBonus()
unsigned int Skidding::getSkidBonus |
( |
float * |
bonus_time, |
|
|
float * |
bonus_speed, |
|
|
float * |
bonus_force |
|
) |
| const |
|
private |
Determines the bonus time and speed given the currently accumulated m_skid_time.
- Parameters
-
bonus_time | On return contains how long the bonus should be active. |
bonus_speed | How much additional speed the kart should get. |
bonus_force | Additional engine force. |
- Returns
- The bonus level: 0 = no bonus, 1 = first entry in bonus array etc.
◆ getSkidBonusReady()
bool Skidding::getSkidBonusReady |
( |
| ) |
const |
|
inline |
Returns if the kart has skidded long enough to get a skid bonus if it stopped skidding now.
This function returns false if the kart is actually using the skid bonus.
◆ getSteeringFraction()
float Skidding::getSteeringFraction |
( |
| ) |
|
|
inline |
Returns the steering fraction to be used by the physics.
This is a fraction of the maximum steering angle ( so in [-1, 1]).
◆ getSteeringWhenSkidding()
float Skidding::getSteeringWhenSkidding |
( |
float |
steering | ) |
const |
Returns the steering value necessary to set in KartControls.m_steer in order to actually to steer the specified amount in 'steering'.
If the kart is not skidding, the return value is just 'steering'. Otherwise the return value will be (depending on current skidding direction) 'steering1', so that when the kart steers 'steering1', it will de facto steer by the original 'steering' amount. This function might return a result outside of [-1,1] if the specified steering can not be reached (e.g. due to skidding)
◆ rewindTo()
Restores the skidding state of a kart.
- Parameters
-
buffer | Buffer with state information. |
◆ saveState()
Save the skidding state of a kart.
It only saves the important physics values including m_remaining_jump_time (while this is mostly a graphical effect, you can't skid while still doing a jump, so it does affect the state). Similarly m_real_steering is output of updateRewind() and will be recomputed every frame when update() is called, and similar for m_skid_bonus_ready
- Parameters
-
buffer | Buffer for the state information. |
◆ update()
Updates skidding status.
- Parameters
-
ticks | Number of physics time steps - should be 1. |
is_on_ground | True if the kart is on ground. |
steering | Raw steering of the kart [-1,1], i.e. not adjusted by the kart's max steering angle. |
skidding | True if the skid button is pressed. |
◆ updateGraphics()
float Skidding::updateGraphics |
( |
float |
dt | ) |
|
Called once per rendered frame to potentially update the graphical jump height.
The jump at the start of a skid is graphical only.
- Parameters
-
- Returns
- Current height of the jump.
◆ updateSteering()
float Skidding::updateSteering |
( |
float |
steer, |
|
|
int |
ticks |
|
) |
| |
|
private |
Computes the actual steering fraction to be used in the physics, and stores it in m_real_skidding.
This is later used by kart to set the physical steering. The real steering takes skidding into account: if the kart skids either left or right, the steering fraction is bound by reduce-turn-min and reduce-turn-max.
◆ m_visual_rotation
float Skidding::m_visual_rotation |
|
private |
An additional rotation (heading) of the kart while skidding.
This is only a graphical effect, the actual physics body is not rotated.
The documentation for this class was generated from the following files: