Files
Leviathan/Client/Game/game/Player/SGameFieldQuestProp.h
T
2026-06-01 12:46:52 +02:00

99 lines
2.9 KiB
C++

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