mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-15 18:19:55 +00:00
f90a049702
Refactoring related to "smooth movement" See merge request OpenMW/openmw!285 (cherry picked from commit 6eaf0a389d5aed3b74ab1a7cf89574612f964bdf) e847b4c8 Split getSpeed() to getMaxSpeed() and getCurrentSpeed() a96c46bc Refactor calculation of movement.mSpeedFactor 03ee9090 Use getMaxSpeed instead of getCurrentSpeed where it makes sense. a178af5c Create helper functions `normalizeAngle` and `rotateVec2f`
54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
#ifndef GAME_MWCLASS_MOBILE_H
|
|
#define GAME_MWCLASS_MOBILE_H
|
|
|
|
#include "../mwworld/class.hpp"
|
|
|
|
namespace ESM
|
|
{
|
|
struct GameSetting;
|
|
}
|
|
|
|
namespace MWClass
|
|
{
|
|
/// \brief Class holding functionality common to Creature and NPC
|
|
class Actor : public MWWorld::Class
|
|
{
|
|
protected:
|
|
|
|
Actor();
|
|
|
|
public:
|
|
virtual ~Actor();
|
|
|
|
virtual void adjustPosition(const MWWorld::Ptr& ptr, bool force) const;
|
|
///< Adjust position to stand on ground. Must be called post model load
|
|
/// @param force do this even if the ptr is flying
|
|
|
|
virtual void insertObject(const MWWorld::Ptr& ptr, const std::string& model, MWPhysics::PhysicsSystem& physics) const;
|
|
|
|
virtual bool useAnim() const;
|
|
|
|
virtual void block(const MWWorld::Ptr &ptr) const;
|
|
|
|
virtual osg::Vec3f getRotationVector(const MWWorld::Ptr& ptr) const;
|
|
///< Return desired rotations, as euler angles. Sets getMovementSettings(ptr).mRotation to zero.
|
|
|
|
virtual float getEncumbrance(const MWWorld::Ptr& ptr) const;
|
|
///< Returns total weight of objects inside this object (including modifications from magic
|
|
/// effects). Throws an exception, if the object can't hold other objects.
|
|
|
|
virtual bool allowTelekinesis(const MWWorld::ConstPtr& ptr) const;
|
|
///< Return whether this class of object can be activated with telekinesis
|
|
|
|
virtual bool isActor() const;
|
|
|
|
/// Return current movement speed.
|
|
virtual float getCurrentSpeed(const MWWorld::Ptr& ptr) const;
|
|
|
|
// not implemented
|
|
Actor(const Actor&);
|
|
Actor& operator= (const Actor&);
|
|
};
|
|
}
|
|
|
|
#endif
|