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

📄 effectfactory.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
字号:
#include "StdAfx.h"
#include "EffectFactory.h"
#include "PeriodicDamageEffect.h"


EffectFactory::EffectFactory()
{
	m_pPeriodicDamagePool = new CMemoryPoolFactory<PeriodicDamageEffect>;
}

EffectFactory::~EffectFactory()
{
	Release();

	SAFE_DELETE( m_pPeriodicDamagePool );
}

VOID EffectFactory::Release()
{
	if( m_pPeriodicDamagePool )		m_pPeriodicDamagePool->Release();
}

VOID EffectFactory::Init( DWORD dwMaxPoolSize )
{
	m_pPeriodicDamagePool->Initialize( dwMaxPoolSize, dwMaxPoolSize/2+1 );
}

BaseEffect* EffectFactory::AllocEffect( eFIELDEFFECT_TYPE eEffectType )
{
	BaseEffect *pEffect = NULL;

	switch( eEffectType )
	{
	case EFFECT_TYPE_PERIODIC_DAMAGE:
		pEffect = m_pPeriodicDamagePool->Alloc();		break;
	default:
		ASSERT(! "EffectFactory : [AllocEffect] Invalid eEffectType! \n" );
	}

	return pEffect;
}


VOID EffectFactory::FreeEffect( BaseEffect* pEffect )
{
	switch( pEffect->GetStateID() )
	{
	case EFFECT_TYPE_PERIODIC_DAMAGE:
		m_pPeriodicDamagePool->Free( (PeriodicDamageEffect*)pEffect );	break;

	default:				
		ASSERT(! "EffectFactory : [FreeEffect] Invalid eEffectType! \n" );
	}
}






















⌨️ 快捷键说明

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