Fixed initialization order in animation manager.
[NALCG.git] / src / view / checkanimation.h
blob534725f43722f9d4477436d4f609f77876a839f0
1 #ifndef _NALCG_CHECK_ANIMATION_H_
2 #define _NALCG_CHECK_ANIMATION_H_
4 #include "genericanimation.h"
6 class CheckAnimation : public GenericAnimation
8 public:
9 CheckAnimation(SceneNode *checkedNode, SceneManager *sceneMgr)
10 : GenericAnimation(checkedNode, sceneMgr), mTextNode(0),
11 mDuration(3)
15 virtual ~CheckAnimation()
17 SceneNode::ObjectIterator itr = mTextNode->getAttachedObjectIterator();
18 while (itr.hasMoreElements())
20 MovableObject* object = itr.getNext();
21 mSceneMgr->destroyMovableObject(object);
24 mAnimatedNode->removeAndDestroyChild(mTextNode->getName());
25 mTextNode = 0;
28 virtual bool animate(const Real& timeSinceLastFrame)
30 if (!mTextNode)
32 Entity* ent = mSceneMgr->createEntity(nextName(), "check.mesh");
33 ent->setQueryFlags(0);
34 mTextNode = mAnimatedNode->createChildSceneNode(Vector3(0, 1000, 0));
35 mTextNode->attachObject(ent);
37 if (mDuration < 0.5)
39 mTextNode->translate(0, timeSinceLastFrame * 2000, 0);
41 else if (mTextNode->getPosition().y >= 0)
43 mTextNode->translate(0, -timeSinceLastFrame * 2000, 0);
45 else
47 mTextNode->yaw(Radian(timeSinceLastFrame * Math::PI));
49 //mTextNode->translate(0, timeSinceLastFrame * 500, 0);
50 mDuration -= timeSinceLastFrame;
52 return mDuration >= 0;
55 protected:
56 SceneNode* mTextNode;
57 double mDuration;
61 #endif // _NALCG_CHECK_ANIMATION_H_