#pragma once #include "SGameAvatarEx.h" #include "KSeqModel.h" class SGameAvatarAddOnMgr { public: enum ADD_ON_TYPE { SGAME_FORCE_SPHERE_FX = 0, SGAME_CIRCLE_SHADOW_FX, SGAME_AVATAR_FX, SGAME_AVATAR_MOTION_FX, SGAME_ADDON_MAX, }; private: std::vector< SGameAvatarAddOnMgr* > m_vAddOnMgr; SGameAvatarAddOnMgr* m_pAddOnList[SGAME_ADDON_MAX]; protected: SGameAvatarEx* m_pGameObj; KSeqModel* m_pSeqModel; int m_nAddOnType; AR_HANDLE m_hCreaturehandle; bool m_bRenderFlag; public: void AddAddOn( SGameAvatarAddOnMgr* pAddOn ); void RemoveAddOn( ADD_ON_TYPE nAddOnType ); virtual void Initialize() {} public: int GetAddOnType() { return m_nAddOnType; } SGameAvatarAddOnMgr* GetAddOn( ADD_ON_TYPE nAddOnType ); bool IsActivateAddOn( ADD_ON_TYPE nAddOnType ); public: void SetGameObject( SGameAvatarEx* pGameObj ); void SetCreatureHandle( ADD_ON_TYPE nAddOnType, AR_HANDLE handle ); void SetAddOnRenderFlag( ADD_ON_TYPE nAddOnType, bool bRenderFlag ); virtual void SetRenderFlag( bool bRenderFlag ) { assert( 0 ); } public: virtual void Process( DWORD dwTime ); virtual void Render( class KViewportObject** ppViewportList, int nViewportCount ); public: SGameAvatarAddOnMgr(); virtual ~SGameAvatarAddOnMgr(); };