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

📄 effectdescmanager.cpp

📁 墨香最新私服
💻 CPP
字号:
// EffectDescManager.cpp: implementation of the CEffectDescManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "EffectDescManager.h"

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

#include "..\DirectoryManager.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CEffectDescManager::CEffectDescManager()
{
	m_MaxEffectDesc = 0;
	m_pEffectDescArray = NULL;

}

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

void CEffectDescManager::Release()
{
	if(m_pEffectDescArray)
	{
		delete [] m_pEffectDescArray;
		m_pEffectDescArray = NULL;
	}
}

BOOL CEffectDescManager::LoadEffectList(int EffectKind,CMHFile* pFile)
{
	m_MaxEffectDesc = pFile->GetDword();
	m_pEffectDescArray = new CEffectDesc[m_MaxEffectDesc];
	
	DWORD effnum;
	char efffile[256];
	CMHFile EffFile;
	BOOL bSuc;
	for(DWORD n=0;n<m_MaxEffectDesc;++n)
	{
		//ASSERT(!pFile->IsEOF());

		effnum = pFile->GetDword();
		pFile->GetString(efffile);
		if(strcmp(efffile,"NULL") == 0)
			continue;
		
		DIRECTORYMGR->SetLoadMode(eLM_EffectScript);

#ifdef _FILE_BIN_
		bSuc = EffFile.Init(efffile,"rb",
			MHFILE_FLAG_DONOTDISPLAY_NOTFOUNDERROR|
			MHFILE_FLAG_DONOTCHANGE_DIRECTORY_TOROOT);
#else
		bSuc = EffFile.Init(efffile,"r",
			MHFILE_FLAG_DONOTDISPLAY_NOTFOUNDERROR|
			MHFILE_FLAG_DONOTCHANGE_DIRECTORY_TOROOT);
#endif	
		DIRECTORYMGR->SetLoadMode(eLM_Root);

		
		if(bSuc == FALSE)
			continue;
		
		if(effnum == 1321)
		{
			int a=0;
		}
		if(m_pEffectDescArray[effnum].LoadEffectDesc(EffectKind,&EffFile) == FALSE)
		{
			char mes[256];
			sprintf(mes,"Error In Loding '%s' File... plz Check it!!",efffile);
			MessageBox(NULL,mes,0,0);
		}
		
		EffFile.Release();
	}

	return TRUE;
}

BOOL CEffectDescManager::GetEffect(int EffectDescNum,EFFECTPARAM* pParam,CEffect* pOutEffect,BOOL bWarning)
{
	if(EffectDescNum == -1)
		return FALSE;

	if(EffectDescNum >= m_MaxEffectDesc)
	{
		ASSERTMSG(0,"楷免锅龋啊 捞棋飘 府胶飘狼 弥措肮荐焊促 女聪促. 犬牢秦林技夸");//pjslocal
		return FALSE;
	}

	if(!(m_pEffectDescArray[EffectDescNum].GetMaxEffectUnitDesc() != 0 &&
		m_pEffectDescArray[EffectDescNum].GetMaxEffectTriggerDesc() != 0))
	{
		if(bWarning)
		{
			char temp[256];
			sprintf(temp, "厚绢乐绰 楷免 颇老(%d)阑 曼炼沁嚼聪促. 犬牢秦林技夸",EffectDescNum);
			ASSERTMSG(0,temp);
		}
		return FALSE;
	}
	
	return m_pEffectDescArray[EffectDescNum].GetEffect(pParam,pOutEffect);
}


CEffectDesc* CEffectDescManager::GetEffectDesc(int EffectDescNum)
{
	if(EffectDescNum == -1)
		return NULL;

	if(EffectDescNum >= m_MaxEffectDesc)
	{
		return NULL;
	}

	if(!(m_pEffectDescArray[EffectDescNum].GetMaxEffectUnitDesc() != 0 &&
		m_pEffectDescArray[EffectDescNum].GetMaxEffectTriggerDesc() != 0))
	{
		return NULL;
	}
	
	return &m_pEffectDescArray[EffectDescNum];
}

⌨️ 快捷键说明

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