// wzanimationinfo.h #ifndef _3DFILEACCESS_WZANIMATIONINFO_H_ #define _3DFILEACCESS_WZANIMATIONINFO_H_ #include "../typedef.h" #include "wzunitsubtype.h" #include #include // ¹«Á¶°Ç ¾Ö´Ï¸ÞÀÌ¼Ç Á¤º¸³» ¼Óµµ¸¸ Àû¿ë (À¯´Ö ¼Óµµ ¹«½Ã) #define WAIA_ANISPEED_UNCONDITIONAL (0x01) // »ç¿îµå Á¤º¸ struct WzSoundInfo { float m_fSoundFrame; // ÇÁ·¹ÀÓ BOOL m_bVoice; // À½¼ºÀΰ¡? std::vector m_VecSoundIndex; }; // ÀÌÆåÆ® Á¤º¸ struct WzEffectInfo { float m_fEffectFrame; // ÇÁ·¹ÀÓ WzID m_wiEffectWzID; // ID int m_nEffectType; // ŸÀÔ int m_nBoneIndex; // º» ¹øÈ£ WzVector m_wvScale; // Å©±â WzQuaternion m_wqRot; // ȸÀü(ÄõÅʹϾð) WzVector m_vRot; // ȸÀü(¿ÀÀÏ·¯) WzVector m_wvPos; // À§Ä¡ BYTE m_byEffectFlag; // Flag }; // ÀÏ¹Ý Á¤º¸ struct WzCustomInfo { float m_fCustomFrame; // ÇÁ·¹ÀÓ int m_naParam[3]; // ÆÄ¶ó¹ÌÅÍ WzVector m_wvParam; // ÆÄ¶ó¹ÌÅÍ }; //------------------------------------------------------------------------------ /** @class WzAnimationInfo xxx: ¸â¹ö º¯¼ö°¡ publicÀÎ°Ô ¸¾¿¡ µéÁø ¾ÊÁö¸¸, ÀÌ¹Ì ¸¹Àº °÷¿¡¼­ Á÷Á¢ Á¢±ÙÇϰí Àֱ⠶§¹®¿¡ ÀÏÀÏÀÌ ´Ù °íÄ¡±âµµ ±ÍÂú¾Æ¼­ ±×³É °£´Ù. °á°úÀûÀ¸·Î class¿Í structÀÇ Áß°£ ÇüŰ¡ µÇ¾î ¹ö·È´Ù; */ class WzAnimationInfo { public: // »ý¼ºÀÚ/¼Ò¸êÀÚ WzAnimationInfo(); ~WzAnimationInfo(); // »ç¿îµå Á¤º¸ Ãß°¡(¼³Á¤) WZ3DA_API void AddSound( int iSound, float fFrame, int nSetIndex ); // »ç¿îµå À妽º Á¦°Å WZ3DA_API void DelSoundIndex( int iIndex, int nSetIndex ); // »ç¿îµå À妽º ÀüºÎ Á¦°Å WZ3DA_API void ClearSoundIndex( int nSetIndex ); // »ç¿îµå À妽º ¼ö ¾ò±â WZ3DA_API int GetNumSound( int nSetIndex ) const; // »ç¿îµå À妽º ¾ò±â WZ3DA_API int GetSound( int iIndex, int nSetIndex ) const; // »ç¿îµå ÇÁ·¹ÀÓ ¼³Á¤ WZ3DA_API void SetSoundFrame( float fFrame, int nSetIndex ); // »ç¿îµå ÇÁ·¹ÀÓ ¾ò±â WZ3DA_API float GetSoundFrame( int nSetIndex ) const; // À½¼º ¿©ºÎ ¼³Á¤ WZ3DA_API void SetVoiceChannel( BOOL bVoice, int nSetIndex ); // À½¼º ¿©ºÎ ¾ò±â WZ3DA_API BOOL IsVoiceChannel( int nSetIndex ) const; // »ç¿îµå Á¤º¸ Ãß°¡ WZ3DA_API void AddSoundInfo(const WzSoundInfo* sound_ptr); WZ3DA_API int GetNumSoundInfo() const; WZ3DA_API WzSoundInfo* GetSoundInfo(int nIndex); // »ç¿îµå Á¤º¸ ¼ö ¾ò±â WZ3DA_API int GetNumSoundSet() const; // »ç¿îµå Á¤º¸ Á¦°Å WZ3DA_API void DelSoundSetIndex( int nSetIndex ); // »ç¿îµå Á¤º¸ ÀüºÎ Á¦°Å WZ3DA_API void ClearAllSound(); // ÀÌÆåÆ® Á¤º¸ Ãß°¡ WZ3DA_API void AddEffectInfo( const WzEffectInfo* pEffect ); // ÀÌÆåÆ® Á¤º¸ ¼³Á¤ WZ3DA_API void SetEffectInfo( const WzEffectInfo* pEffect, int nIndex ); // ÀÌÆåÆ® Á¤º¸ Á¦°Å WZ3DA_API void DelEffectIndex( int nIndex ); // ÀÌÆåÆ® Á¤º¸ ¼ö ¾ò±â WZ3DA_API int GetNumEffectInfo() const; // ÀÌÆåÆ® Á¤º¸ ¾ò±â WZ3DA_API WzEffectInfo* GetEffectInfo( int nIndex ); // ÀÏ¹Ý Á¤º¸ Ãß°¡ WZ3DA_API void AddCustomInfo( const WzCustomInfo* pCustom ); // ÀÏ¹Ý Á¤º¸ ¼³Á¤ WZ3DA_API void SetCustomInfo( const WzCustomInfo* pCustom, int nIndex ); // ÀÏ¹Ý Á¤º¸ Á¦°Å WZ3DA_API void DelCustomIndex( int nIndex ); // ÀÏ¹Ý Á¤º¸ ¼ö ¾ò±â WZ3DA_API int GetNumCustomInfo() const; // ÀÏ¹Ý Á¤º¸ ¾ò±â WZ3DA_API WzCustomInfo* GetCustomInfo( int nIndex ); // ¹Ù¿îµù ¹Ú½º Ãß°¡ WZ3DA_API void AddBV( const BvAABB* paabb ); // ¹Ù¿îµù ¹Ú½º Á¦°Å WZ3DA_API void DeleteAllBV(); // operator = WZ3DA_API WzAnimationInfo& operator = ( const WzAnimationInfo& rhs ); public: char m_lpszFileName[MAX_LENGTH_FILENAME]; WzID m_wiAction; // ¾×¼Ç(¾Ö´Ï¸ÞÀ̼Ç) ID HANDLE m_hWzdAni; // ¾Ö´Ï¸ÞÀÌ¼Ç µ¥ÀÌŸ ÇÚµé BYTE m_byAttribute; // ¼Ó¼º int m_nMaxFrame; // ÃÖ´ë ÇÁ·¹ÀÓ float m_fAnimationSpeed; // ¾Ö´Ï¸ÞÀÌ¼Ç ¼Óµµ float m_fInterpolationTime; // º¸°£ ½Ã°£ (´ÜÀ§: ÃÊ) CWzArray m_arAABB; // °¢ ÇÁ·¹ÀÓ¸¶´Ù AABB¸¦ °¡Áü private: typedef std::vector VECTOR_SOUNDSET; typedef std::vector VECTOR_EFFECTSET; typedef std::vector VECTOR_CUSTOMSET; VECTOR_SOUNDSET m_VecSound; VECTOR_EFFECTSET m_VecEffect; VECTOR_CUSTOMSET m_VecCustom; }; //------------------------------------------------------------------------------ /** */ inline int WzAnimationInfo::GetNumSoundSet() const { return (int)m_VecSound.size(); } //------------------------------------------------------------------------------ /** */ inline int WzAnimationInfo::GetNumEffectInfo() const { return (int)m_VecEffect.size(); } //------------------------------------------------------------------------------ /** */ inline int WzAnimationInfo::GetNumCustomInfo() const { return (int)m_VecCustom.size(); } #endif // _3DFILEACCESS_WZANIMATIONINFO_H_