#ifndef GAME_MWMECHANICS_ACTORS_H #define GAME_MWMECHANICS_ACTORS_H #include #include #include #include "../mwworld/ptr.hpp" namespace Ogre { class Vector3; } namespace MWWorld { class Environment; } namespace MWMechanics { class Actors { MWWorld::Environment& mEnvironment; std::set mActors; float mDuration; void updateActor (const MWWorld::Ptr& ptr, float duration); void updateNpc (const MWWorld::Ptr& ptr, float duration, bool paused); public: Actors (MWWorld::Environment& environment); void addActor (const MWWorld::Ptr& ptr); ///< Register an actor for stats management void removeActor (const MWWorld::Ptr& ptr); ///< Deregister an actor for stats management void dropActors (const MWWorld::Ptr::CellStore *cellStore); ///< Deregister all actors in the given cell. void update (std::vector >& movement, float duration, bool paused); ///< Update actor stats and store desired velocity vectors in \a movement }; } #endif