📄 effectdescmanager.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 + -