#pragma once #include "ObjectEffectData.h" #include "EventInfo.h" //------------------------------------------------------------------------------ class ObjectAniEventController { public: ObjectAniEventController() { current_ani_progress_rate_ = 0.0f; m_EffectData.Initialize(); } virtual ~ObjectAniEventController() { DestroyAllEffect(); } //! »ó¼Ó¹Þ´Â class¿¡¼­ »ó¼¼ ±¸Çö ÇÊ¿ä virtual WzID GetTrailEffectCode(){ return 0; } virtual WzVector GetTrailBonePos(int index, int start) { WzVector v; SetVector(&v, 0, 0, 0); return v; } virtual void OnFootStep(BOOL b2D = FALSE){} virtual void OnWaterWave() {} virtual void OnWaterEllipse() {} // °Ë±âºÎºÐ void StartTrail(int trail_index, const TRAIL_PARAM& trail_param, DWORD object_key); void EndTrail(int trail_index); void UpdateTrail(); //! ÇöÀç ¾Ö´Ï¸ÞÀÌ¼Ç ÁøÇà Á¤µµ float current_ani_progress_rate() const { return current_ani_progress_rate_; } protected: void InitializeEffect(); void DestroyAllEffect(); void DestroyObjectEffect(int index, int iBuffer); void MoveRemainEffect(int index); void DestroyAllLoopEffect(); int GetTrailEffectAttachmentIndex(int TrailIndex) { return m_EffectData.GetTrailAttachmentIndex(TrailIndex); } //void ProcessEffect(float fAddFrame, CWzUnitDraw* unit_draw, const WzVector& visible_pos, const WzVector& direction); void UpdateEffectPos(CWzUnitDraw* unit_draw, const WzVector& visible_pos, const WzVector& direction); void ProcessSoundEvent(const SoundEventInfo& info, const WzVector& visible_pos); void ProcessEffectEvent(const EffectEventInfo& info, CWzUnitDraw* unit_draw, const WzVector& visible_pos, const WzVector& direction, DWORD object_key); void ProcessCustomEvent(const CustomEventInfo& Info, const WzVector& pos); ObjectEffectData& effectdata() { return m_EffectData; } //! ÇöÀç ¾Ö´Ï¸ÞÀÌ¼Ç ÁøÇàÁ¤µµ //! ij¸¯ÅÍ »óÅ º¯È­°¡ Å»°Í¿¡ ÀÇÇØ º¯ÇÏ´Â °æ¿ì°¡ Àֱ⶧¹®¿¡ ProgressUnitFrame ÇÒ¶§ ÀúÀåÇØ ³õ´Â´Ù. float current_ani_progress_rate_; private: ObjectEffectData m_EffectData; };