engineeffect.cpp

来自「墨香最新私服」· C++ 代码 · 共 92 行

CPP
92
字号
// EngineEffect.cpp: implementation of the CEngineEffect class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "EngineEffect.h"
#include "GraphicEngine.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
 
CEngineEffect::CEngineEffect()
{
	m_ObjectName[0] = 0;
}

CEngineEffect::~CEngineEffect() 
{
	Release();
}

BOOL CEngineEffect::Init(char* filename,CObjectBase* pObject,BYTE EngineObjectType,WORD StartFrame,WORD EndFrame)
{
	Release();
	
	m_NotProcessedAnimateKey = 0;
	m_bMotionPause = FALSE;
	m_pObject = pObject;

	DIRECTORYMGR->SetLoadMode(eLM_Effect);

	//////////////////////////////////////////////////////////////////////////
	// 烙矫 汲沥
	PreLoadObject(filename);
	//////////////////////////////////////////////////////////////////////////
	

	m_GXOHandle = GetObjectHandle(filename,MHEffectPROC,this,GXOBJECT_CREATE_TYPE_EFFECT);
	strcpy(m_ObjectName,filename);

	if(m_GXOHandle == NULL)
	{
		FILE* fp = fopen("MissedObjectList.txt","a+");
		if(fp)
		{
			fprintf(fp,"%s\n",filename);
			fclose(fp);
		}
		DIRECTORYMGR->SetLoadMode(eLM_Root);
		return FALSE;
	}
	
	m_AniInfo = m_staAniMgr.GetAniInfoObj(filename,m_GXOHandle,StartFrame,EndFrame);

	DIRECTORYMGR->SetLoadMode(eLM_Root);

	ChangeCustumMotion(1,StartFrame,EndFrame,TRUE);

	DisablePick();
	if(m_pObject)
	{
		m_pObject->m_EngineObjectType = EngineObjectType;
		if(m_pObject->GetEngineObjectType() == eEngineObjectType_SkillObject)
			EnablePick();
	}

	return TRUE;
}

void CEngineEffect::Release()
{
	CEngineObject::Release();
}

DWORD __stdcall MHEffectPROC(I4DyuchiGXExecutive* pExecutive, GXMAP_OBJECT_HANDLE gxh, DWORD msg, int arg1, int arg2, void* pData)
{
	CEngineEffect* pObject = (CEngineEffect*)pData;
	if(pObject == NULL)
		return 0;
	if(pObject->IsInited() == FALSE)
		return 0;
	
	pObject->Animate(arg1);
	if(pObject->IsEndMotion() && pObject->IsRepeat() == FALSE)
	{
		pObject->Hide();
	}


	return 0;
}

⌨️ 快捷键说明

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