/** Űº¸µå Á¡ÇÁ @author - @since @remarks -2005.06.08 Å×½ºÆ®¿ë ÀÛ¾÷(Áö¿Ï) -2006.06.19 Á¡ÇÁ ¸®ÆåÅ丵 ½ÃÀÛ(Áö¿Ï) @Todo -Ãæµ¹ ¸Þ½¬ ¸¸µé¾î¼­ À¯´Ö¿¡ ·¹À̽÷¼­ Ãæµ¹ üũ ÇÒ°Í. (¿£Áø¿¡¼­ Áö¿øµÇ¾î¾ß Çϸç ÇöÀç ¸Ê ¿ÀºêÁ§Æ® Ãæµ¹ üũ´Â ¹Ù¿îµù ¹Ú½º·Î Á¤È®ÇÏÁö ¾ÊÀº Ãæµ¹ 󸮸¦ Çϰí ÀÖÀ½) -¸ñÀûÁö¿Í Ãâ¹ßÁö°¡ Á¡ÇÁ ŸÀÏÀÏ °æ¿ì °Ç³ÊÆíÀ¸·Î ¹«Á¶°Ç ¶Û¼ö ÀÖ°Ô(Á¡ÇÁ¸¦ ÇØ¼­ ²À °¡¾ß Çϴ Ư¼ö ÁöÇü ó¸®) */ #pragma once #ifdef _NA_20120220_JUMP_RENEWAL #include "StateKeyboardJump2.h" #else class StateBase; class StateKeyboardJump : public StateBase { StateKeyboardJump(void); public: ~StateKeyboardJump(void); __forceinline static StateKeyboardJump* GetInstance() { static StateKeyboardJump d; return &d; }; static bool GetJumpDirection(OUT WzVector& direction, int flag, WzVector& foward); //! static bool GetJumpDestPosByDirection(OUT WzVector& dest_pos, WzVector& scr_pos, WzVector& direction, float player_height, float min_dist, float max_dist); static BOOL CheckDest(); static int CheckJumpTile(WzVector vSrc,WzVector vDest); virtual int GetStateKind() { return STATE::MOVE; } virtual BOOL CanTransite(Object* pOwner, DWORD CurTime, StateBase* pToTransiteState); virtual STATECHANGE::TYPE OnStart(Object* pOwner, DWORD CurTime); virtual STATEPROCESS::TYPE OnProcess(Object* pOwner, DWORD CurTime,DWORD dwTick); virtual STATECHANGE::TYPE OnEnd(Object* pOwner, DWORD CurTime); protected: void SetMotionBlur(Object* object, bool flag); void OnFootStep(Object* pOwner); void CalculateTurnAccelerate(DWORD dwTick); BOOL FindDest(); BOOL FindStand(); BOOL SendJumpPacket(); BOOL SendStopPacket(); BOOL CalCulateJump(); BOOL IsIntersect(); BOOL CheckRidingState(Player *pPlayer); }; #endif