#pragma once #include "DynamicSceneNode.h" class cNpc; class cSignboard; class cTutorialSignboard; /// NPC Àå¸é ³ëµå ÀÎÀÚ class cNpcSceneNodeParam : public cDynamicSceneNodeParam { public: cNpcSceneNodeParam(); public: unsigned long mNpcClassIndex; }; inline cNpcSceneNodeParam::cNpcSceneNodeParam() { mNpcClassIndex = 0; } class cNpcSceneNode : public cDynamicSceneNode { friend class cSceneManager; public: virtual ~cNpcSceneNode(); // virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); // /// ÃʱâÈ­ virtual bool Init( const cNpcSceneNodeParam& param ); // virtual const NiPoint3& GetObjectCenter(); // virtual const NiPoint3& GetObjectFoot(); // virtual const NiPoint3& GetObjectHead(); // // virtual void SetAlphaBlended( float targetAlpha ); // virtual void AddDepthPlaneObject(); // virtual bool PickManagedPlane( float mouseX, float mouseY ); // // virtual bool Pick( const cRay& ray ); // // void FadeOut(); // // bool IsFadeOutEnd(); // // // // void UpdateTutorialBoard(); // void ClearTutorialBoard(); protected: cNpcSceneNode( eType type = eNPC ); // // /// ¸µÅ©°ø°£À» Á¤ÀÇÇÑ´Ù. // virtual bool InitLinkInfo(); // // /// ±âº» ¾Ö´Ï¸ÞÀ̼ÇÀ» Á¤ÀÇÇÑ´Ù. // virtual void InitializeRandomIdle(); // // /// // virtual cObjectNameCard* CreateNameCard( cBaseObject* pObj ); protected: cSignboard* mpSignBoard; // Æ©Å丮¾ó¿ë cTutorialSignboard* mpTutorialBoard; bool mIsFadeOutProcess; }; ////////////////////////////////////////////////////////////////////////// class cRefereeSceneNode : public cDynamicSceneNode { friend class cSceneManager; public: virtual ~cRefereeSceneNode(); /// ÃʱâÈ­ virtual bool Init( const cSceneNodeParam& param ); // virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); // virtual const NiPoint3& GetObjectFoot() { return NiPoint3::ZERO; } virtual const NiPoint3& GetObjectCenter() { return NiPoint3::ZERO; } virtual const NiPoint3& GetObjectHead() { return NiPoint3::ZERO; } // // virtual cBaseObject* GetGameObject() { return 0; } protected: cRefereeSceneNode( eType type = eNPC ); /// ¸µÅ©°ø°£À» Á¤ÀÇÇÑ´Ù. virtual bool InitLinkInfo(); // // void Interpret( unsigned long accumTime ); cObjectNameCard* CreateNameCard( cBaseObject* pObj ) { return 0; } // void AddToVisibleArray(); // void AddDepthPlaneObject() {} };