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

📄 objecteffectunitdesc.cpp

📁 墨香最新私服
💻 CPP
字号:
// Objec	tEffectUnitDesc.cpp: implementation of the CObjectEffectUnitDesc class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ObjectEffectUnitDesc.h"
#include "..\Engine\EngineObject.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMemoryPoolTempl<CObjectEffectUnit>* CObjectEffectUnitDesc::m_pUnitPool = NULL;

CObjectEffectUnitDesc::CObjectEffectUnitDesc(BOOL bDangledToOperator)
: CEffectUnitDesc(eEffectUnit_Object,bDangledToOperator)
{
	if(m_pUnitPool == NULL)
	{
		m_pUnitPool = new CMemoryPoolTempl<CObjectEffectUnit>;
		m_pUnitPool->Init(50,5,"CObjectEffectUnit");
	}

	m_RandomPos.x = 0;
	m_RandomPos.y = 0;
	m_RandomPos.z = 0;
	m_Scale.x = 1;
	m_Scale.y = 1;
	m_Scale.z = 1;
	m_bRepeat = FALSE;
	m_fAlpha = 1;
	m_bApplyHeightField = TRUE;
	m_IllusionMaterial = NULL;
	
	
	m_StartFrame = 0;
	m_EndFrame = -1;

	m_AngleRad = 0;
	m_Illusion = 0;

// jsd test
	m_dwPattern = 0;
	SetVector3( &m_vStartAngle, 0.0f, 0.0f, 0.0f );
	m_fChangeVel = 0.0f;
}

CObjectEffectUnitDesc::~CObjectEffectUnitDesc()
{
	if(m_pUnitPool)
	{
		m_pUnitPool->Release();
		delete m_pUnitPool;
		m_pUnitPool = NULL;
	}

}

void CObjectEffectUnitDesc::DoParseScript(char* szKey,CMHFile* pFile)
{
	CMD_ST(szKey);			
		CMD_CS("#OBJECTNAME")
			m_ObjectName = pFile->GetString();
		
//			if( strcmp(m_ObjectName,TARGET) == 0 ||
//				strcmp(m_ObjectName,OPERATOR) == 0 )
//				return;

//			DIRECTORYMGR->SetLoadMode(eLM_Effect);
//			CEngineObject::PreLoadObject(m_ObjectName);
//			DIRECTORYMGR->SetLoadMode(eLM_Root);

		CMD_CS("#SCALE")
			m_Scale.x = pFile->GetFloat();
			m_Scale.y = pFile->GetFloat();
			m_Scale.z = pFile->GetFloat();

		CMD_CS("#REPEAT")
			m_bRepeat = pFile->GetBool();
		
		CMD_CS("#ALPHA")
			m_fAlpha = pFile->GetByte() * 0.01f;

		CMD_CS("#POSITION")
			if( m_Position.y != 0 )
				m_bApplyHeightField = FALSE;

		CMD_CS("#APPLYHEIGHTFIELD")
			m_bApplyHeightField = pFile->GetBool();
		
			if( m_Position.y != 0 )
				m_bApplyHeightField = FALSE;

		CMD_CS("#SETFRAME")
			m_StartFrame = pFile->GetWord();
			m_EndFrame = pFile->GetWord();

		CMD_CS("#ANGLE")
			m_AngleRad = DEGTORAD(pFile->GetFloat());

		CMD_CS("#PATTERN")
			m_dwPattern = pFile->GetDword();

		CMD_CS("#STARTANGLE")
			m_vStartAngle.x = DEGTORAD(pFile->GetFloat());
			m_vStartAngle.y = DEGTORAD(pFile->GetFloat());
			m_vStartAngle.z = DEGTORAD(pFile->GetFloat());

		CMD_CS("#CHANGEVEL")
			m_fChangeVel = pFile->GetFloat();
		
//		CMD_CS("#ILLUSION")
			m_Illusion = pFile->GetWord();
		
		CMD_CS("#ILLUSIONMATERIAL")
			m_IllusionMaterial = pFile->GetWord();

		CMD_CS("#OBJECTNAMECRITICAL")
			m_ObjectNameCritical = pFile->GetString();
			
	CMD_EN
}

CEffectUnit* CObjectEffectUnitDesc::GetEffectUnit(EFFECTPARAM* pEffectParam)
{
	CObjectEffectUnit* pEffectUnit = m_pUnitPool->Alloc();
	pEffectUnit->Initialize(this,pEffectParam);

	return pEffectUnit;
}

⌨️ 快捷键说明

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