SuperTuxKart
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
GhostKart Class Reference

A ghost kart. More...

#include <ghost_kart.hpp>

Inheritance diagram for GhostKart:
Inheritance graph
[legend]

Public Member Functions

 GhostKart (const std::string &ident, unsigned int world_kart_id, int position, float color_hue, const ReplayPlay::ReplayData &rd)
 
virtual void update (int ticks) OVERRIDE
 Updates the current event of the ghost kart using interpolation.
 
virtual void updateGraphics (float dt) OVERRIDE
 Called once per rendered frame.
 
virtual void reset () OVERRIDE
 Reset before a new race.
 
virtual void applyEngineForce (float force) OVERRIDE
 No physics for ghost kart.
 
virtual void createPhysics () OVERRIDE
 Creates the physical representation of this kart.
 
const float getSuspensionLength (int index, int wheel) const
 
void addReplayEvent (float time, const btTransform &trans, const ReplayBase::PhysicInfo &pi, const ReplayBase::BonusInfo &bi, const ReplayBase::KartReplayEvent &kre)
 
virtual bool isGhostKart () const OVERRIDE
 Returns whether this kart is a ghost (replay) kart.
 
virtual bool isInvulnerable () const OVERRIDE
 Ghost can't be hunted.
 
virtual float getSpeed () const OVERRIDE
 Returns the speed of the kart in meters/second.
 
float getGhostFinishTime ()
 Returns the finished time for a ghost kart.
 
virtual float getTimeForDistance (float distance) OVERRIDE
 Returns the time at which the kart was at a given distance.
 
float getTimeForEggs (int egg_number)
 Returns the smallest time at which the kart had the required number of eggs Returns -1.0f if none.
 
virtual void kartIsInRestNow () OVERRIDE
 Computes the transform of the graphical kart chasses with regards to the physical chassis.
 
virtual void makeKartRest () OVERRIDE
 Called before go phase to make sure all karts start at the same position in case there is a slope.
 
const ReplayPlay::ReplayDatagetReplayData () const
 
- Public Member Functions inherited from Kart
 Kart (const std::string &ident, unsigned int world_kart_id, int position, const btTransform &init_transform, HandicapLevel handicap, std::shared_ptr< GE::GERenderInfo > ri)
 The kart constructor.
 
virtual ~Kart ()
 The destructor frees the memory of this kart, but note that the actual kart model is still stored in the kart_properties (m_kart_model variable), so it is not reloaded).
 
virtual void init (RaceManager::KartType type) OVERRIDE
 This is a second initialisation phase, necessary since in the constructor virtual functions are not called for any superclasses.
 
virtual void kartIsInRestNow () OVERRIDE
 Computes the transform of the graphical kart chasses with regards to the physical chassis.
 
virtual void updateGraphics (float dt) OVERRIDE
 Updates the graphics model.
 
virtual void createPhysics ()
 Creates the physical representation of this kart.
 
virtual bool isInRest () const OVERRIDE
 Returns true if the kart is 'resting', i.e.
 
virtual void applyEngineForce (float force)
 Applies engine power to all the wheels that are traction capable, so other parts of code do not have to be adjusted to simulate different kinds of vehicles in the general case, only if they are trying to simulate traction control, diferentials or multiple independent electric engines, they will have to tweak the power in a per wheel basis.
 
virtual void flyUp () OVERRIDE
 Enter flying mode.
 
virtual void flyDown () OVERRIDE
 
virtual void startEngineSFX () OVERRIDE
 Starts the engine sound effect.
 
virtual void collectedItem (ItemState *item) OVERRIDE
 Called when an item is collected.
 
virtual float getStartupBoostFromStartTicks (int ticks) const OVERRIDE
 Called the first time a kart accelerates after 'ready'.
 
virtual float getStartupBoost () const OVERRIDE
 
virtual void setStartupBoost (float val) OVERRIDE
 
virtual const MaterialgetMaterial () const OVERRIDE
 Returns the current material the kart is on.
 
virtual const MaterialgetLastMaterial () const OVERRIDE
 Returns the previous material the kart was one (which might be the same as getMaterial() ).
 
virtual float getTerrainPitch (float heading) const OVERRIDE
 Returns the pitch of the terrain depending on the heading.
 
virtual void reset () OVERRIDE
 Reset before a new race.
 
virtual void handleZipper (const Material *m=NULL, bool play_sound=false) OVERRIDE
 Sets zipper time, and apply one time additional speed boost.
 
virtual bool setSquash (float time, float slowdown) OVERRIDE
 Squashes this kart: it will scale the kart in up direction, and causes a slowdown while this kart is squashed.
 
void setSquashGraphics ()
 
virtual void unsetSquash () OVERRIDE
 Makes the kart unsquashed again.
 
virtual void crashed (AbstractKart *k, bool update_attachments) OVERRIDE
 Called when the kart crashes against another kart.
 
virtual void crashed (const Material *m, const Vec3 &normal) OVERRIDE
 Kart hits the track with a given material.
 
virtual float getHoT () const OVERRIDE
 Returns the height of the terrain.
 
virtual void update (int ticks) OVERRIDE
 Updates the kart in each time step.
 
virtual void finishedRace (float time, bool from_server=false) OVERRIDE
 Sets that this kart has finished the race and finishing time.
 
virtual void setPosition (int p) OVERRIDE
 Sets the position in race this kart has .
 
virtual void beep () OVERRIDE
 Plays a beep sfx.
 
virtual void showZipperFire () OVERRIDE
 Show fire to go with a zipper.
 
virtual bool playCustomSFX (unsigned int type) OVERRIDE
 This function will play a particular character voice for this kart.
 
virtual void setController (Controller *controller) OVERRIDE
 Saves the old controller in m_saved_controller and stores a new controller.
 
virtual void setXYZ (const Vec3 &a) OVERRIDE
 Sets the XYZ coordinates of the moveable.
 
virtual void changeKart (const std::string &new_ident, HandicapLevel handicap, std::shared_ptr< GE::GERenderInfo > ri, const KartData &kart_data=KartData()) OVERRIDE
 Change to new kart instancely (used in network live join).
 
virtual void adjustSpeed (float f) OVERRIDE
 Multiplies the velocity of the kart by a factor f (both linear and angular).
 
virtual void increaseMaxSpeed (unsigned int category, float add_speed, float engine_force, int duration, int fade_out_time) OVERRIDE
 Sets an increased maximum speed for a category.
 
virtual void instantSpeedIncrease (unsigned int category, float add_max_speed, float speed_boost, float engine_force, int duration, int fade_out_time) OVERRIDE
 This adjusts the top speed using increaseMaxSpeed, but additionally causes an instant speed boost, which can be smaller than add-max-speed.
 
virtual void setSlowdown (unsigned int category, float max_speed_fraction, int fade_in_time) OVERRIDE
 Defines a slowdown, which is in fraction of top speed.
 
virtual int getSpeedIncreaseTicksLeft (unsigned int category) const OVERRIDE
 Returns how much increased speed time is left over in the given category.
 
virtual float getSpeed () const OVERRIDE
 Returns the speed of the kart in meters/second.
 
virtual float getCurrentMaxSpeed () const OVERRIDE
 Returns the current maximum speed for this kart, this includes all bonus and maluses that are currently applied.
 
virtual void setSpeed (float s) OVERRIDE
 This is used on the client side only to set the speed of the kart from the server information.
 
virtual float getMaxSteerAngle () const OVERRIDE
 Returns the maximum steering angle for this kart, which depends on the speed.
 
virtual float getTimeFullSteer (float steer) const OVERRIDE
 Returns the time till full steering is reached for this kart.
 
virtual float getSpeedForTurnRadius (float radius) const OVERRIDE
 Returns the (maximum) speed for a given turn radius.
 
virtual float getMaxSteerAngle (float speed) const
 Returns the maximum steering angle (depending on speed).
 
virtual const SkiddinggetSkidding () const OVERRIDE
 Returns the skidding object for this kart (which can be used to query skidding related values).
 
virtual SkiddinggetSkidding () OVERRIDE
 Returns the skidding object for this kart (which can be used to query skidding related values) - non-const.
 
virtual float getEnergy () const OVERRIDE
 Returns the remaining collected energy.
 
virtual void setEnergy (float val) OVERRIDE
 Sets the energy the kart has collected.
 
virtual bool isOnMinNitroTime () const OVERRIDE
 Return whether nitro is being used despite the nitro button not being pressed due to minimal use time requirements.
 
virtual void setPowerup (PowerupManager::PowerupType t, int n) OVERRIDE
 Sets a new powerup.
 
virtual void setLastUsedPowerup (PowerupManager::PowerupType t)
 Sets the last used powerup.
 
virtual const PowerupgetPowerup () const OVERRIDE
 Returns the current powerup.
 
virtual PowerupgetPowerup () OVERRIDE
 Returns the current powerup.
 
virtual PowerupManager::PowerupType getLastUsedPowerup () OVERRIDE
 Returns the last used powerup.
 
virtual int getNumPowerup () const OVERRIDE
 Returns the number of powerups.
 
virtual void setInvulnerableTicks (int ticks) OVERRIDE
 Makes a kart invulnerable for a certain amount of time.
 
virtual bool isInvulnerable () const OVERRIDE
 Returns if the kart is invulnerable.
 
virtual int getBlockedByPlungerTicks () const OVERRIDE
 Returns true if the kart has a plunger attached to its face.
 
virtual void blockViewWithPlunger () OVERRIDE
 Sets the view to blocked by a plunger.
 
virtual void setShieldTime (float t) OVERRIDE
 Enables a kart shield protection for a certain amount of time.
 
virtual bool isShielded () const OVERRIDE
 Returns if the kart is protected by a shield.
 
virtual float getShieldTime () const OVERRIDE
 Returns the remaining time the kart is protected by a shield.
 
virtual void decreaseShieldTime () OVERRIDE
 Decreases the kart's shield time.
 
virtual bool isSquashed () const OVERRIDE
 Returns if the kart is currently being squashed.
 
virtual void setBoostAI (bool boosted) OVERRIDE
 Sets the kart AI boost state.
 
virtual bool getBoostAI () const OVERRIDE
 Returns the kart AI boost state.
 
virtual ControllergetController () OVERRIDE
 Returns the controller of this kart.
 
const ControllergetController () const OVERRIDE
 Returns the controller of this kart (const version).
 
virtual const Vec3getFrontXYZ () const OVERRIDE
 Returns the coordinates of the front of the kart.
 
virtual btTransform getAlignedTransform (const float customPitch=-1) OVERRIDE
 Returns a bullet transform object located at the kart's position and oriented in the direction the kart is going.
 
const btTransform & getResetTransform () const
 Returns the start transform, i.e.
 
virtual bool isOnGround () const OVERRIDE
 True if the wheels are touching the ground.
 
bool isNearGround () const
 Returns true if the kart is close to the ground, used to dis/enable the upright constraint to allow for more realistic explosions.
 
virtual const Vec3getNormal () const OVERRIDE
 Returns the normal of the terrain the kart is over atm.
 
virtual const Vec3getPreviousXYZ () const OVERRIDE
 Returns the position 0.25s before.
 
virtual const Vec3getRecentPreviousXYZ () const OVERRIDE
 Returns a more recent different previous position.
 
virtual const float getRecentPreviousXYZTime () const OVERRIDE
 Returns the time at which the recent previous position occured.
 
bool isFlying () const
 For debugging only: check if a kart is flying.
 
virtual bool isJumping () const OVERRIDE
 Returns whether this kart is jumping.
 
virtual const TerrainInfogetTerrainInfo () const OVERRIDE
 Returns the terrain info oject.
 
virtual KartGFXgetKartGFX () OVERRIDE
 Returns a pointer to this kart's graphical effects.
 
virtual int getPosition () const OVERRIDE
 Returns the current position of this kart in the race.
 
virtual int getInitialPosition () const OVERRIDE
 Returns the initial position of this kart.
 
virtual float getFinishTime () const OVERRIDE
 Returns the finished time for a kart.
 
virtual bool hasFinishedRace () const OVERRIDE
 Returns true if this kart has finished the race.
 
const irr::video::SColor & getColor () const
 Returns the color used for this kart.
 
virtual RaceManager::KartType getType () const OVERRIDE
 
virtual btKartgetVehicle () const OVERRIDE
 Returns the bullet vehicle which represents this kart.
 
virtual btQuaternion getVisualRotation () const OVERRIDE
 
virtual const SlipStreamgetSlipstream () const OVERRIDE
 Returns the slipstream object of this kart.
 
virtual SlipStreamgetSlipstream () OVERRIDE
 Returns the slipstream object of this kart.
 
virtual void setSlipstreamEffect (float f) OVERRIDE
 Activates a slipstream effect, atm that is display some nitro.
 
virtual bool isEliminated () const OVERRIDE
 Returns true if the kart is eliminated.
 
virtual void eliminate () OVERRIDE
 Marks this kart to be eliminated.
 
virtual void setOnScreenText (const core::stringw &text) OVERRIDE
 Sets a text that is being displayed on top of a kart.
 
virtual bool getRaceResult () const OVERRIDE
 Returns whether this kart wins or loses.
 
void setRaceResult ()
 Set this kart race result.
 
virtual bool isGhostKart () const OVERRIDE
 Returns whether this kart is a ghost (replay) kart.
 
SFXBasegetNextEmitter ()
 
virtual void playSound (SFXBuffer *buffer) OVERRIDE
 
virtual bool isVisible () const OVERRIDE
 
virtual void showStarEffect (float t) OVERRIDE
 Shows the star effect for a certain time.
 
virtual StarsgetStarsEffect () const OVERRIDE
 
int getNetworkConfirmedFinishTicks () const OVERRIDE
 Return the confirmed finish ticks (sent by the server) indicating that this kart has really finished the race.
 
- Public Member Functions inherited from AbstractKart
 AbstractKart (const std::string &ident, int world_kart_id, int position, const btTransform &init_transform, HandicapLevel handicap, std::shared_ptr< GE::GERenderInfo > ri)
 Creates a kart.
 
const core::stringw & getName () const
 Returns a name to be displayed for this kart.
 
virtual void reset ()
 The reset position must be set before calling reset.
 
virtual void init (RaceManager::KartType type)=0
 
virtual float getSteerPercent () const
 Returns the current steering value for this kart.
 
KartControlgetControls ()
 Returns all controls of this kart.
 
const KartControlgetControls () const
 Returns all controls of this kart - const version.
 
const KartPropertiesgetKartProperties () const
 Returns the kart properties of this kart.
 
virtual void changeKart (const std::string &new_ident, HandicapLevel handicap, std::shared_ptr< GE::GERenderInfo > ri, const KartData &kart_data=KartData())
 Change to new kart instancely (used in network live join).
 
const HandicapLevel getHandicap () const
 Returns the handicap of this kart.
 
void setHandicap (const HandicapLevel h)
 Sets the handicap.
 
virtual const std::string & getIdent () const
 Returns a unique identifier for this kart (name of the directory the kart was loaded from).
 
virtual float getMaxSteerAngle () const =0
 Returns the maximum steering angle for this kart, which depends on the speed.
 
virtual float getSpeedForTurnRadius (float radius) const =0
 Returns the (maximum) speed for a given turn radius.
 
virtual float getTimeFullSteer (float steer) const =0
 Returns the time till full steering is reached for this kart.
 
const AttachmentgetAttachment () const
 Returns the current attachment.
 
AttachmentgetAttachment ()
 Returns the current attachment, non-const version.
 
KartModelgetKartModel () const
 Returns this kart's kart model.
 
float getKartLength () const
 Returns the length of the kart.
 
float getKartHeight () const
 Returns the height of the kart.
 
float getKartWidth () const
 Returns the width of the kart.
 
float getHighestPoint () const
 Returns the highest point of the kart (coordinate on up axis)
 
virtual void kartIsInRestNow ()
 Called after the kart comes to rest.
 
virtual float getTimeForDistance (float distance)
 Returns the time at which the kart was at a given distance.
 
bool isWheeless () const
 Returns true if this kart has no wheels.
 
virtual const Vec3getFrontXYZ () const =0
 Returns the coordinates of the front of the kart.
 
const Vec3getWheelGraphicsPosition (int i) const
 Returns the position of a wheel relative to the kart.
 
AbstractKartAnimationgetKartAnimation ()
 Returns a kart animation (if any), or NULL if currently no kart animation is being shown.
 
const AbstractKartAnimationgetKartAnimation () const
 
virtual void setKartAnimation (AbstractKartAnimation *ka)
 Sets a new kart animation.
 
unsigned int getWorldKartId () const
 Returns the index of this kart in world.
 
virtual void setController (Controller *controller)=0
 Saves the old controller in m_saved_controller and stores a new controller.
 
virtual ControllergetController ()=0
 Returns the controller of this kart.
 
virtual const ControllergetController () const =0
 Returns the controller of this kart (const version).
 
virtual const SkiddinggetSkidding () const =0
 Returns the skidding object for this kart (which can be used to query skidding related values).
 
virtual RaceManager::KartType getType () const =0
 
virtual SkiddinggetSkidding ()=0
 Returns the skidding object for this kart (which can be used to query skidding related values), non-const.
 
virtual bool isEliminated () const =0
 Returns true if the kart is eliminated.
 
virtual void eliminate ()=0
 Marks this kart to be eliminated.
 
virtual void finishedRace (float time, bool from_server=false)=0
 
virtual float getFinishTime () const =0
 Returns the finished time for a kart.
 
virtual int getBlockedByPlungerTicks () const =0
 Returns true if the kart has a plunger attached to its face.
 
virtual void blockViewWithPlunger ()=0
 Sets that the view is blocked by a plunger.
 
virtual bool isSquashed () const =0
 Returns if the kart is currently being squashed.
 
virtual bool setSquash (float time, float slowdown)=0
 Squashes this kart: it will scale the kart in up direction, and causes a slowdown while this kart is squashed.
 
virtual void unsetSquash ()=0
 Makes the kart unsquashed again.
 
virtual float getSpeed () const =0
 Returns the speed of the kart in meters/second.
 
virtual float getCurrentMaxSpeed () const =0
 Returns the current maximum speed for this kart, this includes all bonus and maluses that are currently applied.
 
virtual int getSpeedIncreaseTicksLeft (unsigned int category) const =0
 Returns how much increased speed time is left over in the given category.
 
virtual void setBoostAI (bool boosted)=0
 Sets the kart AI boost state.
 
virtual bool getBoostAI () const =0
 Returns the kart AI boost state.
 
virtual void increaseMaxSpeed (unsigned int category, float add_speed, float engine_force, int duration, int fade_out_time)=0
 Sets an increased maximum speed for a category.
 
virtual void instantSpeedIncrease (unsigned int category, float add_max_speed, float speed_boost, float engine_force, int duration, int fade_out_time)=0
 This adjusts the top speed using increaseMaxSpeed, but additionally causes an instant speed boost, which can be smaller than add-max-speed.
 
virtual void setSlowdown (unsigned int category, float max_speed_fraction, int fade_in_time)=0
 Defines a slowdown, which is in fraction of top speed.
 
virtual float getEnergy () const =0
 Returns the remaining collected energy.
 
virtual void collectedItem (ItemState *item_state)=0
 Called when an item is collected.
 
virtual int getPosition () const =0
 Returns the current position of this kart in the race.
 
virtual void setPosition (int p)=0
 Returns the current position of this kart in the race.
 
virtual int getInitialPosition () const =0
 Returns the initial position of this kart.
 
virtual bool isOnGround () const =0
 True if the wheels are touching the ground.
 
virtual const SlipStreamgetSlipstream () const =0
 Returns the slipstream object of this kart.
 
virtual SlipStreamgetSlipstream ()=0
 Returns the slipstream object of this kart.
 
virtual void setSlipstreamEffect (float f)=0
 Activates a slipstream effect, atm that is display some nitro.
 
virtual void beep ()=0
 Plays a beep sfx.
 
virtual bool playCustomSFX (unsigned int type)=0
 This function will play a particular character voice for this kart.
 
virtual void showZipperFire ()=0
 Show fire to go with a zipper.
 
virtual void handleZipper (const Material *m=NULL, bool play_sound=false)=0
 Sets zipper time, and apply one time additional speed boost.
 
virtual bool hasFinishedRace () const =0
 Returns true if this kart has finished the race.
 
virtual void setEnergy (float val)=0
 
virtual bool isOnMinNitroTime () const =0
 Return whether nitro is being used despite the nitro button not being pressed due to minimal use time requirements.
 
virtual const MaterialgetMaterial () const =0
 Returns the current material the kart is on.
 
virtual const MaterialgetLastMaterial () const =0
 Returns the previous material the kart was one (which might be the same as getMaterial() ).
 
virtual const PowerupgetPowerup () const =0
 Returns the current powerup.
 
virtual PowerupgetPowerup ()=0
 Returns the current powerup.
 
virtual PowerupManager::PowerupType getLastUsedPowerup ()=0
 Returns the last used powerup type.
 
virtual int getNumPowerup () const =0
 Returns the number of powerups.
 
virtual KartGFXgetKartGFX ()=0
 Returns a points to this kart's graphical effects.
 
virtual void setPowerup (PowerupManager::PowerupType t, int n)=0
 
virtual btKartgetVehicle () const =0
 Returns the bullet vehicle which represents this kart.
 
virtual btQuaternion getVisualRotation () const =0
 
virtual bool isInRest () const =0
 Returns true if the kart is 'resting', i.e.
 
virtual void startEngineSFX ()=0
 Starts the engine sound effect.
 
virtual void adjustSpeed (float f)=0
 Multiplies the velocity of the kart by a factor f (both linear and angular).
 
virtual void setSpeed (float s)=0
 This is used on the client side only to set the speed of the kart from the server information.
 
virtual bool isInvulnerable () const =0
 Returns if the kart is invulnerable.
 
virtual void setInvulnerableTicks (int ticks)=0
 
virtual bool isShielded () const =0
 Returns if the kart is protected by a shield.
 
virtual void setShieldTime (float t)=0
 
virtual float getShieldTime () const =0
 
virtual void decreaseShieldTime ()=0
 Decreases the kart's shield time.
 
virtual void showStarEffect (float t)=0
 Shows the star effect for a certain time.
 
virtual const TerrainInfogetTerrainInfo () const =0
 Returns the terrain info oject.
 
virtual void crashed (AbstractKart *k, bool update_attachments)=0
 Called when the kart crashes against another kart.
 
virtual void crashed (const Material *m, const Vec3 &normal)=0
 
virtual const Vec3getNormal () const =0
 Returns the normal of the terrain the kart is over atm.
 
virtual const Vec3getPreviousXYZ () const =0
 Returns the position 0.25s before.
 
virtual const Vec3getRecentPreviousXYZ () const =0
 Returns the most recent different previous position.
 
virtual const float getRecentPreviousXYZTime () const =0
 Returns the time at which the recent previous position occured.
 
virtual float getHoT () const =0
 Returns the height of the terrain.
 
virtual float getTerrainPitch (float heading) const =0
 Returns the pitch of the terrain depending on the heading.
 
virtual btTransform getAlignedTransform (const float customPitch=-1)=0
 Returns a bullet transform object located at the kart's position and oriented in the direction the kart is going.
 
virtual void setOnScreenText (const core::stringw &text)=0
 Set a text that is displayed on top of a kart.
 
virtual bool getRaceResult () const =0
 Returns whether this kart wins or loses.
 
virtual bool isGhostKart () const =0
 Returns whether this kart is a ghost (replay) kart.
 
virtual bool isJumping () const =0
 Returns whether this kart is jumping.
 
virtual void playSound (SFXBuffer *buffer)=0
 
virtual bool isVisible () const =0
 
virtual void makeKartRest ()
 Called before go phase to make sure all karts start at the same position in case there is a slope.
 
virtual void setStartupBoost (float val)=0
 
virtual float getStartupBoost () const =0
 
virtual float getStartupBoostFromStartTicks (int ticks) const =0
 
virtual StarsgetStarsEffect () const =0
 
int getLiveJoinUntilTicks () const
 
void setLiveJoinKart (int util_ticks)
 
virtual int getNetworkConfirmedFinishTicks () const =0
 Return the confirmed finish ticks (sent by the server) indicating that this kart has really finished the race.
 
- Public Member Functions inherited from Moveable
scene::ISceneNode * getNode () const
 Returns the scene node of this moveable.
 
void setNode (scene::ISceneNode *n)
 Sets the mesh for this model.
 
virtual const btVector3 & getVelocity () const
 
const btVector3 & getVelocityLC () const
 
virtual void setVelocity (const btVector3 &v)
 
const Vec3getXYZ () const
 
float getHeading () const
 Returns the heading between -pi and pi.
 
float getPitch () const
 Returns the pitch of the kart, restricted to between -pi/2 and pi/2.
 
float getRoll () const
 Returns the roll of the kart between -pi and pi.
 
const btQuaternion getRotation () const
 
virtual void flyUp ()
 Enter flying mode.
 
virtual void flyDown ()
 
virtual void stopFlying ()
 
virtual void setXYZ (const Vec3 &a)
 Sets the XYZ coordinates of the moveable.
 
void setRotation (const btMatrix3x3 &m)
 Sets the rotation of the physical body this moveable.
 
void setRotation (const btQuaternion &q)
 Sets the rotation of the physical body this moveable.
 
virtual void reset ()
 The reset position must be set before calling reset.
 
virtual void update (int ticks)
 Updates the current position and rotation from the corresponding physics body, and then calls updateGraphics to position the model correctly.
 
btRigidBody * getBody () const
 
void createBody (float mass, btTransform &trans, btCollisionShape *shape, float restitution)
 Creates the bullet rigid body for this moveable.
 
const btTransform & getTrans () const
 
void setTrans (const btTransform &t)
 Places this moveable at a certain location and stores this transform in this Moveable, so that it can be accessed easily.
 
void updatePosition ()
 Updates the current position and rotation.
 
virtual void updateGraphics (float dt)=0
 Called once per rendered frame.
 
void prepareSmoothing ()
 
void checkSmoothing ()
 
const btTransform & getSmoothedTrans () const
 
const Vec3getSmoothedXYZ () const
 
virtual const std::string & getIdent () const
 
- Public Member Functions inherited from SmoothNetworkBody
 SmoothNetworkBody (bool enable=false)
 
void reset ()
 
void setEnable (bool val)
 
bool isEnabled () const
 
void setSmoothRotation (bool val)
 
void setAdjustVerticalOffset (bool val)
 
void prepareSmoothing (const btTransform &current_transform, const Vec3 &current_velocity)
 
void checkSmoothing (const btTransform &current_transform, const Vec3 &current_velocity)
 Adds a new error between graphical and physical position/rotation.
 
void updateSmoothedGraphics (const btTransform &current_transform, const Vec3 &current_velocity, float dt)
 
void setSmoothedTransform (const btTransform &t)
 
const btTransform & getSmoothedTrans () const
 
const Vec3getSmoothedXYZ () const
 
void setMinAdjustLength (float val)
 
void setMaxAdjustLength (float val)
 
void setMinAdjustSpeed (float val)
 
void setMaxAdjustTime (float val)
 
void setAdjustLengthThreshold (float val)
 

Private Member Functions

void computeFinishTime ()
 Compute the time at which the ghost finished the race.
 

Private Attributes

std::vector< btTransform > m_all_transform
 The transforms to assume at the corresponding time in m_all_times.
 
std::vector< ReplayBase::PhysicInfom_all_physic_info
 
std::vector< ReplayBase::BonusInfom_all_bonus_info
 
std::vector< ReplayBase::KartReplayEventm_all_replay_events
 
ReplayPlay::ReplayData m_replay_data
 
unsigned int m_last_egg_idx
 

Additional Inherited Members

- Protected Member Functions inherited from Kart
void updatePhysics (int ticks)
 Updates the physics for this kart: computing the driving force, set steering, handles skidding, terrain impact on kart, ...
 
void handleMaterialSFX ()
 Plays any terrain specific sound effect.
 
void handleMaterialGFX (float dt)
 Handles material specific GFX, mostly particle effects.
 
void updateFlying ()
 Adjusts kart translation if the kart is flying (in debug mode).
 
void updateSliding ()
 Handles sliding, i.e.
 
void updateEnginePowerAndBrakes (int ticks)
 Sets the engine power.
 
void updateEngineSFX (float dt)
 Adjust the engine sound effect depending on the speed of the kart.
 
void updateSpeed ()
 Updates the local speed based on the current physical velocity.
 
void updateNitro (int ticks)
 Updates the current nitro status.
 
float applyAirFriction (float engine_power)
 Reduces the engine power according to speed.
 
float getActualWheelForce ()
 Simulates gears by adjusting the force of the engine.
 
void playCrashSFX (const Material *m, AbstractKart *k)
 Common code used when a kart or a material was hit.
 
void loadData (RaceManager::KartType type, bool animatedModel)
 Attaches the right model, creates the physics and loads all special effects (particle systems etc.)
 
void updateWeight ()
 This method is to be called every time the mass of the kart is updated, which includes attaching an anvil to the kart (and detaching).
 
void initSound ()
 
- Protected Member Functions inherited from Moveable
void updateSmoothedGraphics (float dt)
 
virtual void updateGraphics (const Vec3 &off_xyz=Vec3(0.0f, 0.0f, 0.0f), const btQuaternion &off_rotation=btQuaternion(0.0f, 0.0f, 0.0f, 1.0f))
 Updates the graphics model.
 
- Protected Attributes inherited from Kart
float m_graphical_y_offset
 Offset of the graphical kart chassis from the physical chassis.
 
Vec3 m_xyz_front
 The coordinates of the front of the kart, used to determine when a new lap is triggered.
 
const float XYZ_HISTORY_TIME = 0.25f
 
int m_xyz_history_size
 
std::vector< Vec3m_previous_xyz
 The coordinates of the XYZ_HISTORY_SIZE previous positions.
 
std::vector< float > m_previous_xyz_times
 The times at which the previous positions occured.
 
float m_time_previous_counter
 
bool m_is_jumping
 Is time flying activated.
 
bool m_bubblegum_torque_sign
 The sign of torque to apply after hitting a bubble gum.
 
uint8_t m_bounce_back_ticks
 A short time after a collision acceleration is disabled to allow the karts to bounce back.
 
MaxSpeedm_max_speed
 Handles speed increase and capping due to powerup, terrain, ...
 
TerrainInfom_terrain_info
 Stores information about the terrain the kart is on.
 
Powerupm_powerup
 Handles the powerup of a kart.
 
std::unique_ptr< btVehicleRaycaster > m_vehicle_raycaster
 
std::unique_ptr< btKartm_vehicle
 
std::unique_ptr< Skiddingm_skidding
 This object handles all skidding.
 
std::unique_ptr< Starsm_stars_effect
 For stars rotating around head effect.
 
std::unique_ptr< Shadowm_shadow
 The shadow of a kart.
 
std::unique_ptr< SkidMarksm_skidmarks
 The skidmarks object for this kart.
 
std::unique_ptr< KartGFXm_kart_gfx
 All particle effects.
 
std::unique_ptr< SlipStreamm_slipstream
 Handles all slipstreaming.
 
std::unique_ptr< btCompoundShape, btCompoundShapeDeleter > m_kart_chassis
 
ParticleEmitterm_collision_particles
 For collisions.
 
Controllerm_controller
 The main controller of this object, used for driving.
 
Controllerm_saved_controller
 This saves the original controller when the end controller is used.
 
PowerupManager::PowerupType m_last_used_powerup
 Remember the last used powerup type of a kart for AI purposes.
 
bool m_flying
 True if kart is flying (for debug purposes only).
 
bool m_has_caught_nolok_bubblegum
 Set when hitting bubblegum.
 
bool m_race_result
 True if the kart wins, false otherwise.
 
bool m_eliminated
 True if the kart is eliminated.
 
int m_initial_position
 Initial rank of the kart.
 
int m_race_position
 Current race position (1-num_karts).
 
float m_max_gear_rpm
 Maximum engine rpm's for the current gear.
 
int m_brake_ticks
 How long the brake key has been pressed - the longer the harder the kart will brake.
 
int16_t m_invulnerable_ticks
 Time a kart is invulnerable.
 
int16_t m_bubblegum_ticks
 If > 0 then bubble gum effect is on.
 
int16_t m_view_blocked_by_plunger
 When a kart has its view blocked by the plunger, this variable will be

‍0 the number it contains is the time left before removing plunger.


 
float m_current_lean
 Current leaning of the kart.
 
int8_t m_min_nitro_ticks
 To prevent using nitro in too short bursts.
 
bool m_fire_clicked
 True if fire button was pushed and not released.
 
bool m_boosted_ai
 True if the kart has been selected to have a boosted ai.
 
bool m_finished_race
 
float m_finish_time
 
float m_collected_energy
 The amount of energy collected with nitro cans.
 
float m_consumption_per_tick
 
float m_energy_to_min_ratio
 
float m_startup_boost
 
float m_falling_time
 
float m_weight
 
float m_speed
 The current speed (i.e.
 
float m_last_factor_engine_sound
 For smoothing engine sound.
 
float m_default_suspension_force
 For changeKart.
 
btTransform m_reset_transform
 Reset position.
 
std::vector< SFXBase * > m_custom_sounds
 
int m_emitter_id = 0
 
SFXBasem_emitters [EMITTER_COUNT]
 
SFXBasem_engine_sound
 
SFXBasem_terrain_sound
 Sound to be played depending on terrain.
 
const Materialm_last_sound_material
 The material for which the last sound effect was played.
 
SFXBasem_nitro_sound
 
SFXBasem_previous_terrain_sound
 A pointer to the previous terrain sound needs to be saved so that an 'older' sfx can be finished and an abrupt end of the sfx is avoided.
 
SFXBasem_skid_sound
 
SFXBufferm_horn_sound
 
SFXBufferm_crash_sounds [CRASH_SOUND_COUNT]
 
SFXBufferm_goo_sound
 
SFXBufferm_boing_sound
 
int m_ticks_last_crash
 
int m_ticks_last_zipper
 
RaceManager::KartType m_type
 
- Protected Attributes inherited from AbstractKart
btTransform m_starting_transform
 
int m_live_join_util
 
std::unique_ptr< KartPropertiesm_kart_properties
 The kart properties.
 
HandicapLevel m_handicap
 The handicap level of this kart.
 
std::unique_ptr< KartModelm_kart_model
 This stores a copy of the kart model.
 
std::unique_ptr< Attachmentm_attachment
 Handles the attachment the kart might have.
 
KartControl m_controls
 The kart controls (e.g.
 
AbstractKartAnimationm_kart_animation
 A kart animation object to handle rescue, explosion etc.
 
irr::scene::IDummyTransformationSceneNode * m_wheel_box
 Node between wheels and kart.
 
- Protected Attributes inherited from Moveable
btTransform m_transform
 The bullet transform of this rigid body.
 
UserPointer m_user_pointer
 
scene::ISceneNode * m_node
 
std::unique_ptr< btRigidBody > m_body
 
std::unique_ptr< KartMotionStatem_motion_state
 
- Static Protected Attributes inherited from Kart
static const int EMITTER_COUNT = 3
 
static const int CRASH_SOUND_COUNT = 3
 

Detailed Description

A ghost kart.

It does not have a phsyics representation. It gets two transforms from the replay objects at two consecutive time steps, and will interpolate between those positions depending on the current time

Member Function Documentation

◆ applyEngineForce()

virtual void GhostKart::applyEngineForce ( float  force)
inlinevirtual

No physics for ghost kart.

Reimplemented from Kart.

◆ createPhysics()

virtual void GhostKart::createPhysics ( )
inlinevirtual

Creates the physical representation of this kart.

Atm it uses the actual extention of the kart model to determine the size of the collision body.

Reimplemented from Kart.

◆ getSpeed()

float GhostKart::getSpeed ( ) const
virtual

Returns the speed of the kart in meters/second.

Reimplemented from Kart.

◆ getTimeForDistance()

float GhostKart::getTimeForDistance ( float  distance)
virtual

Returns the time at which the kart was at a given distance.

Returns -1.0f if none

Reimplemented from AbstractKart.

◆ isGhostKart()

virtual bool GhostKart::isGhostKart ( ) const
inlinevirtual

Returns whether this kart is a ghost (replay) kart.

Reimplemented from Kart.

◆ isInvulnerable()

virtual bool GhostKart::isInvulnerable ( ) const
inlinevirtual

Ghost can't be hunted.

Reimplemented from Kart.

◆ kartIsInRestNow()

virtual void GhostKart::kartIsInRestNow ( )
inlinevirtual

Computes the transform of the graphical kart chasses with regards to the physical chassis.

This function is called once the kart comes to rest before the race starts (see World::resetAllKarts). Based on the current physical kart position it computes an (at this stage Y-only) offset by which the graphical chassis is moved so that it appears the way it is designed in blender. This means that the distance of the wheels from the chassis (i.e. suspension) appears as in blender when karts are in rest. See updateGraphics for more details.

Reimplemented from Kart.

◆ makeKartRest()

virtual void GhostKart::makeKartRest ( )
inlinevirtual

Called before go phase to make sure all karts start at the same position in case there is a slope.

Reimplemented from AbstractKart.

◆ reset()

void GhostKart::reset ( )
virtual

Reset before a new race.

It will remove all attachments, and puts the kart back at its original start position.

Reimplemented from Kart.

◆ update()

void GhostKart::update ( int  ticks)
virtual

Updates the current event of the ghost kart using interpolation.

Parameters
dtTime step size.

Reimplemented from Kart.

◆ updateGraphics()

void GhostKart::updateGraphics ( float  dt)
virtual

Called once per rendered frame.

It is used to only update any graphical effects.

Parameters
dtTime step size (since last call).

Reimplemented from Kart.


The documentation for this class was generated from the following files: