You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#ifndef GAME_MWMECHANICS_MOVEMENT_H
|
|
#define GAME_MWMECHANICS_MOVEMENT_H
|
|
|
|
#include <osg/Vec3f>
|
|
|
|
namespace MWMechanics
|
|
{
|
|
/// Desired movement for an actor
|
|
struct Movement
|
|
{
|
|
// Desired movement. Direction is relative to the current orientation.
|
|
// Length of the vector controls desired speed. 0 - stay, 0.5 - half-speed, 1.0 - max speed.
|
|
float mPosition[3];
|
|
// Desired rotation delta (euler angles).
|
|
float mRotation[3];
|
|
|
|
// Controlled by CharacterController, should not be changed from other places.
|
|
// These fields can not be private fields in CharacterController, because Actor::getCurrentSpeed uses it.
|
|
float mSpeedFactor;
|
|
bool mIsStrafing;
|
|
|
|
Movement()
|
|
{
|
|
mPosition[0] = mPosition[1] = mPosition[2] = 0.0f;
|
|
mRotation[0] = mRotation[1] = mRotation[2] = 0.0f;
|
|
mSpeedFactor = 1.f;
|
|
mIsStrafing = false;
|
|
}
|
|
|
|
osg::Vec3f asVec3()
|
|
{
|
|
return osg::Vec3f(mPosition[0], mPosition[1], mPosition[2]);
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif
|