/* ========================================================================== * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2007.01.18 * ³» ¿ë : ÀÌÆåÆ® Àå¸é ³ëµå * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "SceneNode.h" class cDynamicSceneNode; class cNifAnimationInfo; /// Àå¸é ³ëµå ÀÎÀÚ class cEffectSceneNodeParam : public cSceneNodeParam { public: cEffectSceneNodeParam(); public: /// follow °´Ã¼ cDynamicSceneNode* mpFollowSceneNode; unsigned int mDummyIdx; bool mFollowing; bool mLooping; bool mIsDistCheck; }; inline cEffectSceneNodeParam::cEffectSceneNodeParam() : mpFollowSceneNode(0) , mDummyIdx((unsigned int)-1) , mLooping(false) , mFollowing(false) , mIsDistCheck(true) { } class cEffectSceneNode : public cSceneNode { friend class cSceneManager; public: /// ó¸® virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); inline bool IsRemoved() { return mRemoved; } void Remove(); void ParentNodeRemove(); /// ´Üµ¶°´Ã¼¸¦ »ý¼º (¹ß»çü·ù¿¡ »ç¿ë) bool InitSelfNode( const cString& pathName, bool distCheck, NiTransform& trans, bool bLoop ); void SetLoopFlag( bool flag ); bool GetLoopFlag(); virtual bool IsViewNode(); inline unsigned int GetDummyIdx() { return mDummyIdx; } inline bool IsDamageEffect() { return mIsDamage; } inline void EnableDamageEffectFlag() { mIsDamage = true; DisableZBuffer( mSceneNiNode ); } virtual void UpdateAlpha(){} protected: cEffectSceneNode( eType type = eEFFECT ); virtual ~cEffectSceneNode(); /// ¸µÅ©´Â °´Ã¼¿¡¼­ ȹµæÇØ¾ß ÇÑ´Ù. virtual bool Init( const cEffectSceneNodeParam& param ); virtual bool InitDamageEffect( const cEffectSceneNodeParam& param, bool IsMiss, bool zFalse ); // NiNodePtr CopyDamageMesh( NiNode* src ); void DisableZBuffer( NiAVObject* pObj ); void RemoveSelf(); virtual void CollectNodeInfo( NiAVObject* obj, bool& collectGeom, bool& collectProperty ); protected: /// µû¶ó´Ù´Ï±â... unsigned long mFollowSceneNodeIdx; cDynamicSceneNode* mpFollowSceneNode; unsigned int mDummyIdx; /// ¾Ö´Ï ÄÁÆ®·Ñ·¯ÀÇ Á¤º¸ cNifAnimationInfo* mNifAniInfo; bool mRemoved; bool mIsDamage; bool mIsDistCheck; };