⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 effectunit.h

📁 墨香最新私服
💻 H
字号:
// EffectUnit.h: interface for the CEffectUnit class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_EFFECTUNIT_H__32A18E60_BD08_46D0_ACC2_D2A61E3409FC__INCLUDED_)
#define AFX_EFFECTUNIT_H__32A18E60_BD08_46D0_ACC2_D2A61E3409FC__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CEffectUnitDesc;

#include "Effect.h"
#include "..\MHFile.h"
#include "..\Object.h"

class CEffectTriggerMoveUnitDesc;
class CEffectTriggerGravityMoveUnitDesc;

class CEffectUnit  
{
protected:

	CEffectUnitDesc* m_pEffectUnitDesc;

	BOOL m_bInited;
	DWORD m_nCurTargetNum;
	
	virtual void DoProcess(DWORD tickTime,EFFECTPARAM* pParam)	{}

	virtual void GetObjectSet(EFFECTPARAM* pParam,TARGETSET** ppObject,int* objectnum);

public:
	CEffectUnit();
	virtual ~CEffectUnit();
	
	virtual void Initialize(CEffectUnitDesc* pEffectUnitDesc,EFFECTPARAM* pEffectParam);
	virtual void Release() = 0;

	void GetEffectStartPosition(VECTOR3* pRtPos,CObject* pObject,EFFECTPARAM* pParam);
	
	friend class CEffectUnitDesc;

	//////////////////////////////////////////////////////////////////////////
	virtual void InitEffect(DWORD nTargetNum,TARGETSET* pTargetArray);

	virtual BOOL On(EFFECTPARAM* pParam);
	virtual BOOL Off(EFFECTPARAM* pParam);
	virtual BOOL Move(EFFECTPARAM* pParam,CEffectTriggerMoveUnitDesc* pMoveDesc);
	virtual BOOL Attach(EFFECTPARAM* pParam,char* AttachPartName);
	virtual BOOL Detach(EFFECTPARAM* pParam);

	virtual BOOL GravityMove(EFFECTPARAM* pParam,CEffectTriggerGravityMoveUnitDesc* pGravityMoveDesc);

	virtual BOOL CameraRotate(EFFECTPARAM* pParam,float fRotateAngle,DWORD Duration);
	virtual BOOL CameraAngle(EFFECTPARAM* pParam,float fTargetAngle,DWORD Duration);
	virtual BOOL CameraZoom(EFFECTPARAM* pParam,float fZoomDistance,DWORD Duration);
	virtual BOOL ChangeCamera(EFFECTPARAM* pParam,int Camera,DWORD Duration);
	
	virtual BOOL Animate(EFFECTPARAM* pParam,int AnimationNum,BOOL bRepeat);

	virtual BOOL SetBaseMotion(EFFECTPARAM* pParam,int BaseAnimationNum);

	virtual BOOL Link(EFFECTPARAM* pParam);
	virtual BOOL Fade(EFFECTPARAM* pParam,DWORD FadeTime,float Start,float End);


	//////////////////////////////////////////////////////////////////////////
	virtual void DoOn(EFFECTPARAM* pParam,TARGETSET* pObject)		{}
	virtual void DoOff(EFFECTPARAM* pParam,TARGETSET* pObject)	{}
	virtual void DoMove(EFFECTPARAM* pParam,TARGETSET* pObject,CEffectTriggerMoveUnitDesc* pMoveDesc)	{}
	virtual void DoAttach(EFFECTPARAM* pParam,TARGETSET* pObject,char* AttachPartName)	{}
	virtual void DoDetach(EFFECTPARAM* pParam,TARGETSET* pObject)	{}
	virtual void DoGravityMove(EFFECTPARAM* pParam,TARGETSET* pObject,CEffectTriggerGravityMoveUnitDesc* pGravityMoveDesc)	{}

	virtual void DoCameraRotate(EFFECTPARAM* pParam,TARGETSET* pObject,float fRotateAngle,DWORD Duration)	{}
	virtual void DoCameraAngle(EFFECTPARAM* pParam,TARGETSET* pObject,float fTargetAngle,DWORD Duration)	{}
	virtual void DoCameraZoom(EFFECTPARAM* pParam,TARGETSET* pObject,float fZoomDistance,DWORD Duration)	{}
	virtual void DoChangeCamera(EFFECTPARAM* pParam,TARGETSET* pObject,int Camera,DWORD Duration)		{}

	virtual void DoAnimate(EFFECTPARAM* pParam,TARGETSET* pObject,int AnimationNum,BOOL bRepeat)			{}

	virtual void DoSetBaseMotion(EFFECTPARAM* pParam,TARGETSET* pObject,int BaseAnimationNum)		{}

	virtual void DoLink(EFFECTPARAM* pParam,TARGETSET* pObject)		{};	
	virtual void DoFade(EFFECTPARAM* pParam,TARGETSET* pObject,DWORD FadeTime,float Start,float End)	{};

	void Process(DWORD tickTime,EFFECTPARAM* pParam);
};

#endif // !defined(AFX_EFFECTUNIT_H__32A18E60_BD08_46D0_ACC2_D2A61E3409FC__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -