70 lines
2.1 KiB
C++
70 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include "ArcadiaClient.h"
|
|
#include "K3DTypes.h"
|
|
//#include <vector>
|
|
#include <queue>
|
|
|
|
struct OtherFxData
|
|
{
|
|
OtherFxData( AR_HANDLE caster, AR_HANDLE target, int fxid, DWORD catingTime = 0, const K3DVector* Pos = NULL )
|
|
{
|
|
hCaster = caster;
|
|
hTarget = target;
|
|
nFxID = fxid;
|
|
dwCatingTime = catingTime;
|
|
vPos = Pos;
|
|
}
|
|
AR_HANDLE hCaster;
|
|
AR_HANDLE hTarget;
|
|
int nFxID;
|
|
DWORD dwCatingTime;
|
|
const K3DVector* vPos;
|
|
};
|
|
|
|
class SGameOtherEffectMng
|
|
{
|
|
private:
|
|
class SGame* m_pGame;
|
|
std::vector< class SGameOtherEffect* > m_vOtherEffectList; ///< 그외 모든 이펙트
|
|
int m_nNewFxID;
|
|
queue< int > m_RecycleID; ///< 재사용할 파티클 아이디
|
|
private:
|
|
SGameOtherEffect* GetSelectEffect( int nFxID );
|
|
SGameOtherEffect* GetSelectEffect( AR_HANDLE hHandle, int nFxType, bool bCheckTargetHandle );
|
|
public:
|
|
enum OTHER_FX_ID
|
|
{
|
|
FX_CREATURE_EVOLUTION = 0,
|
|
FX_CAST_SUMMONING_CREATURE,
|
|
FX_SUMMONING_CREATURE,
|
|
FX_UN_SUMMONING_CREATURE,
|
|
FX_MONSTER_TAMING,
|
|
FX_BERSERK_MODE,
|
|
FX_MAX,
|
|
};
|
|
public:
|
|
int GetOtherEffectRecycleID();
|
|
void EndOtherEffect( int nFxID );
|
|
void EndOtherEffect( AR_HANDLE hHandle, int nFxType, bool bCheckTargetHandle );
|
|
void DelOtherEffect( AR_HANDLE hHandle, int nFxType, bool bCheckTargetHandle );
|
|
void SetNextStepOtherEffect( int nFxID );
|
|
void SetNextStepOtherEffect( AR_HANDLE hHandle, int nFxType, bool bCheckTargetHandle = false );
|
|
void CheckEffect();
|
|
void AllDelOtherEffect();
|
|
public:
|
|
int AddChaosEffect( struct SMSG_GET_CHAOS* pMsg );
|
|
public:
|
|
int AddCreatureEvolutionEffect( int nFxType, OtherFxData* fxdata );
|
|
int AddCastSummoningCreatureEffect( int nFxType, OtherFxData* fxdata );
|
|
int AddSummoningCreatureEffect( int nFxType, OtherFxData* fxdata );
|
|
int AddUnSummoningCreatureEffect( int nFxType, OtherFxData* fxdata );
|
|
int AddMonsterTamingEffect( int nFxType, OtherFxData* fxdata );
|
|
public:
|
|
void Process( DWORD dwTime );
|
|
void Render( unsigned long uRenderBitVector, class KViewportObject** ppViewportList, int nViewportCount );
|
|
public:
|
|
SGameOtherEffectMng( SGame * pGame );
|
|
virtual ~SGameOtherEffectMng();
|
|
};
|