/* ==================================================================== * ÆÄ ÀÏ : PlayerSceneNode.h * ¸ñ Àû : Ç÷¹À̾î ij¸¯ÅÍ¿¡ ´ëÇÑ ¸ðµ¨ Á¤º¸¸¦ Á¤ÀÇÇÑ´Ù. * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2006.5 * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * 2006.06 À̹ý¼® »ý¼º * * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once #include "DynamicSceneNode.h" class cPlayer; class cSignboard; /// Ç÷¹À̾î Àå¸é ³ëµå ÀÎÀÚ class cPlayerSceneNodeParam : public cDynamicSceneNodeParam { public: cPlayerSceneNodeParam(); public: bool mDisplayObj; }; inline cPlayerSceneNodeParam::cPlayerSceneNodeParam() { mDisplayObj = false; } /// Ç÷¹À̾î Àå¸é ³ëµå class cPlayerSceneNode : public cDynamicSceneNode { friend class cSceneManager; public: virtual ~cPlayerSceneNode(); /// ÃʱâÈ­ virtual bool Init( const cPlayerSceneNodeParam& param ); /// ÆÄÆ® ±³Ã¼ virtual bool ChangeParts( unsigned int partIdx, const char* fileName ); virtual bool ChangeParts( unsigned int partsIdx, NiNode* pNode ); virtual bool ChangePartsTexture( unsigned int partsIdx, const char* fileName ); /// ´õ¹Ì¿¡ °´Ã¼ ¸µÅ© virtual unsigned int LinkObject( unsigned int dummyIdx, const char* fileName ); virtual NiAVObject* GetWeaponDummy( unsigned int objectIdx, bool left ); /// °´Ã¼ÀÇ Áß½ÉÁÂÇ¥¸¦ ¹ÝȯÇÑ´Ù. virtual const NiPoint3& GetObjectCenter(); virtual const NiPoint3& GetObjectFoot(); virtual const NiPoint3& GetObjectHead(); /// ¸»Ç³¼± Ç¥Çö. virtual void ActiveTarotBubble( LPTSTR title, unsigned long color ); virtual void DeActiveTarotBubble(); virtual void ActiveUserSellBubble( LPTSTR title, unsigned long color ); virtual void DeActiveUserSellBubble(); virtual void UpdateLinkEffect(); //virtual void OnProcessVehicle( unsigned long deltaTime, unsigned long accumTime ); virtual bool OnVisibleVehicle( bool update, NiPoint3 pos ); /// virtual void AddDepthPlaneObject(); virtual bool PickManagedPlane( float mouseX, float mouseY ); virtual void HideEar( bool hide ); protected: cPlayerSceneNode( eType type = ePLAYER ); /// ¸µÅ©°ø°£À» Á¤ÀÇÇÑ´Ù. virtual bool InitLinkInfo(); /// ±âº» ¾Ö´Ï¸ÞÀ̼ÇÀ» Á¤ÀÇÇÑ´Ù. virtual void InitializeRandomIdle(); /// virtual cObjectNameCard* CreateNameCard( cBaseObject* pObj ); virtual void ProcessTrail( unsigned long deltatime, unsigned long accumtime ); protected: cSignboard* mpTarotBoard; cSignboard* mpUserSellBoard; }; class cCenterMsgPlane; /// class cHeroSceneNode : public cPlayerSceneNode { friend class cSceneManager; public: virtual ~cHeroSceneNode(); /// ÃʱâÈ­ virtual bool Init( const cPlayerSceneNodeParam& param ); virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); virtual bool OnVisible(); /// Äù½ºÆ® ¾÷µ¥ÀÌÆ® virtual void ActiveQuestText( LPCTSTR msg, unsigned long color ); void SetFieldEffRadius( float r ); void UpdateFieldTargetEffect( NiPoint3 center ); virtual void AddDepthPlaneObject(); virtual bool PickManagedPlane( float /*mouseX*/, float /*mouseY*/ ) { return false; } protected: cHeroSceneNode( eType type = eHERO ); /// virtual void AddToVisibleArray(); protected: /// Äù½ºÆ® Á¤º¸ cCenterMsgPlane* mpQuestPlane; cShadowGeometry* mpFieldTargetEffect; bool mFieldEffectOn; NiPoint3 mFieldEffectCenter; };