#pragma once class SGameAvatarEx; class SGameFieldQuestProp : public SGameAvatarEx { private: class KSeqForm* m_pProp; int m_nQuestDBID; int m_nTextID; K3DVector m_vRotation; K3DVector m_vScale; float m_fZOffSet; bool m_bTryHeight; float m_fTargetFxSize; float m_fCastRange; enum { ENTER_PROP = 0, STANDBY_PROP, LEAVE_PROP, }; int m_nState; DWORD m_dwVisibleTime; DWORD m_dwStartTime; bool m_bVisibleProcess; K3DBoundRotCube* m_pSelectCube; int m_nActivation_type; ///< 발동 조건 int m_Activation_value1; ///< 발동 값1 int m_Activation_value2; ///< 발동 값2 bool m_bLockHeight; float m_fLockHeight; int m_clanType; /// 2011.02.07 - prodongi public: bool PlayAnimation(char const* aniKey, int nAniType = SEQTYPE_NORMAL); /// 2011.01.21 - prodongi int GetPropIntervalLength() const; /// 2011.02.07 - prodongi void SetRatation( K3DVector& vRotation ) { m_vRotation = vRotation; } void SetZOffSet( float fZOffSet ) { m_fZOffSet = fZOffSet; } void SetPropScale( K3DVector& vScale ) { m_vScale = vScale; } void SetTryHeightValue() { m_bTryHeight = true; } void SetLockHeight( bool bLock ) { m_bLockHeight = bLock; } void SetLockHeight( float fHeight ) { m_fLockHeight = fHeight; } public: int GetQuestPropDBID() { return m_nQuestDBID; } int GetQuestPropTextID() { return m_nTextID; } const char * GetCobFileName(); float GetTargetFxSize() { return m_fTargetFxSize; } float GetCastingRange() { return m_fCastRange; } int GetActivationtype() { return m_nActivation_type; } int GetActivationValue1() { return m_Activation_value1; } int GetActivationValue2() { return m_Activation_value2; } public: bool Initialize( class K3DRenderDeviceDX *pDevice ); bool Process( DWORD time, unsigned long uProcessBitVector=0 ); bool Render( unsigned long uRenderBitVector, class KViewportObject** ppViewportList, int nViewportCount); /// 2012.03.29 셀렉트용 렌더링 - prodongi virtual bool renderSelect(unsigned long uRenderBitVector, class KViewportObject** ppViewportList, int nViewportCount); /// 셀렉트 박스에서 길찾기 충돌용으로 쓰인 블럭 라인을 구해온다 void getBlockLine(int* blockLine); void ClipTest( K3DVector * pFrustum ); bool CheckCollision( const K3DVector &nv, const K3DVector &fv ); public: bool Deactivate(); public: enum ACTIVATE_TYPE { CHECK_NONE = 0, CHECK_ITEM = 1, CHECK_QUEST = 2, CHECK_SKILL = 3, CHECK_WEAPON = 4, CHECK_CREATURE = 5, CHECK_PROP = 6, CHECK_PERSONS = 7, }; /// 2011.01.26 지금은 default와 active만 쓰고 있다. static char const* defaultKeyName; /// 2011.01.25 - prodongi static char const* activeKeyName; /// 2011.01.25 - prodongi static char const* activeLodKeyName; /// 2011.01.26 - prodongi public: SGameFieldQuestProp( int nQuestDBID ); ~SGameFieldQuestProp(); };