mirror of
https://github.com/OpenMW/openmw.git
synced 2025-12-02 01:04:31 +00:00
Merge branch 'fix_anim_state' into 'master'
Fix AnimState initialization See merge request OpenMW/openmw!4061
This commit is contained in:
commit
1e1fd28136
1 changed files with 13 additions and 30 deletions
|
|
@ -142,45 +142,28 @@ namespace MWRender
|
||||||
struct AnimState
|
struct AnimState
|
||||||
{
|
{
|
||||||
std::shared_ptr<AnimSource> mSource;
|
std::shared_ptr<AnimSource> mSource;
|
||||||
float mStartTime;
|
float mStartTime = 0;
|
||||||
float mLoopStartTime;
|
float mLoopStartTime = 0;
|
||||||
float mLoopStopTime;
|
float mLoopStopTime = 0;
|
||||||
float mStopTime;
|
float mStopTime = 0;
|
||||||
|
|
||||||
typedef std::shared_ptr<float> TimePtr;
|
std::shared_ptr<float> mTime = std::make_shared<float>(0);
|
||||||
TimePtr mTime;
|
float mSpeedMult = 1;
|
||||||
float mSpeedMult;
|
|
||||||
|
|
||||||
bool mPlaying;
|
bool mPlaying = false;
|
||||||
bool mLoopingEnabled;
|
bool mLoopingEnabled = true;
|
||||||
uint32_t mLoopCount;
|
uint32_t mLoopCount = 0;
|
||||||
|
|
||||||
AnimPriority mPriority;
|
AnimPriority mPriority{ 0 };
|
||||||
int mBlendMask;
|
int mBlendMask = 0;
|
||||||
bool mAutoDisable;
|
bool mAutoDisable = true;
|
||||||
|
|
||||||
AnimState()
|
|
||||||
: mStartTime(0.0f)
|
|
||||||
, mLoopStartTime(0.0f)
|
|
||||||
, mLoopStopTime(0.0f)
|
|
||||||
, mStopTime(0.0f)
|
|
||||||
, mTime(new float)
|
|
||||||
, mSpeedMult(1.0f)
|
|
||||||
, mPlaying(false)
|
|
||||||
, mLoopingEnabled(true)
|
|
||||||
, mLoopCount(0)
|
|
||||||
, mPriority(0)
|
|
||||||
, mBlendMask(0)
|
|
||||||
, mAutoDisable(true)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
~AnimState() = default;
|
|
||||||
|
|
||||||
float getTime() const { return *mTime; }
|
float getTime() const { return *mTime; }
|
||||||
void setTime(float time) { *mTime = time; }
|
void setTime(float time) { *mTime = time; }
|
||||||
|
|
||||||
bool shouldLoop() const { return getTime() >= mLoopStopTime && mLoopingEnabled && mLoopCount > 0; }
|
bool shouldLoop() const { return getTime() >= mLoopStopTime && mLoopingEnabled && mLoopCount > 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::map<std::string, AnimState, std::less<>> AnimStateMap;
|
typedef std::map<std::string, AnimState, std::less<>> AnimStateMap;
|
||||||
AnimStateMap mStates;
|
AnimStateMap mStates;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue