#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 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() {} };