Files
Sun1602/Server/GameServer/EffectManager.h
T
2022-10-26 12:25:11 +08:00

36 lines
960 B
C++

#pragma once
#ifndef GAMESERVER_EFFECT_MANAGER_H
#define GAMESERVER_EFFECT_MANAGER_H
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬
//
class BaseEffect;
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬
//
class EffectManager
{
private: typedef STLX_LIST< BaseEffect* > EFFECT_LIST;
public: EffectManager( GameField* const pField )
: m_pField( pField )
{}
~EffectManager();
public: VOID Release();
BaseEffect* AllocEffect( const eFIELDEFFECT_TYPE effect_type );
VOID Update( const DWORD current_tick );
private:
inline VOID ReleaseEffect( BaseEffect* const pEffect );
private: GameField* const m_pField;
EFFECT_LIST m_Effects;
//
__DISABLE_COPY(EffectManager);
};
#endif //GAMESERVER_EFFECT_MANAGER_H