1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-04 02:41:19 +00:00
OpenMW/apps/openmw/mwmechanics/aitimer.hpp
2022-09-22 21:35:26 +03:00

33 lines
788 B
C++

#ifndef OPENMW_MECHANICS_AITIMER_H
#define OPENMW_MECHANICS_AITIMER_H
#include <components/misc/rng.hpp>
#include <components/misc/timer.hpp>
namespace MWMechanics
{
constexpr float AI_REACTION_TIME = 0.25f;
class AiReactionTimer
{
public:
static constexpr float sDeviation = 0.1f;
AiReactionTimer(Misc::Rng::Generator& prng)
: mPrng{ prng }
, mImpl{ AI_REACTION_TIME, sDeviation, Misc::Rng::deviate(0, sDeviation, prng) }
{
}
Misc::TimerStatus update(float duration) { return mImpl.update(duration, mPrng); }
void reset() { mImpl.reset(Misc::Rng::deviate(0, sDeviation, mPrng)); }
private:
Misc::Rng::Generator& mPrng;
Misc::DeviatingPeriodicTimer mImpl;
};
}
#endif