57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
// Copyright (C) 2007 Id Software, Inc.
|
|
//
|
|
|
|
#ifndef __GAME_VEHICLE_VEHICLE_RIGIDBODY_H__
|
|
#define __GAME_VEHICLE_VEHICLE_RIGIDBODY_H__
|
|
|
|
#include "Transport.h"
|
|
#include "VehicleIK.h"
|
|
|
|
class sdVehicle_RigidBody : public sdTransport_RB {
|
|
public:
|
|
CLASS_PROTOTYPE( sdVehicle_RigidBody );
|
|
|
|
sdVehicle_RigidBody( void );
|
|
~sdVehicle_RigidBody( void );
|
|
|
|
virtual void DoLoadVehicleScript( void );
|
|
|
|
void Spawn( void );
|
|
|
|
virtual bool UpdateAnimationControllers( void );
|
|
virtual bool Collide( const trace_t &collision, const idVec3 &velocity, int bodyId );
|
|
virtual void CollideFatal( idEntity* other );
|
|
virtual idIK* GetIK( void ) { return &ik; }
|
|
|
|
virtual void FreezePhysics( bool freeze );
|
|
|
|
void Event_SetDamageDealtScale( float scale );
|
|
virtual void SetDamageDealtScale( float scale );
|
|
float GetDamageDealtScale() const { return collideDamageDealtScale; }
|
|
|
|
const sdDeclDamage* GetCollideDamage() const { return collideDamage; }
|
|
|
|
static void IncRoadKillStats( idPlayer* player );
|
|
|
|
protected:
|
|
int nextSelfCollisionTime;
|
|
int nextJumpSound;
|
|
int nextCollisionTime;
|
|
int nextCollisionSound;
|
|
|
|
const sdDeclDamage* collideDamage;
|
|
const sdDeclDamage* collideFatalDamage;
|
|
float collideDamageDealtScale;
|
|
float collideDotLimit;
|
|
|
|
sdIK_WheeledVehicle ik;
|
|
|
|
const sdProgram::sdFunction* onCollisionFunc;
|
|
const sdProgram::sdFunction* onCollisionSideScrapeFunc;
|
|
|
|
protected:
|
|
virtual void HandleCollision( const trace_t &collision, const float velocity );
|
|
};
|
|
|
|
#endif // __GAME_VEHICLE_VEHICLE_RIGIDBODY_H__
|