📄 specialfxlist.h
字号:
// ----------------------------------------------------------------------- //
//
// MODULE : SpecialFXList.h
//
// PURPOSE : List of CSpecialFX class objects
//
// CREATED : 10/21/97
//
// ----------------------------------------------------------------------- //
#ifndef __SPECIAL_FX_LIST_H__
#define __SPECIAL_FX_LIST_H__
#include "dlink.h"
#include "SpecialFX.h"
#define DEFAULT_MAX_NUM 50
#define MAX_NUM_LINKS 500
class CSpecialFXList
{
public :
int GetSize() const { return m_nArraySize; }
int GetNumItems() const { return m_nElements; }
DBOOL IsEmpty() const { return (DBOOL)(m_nElements == 0); }
CSpecialFXList()
{
m_nArraySize = DNULL;
m_pArray = DNULL;
m_pAgeArray = DNULL;
m_nElements = 0;
}
DBOOL Create(unsigned int nMaxNum=DEFAULT_MAX_NUM)
{
if (m_pArray) return DFALSE; // Already created
m_nArraySize = nMaxNum < MAX_NUM_LINKS ? nMaxNum : MAX_NUM_LINKS;
m_pArray = new CSpecialFX* [m_nArraySize];
if (!m_pArray) return DFALSE;
m_pAgeArray = new DDWORD[m_nArraySize];
if (!m_pAgeArray) return DFALSE;
m_nElements = 0;
memset(m_pArray, 0, sizeof(CSpecialFX*)*m_nArraySize);
memset(m_pAgeArray, 0, sizeof(DDWORD)*m_nArraySize);
return DTRUE;
}
CSpecialFX* CSpecialFXList::operator[] (unsigned int nIndex)
{
if (!m_pArray || nIndex < 0 || nIndex >= m_nArraySize) return DNULL;
return m_pArray[nIndex];
}
~CSpecialFXList()
{
if (m_pArray)
{
for (unsigned int i=0; i < m_nArraySize; i++)
{
if (m_pArray[i])
{
delete m_pArray[i];
}
}
delete [] m_pArray;
}
if (m_pAgeArray)
{
delete [] m_pAgeArray;
}
}
CSpecialFX* Add(CSpecialFX* pFX, CSpecialFX* pParentFX = DNULL);
DBOOL Remove(CSpecialFX* pFX)
{
if (!pFX || !m_pArray) return DFALSE;
for (unsigned int i=0; i < m_nArraySize; i++)
{
if (m_pArray[i] == pFX)
{
delete m_pArray[i];
m_pArray[i] = DNULL;
m_pAgeArray[i] = 0;
m_nElements--;
return DTRUE;
}
}
return DFALSE;
}
private :
CSpecialFX** m_pArray; // Array of special fx
DDWORD* m_pAgeArray; // Age special fx in array
unsigned int m_nArraySize; // Size of array
unsigned int m_nElements; // Number of elements in array
};
#endif // __SPECIAL_FX_LIST_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -