mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-21 22:39:41 +00:00
Fix AnimState initialization
Remove redundant user defined constructor and destructor, make sure all members are properly initialized including mTime (new float does not initialize the float).
This commit is contained in:
parent
55642650ea
commit
9d2f132aa7
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