Files
Leviathan/Client/Game/game/Player/SGameAvatarAddOnMgr.h
T
2026-06-01 12:46:52 +02:00

47 lines
1.3 KiB
C++

#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();
};