#pragma once #include #include "SGameAvatarEx.h" #include "KSeqForm.h" class KSeqModel; class SGameItem : public SGameAvatarEx { public: SGameItem( ENC_INT nID ); virtual ~SGameItem(); void SetTryHeightValue() { m_bTryHeight = true; } virtual bool Initialize( class K3DRenderDeviceDX *pDevice ); virtual void Destroy(); virtual bool Activate(); virtual bool Deactivate(); virtual void DropSound(); virtual bool IsLoadComplete() { return m_bIsInit; } void SetPickUpOrder( struct SMSG_ENTER* pMsg ); bool IsPickable( AR_HANDLE hPlayer, int nPartyID ); // #2.1.2.4.2 virtual void ClipTest( struct K3DVector * pFrustum ); virtual const K3DVertex * GetCube(); virtual bool CheckCollision( const K3DVector &nv, const K3DVector &fv ); void PlayAnimation( DWORD time, int nAniType = SGameAvatarEx::SEQTYPE_NORMAL, float fPlayRate = 4.8f ); virtual bool Render( unsigned long uRenderBitVector, KViewportObject** ppViewportList, int nViewportCount ); virtual bool Process( DWORD time, unsigned long uProcessBitVector=0 ); protected: KSeqModel * m_pItemModel; KSeqModel * m_pItemEffect; bool m_bTryHeight; K3DMatrix m_RotMat; AR_TIME m_arDropTime; ///< 먹자 방지 데이타 AR_HANDLE m_hPlayer[ 3 ]; int m_nPartyID[ 3 ]; enum { _01_STEP = 0, ///< 1번째에 순서 있음 _02_STEP, ///< 2번째에 순서 있음 _03_STEP, ///< 3번째에 순서 있음 _NONE_STEP, ///< 먹자 순서 없음 }; int m_nOrderStep; ///< 먹자 방지 처리 순서 /// Property Set virtual const char* getClassName() { return "SGameItem"; } };