#ifndef _TextureAnimationInfoParser_h_ #define _TextureAnimationInfoParser_h_ #pragma once enum HORIZONTAL_ARRANGE; enum VERTICAL_ARRANGE; //------------------------------------------------------------------------------ struct BASE_TextureAnimationInfo { DWORD group_index; DWORD tick_millisecond; float alpha; ENUM_ALPHABLEND blend_mode; //! ÁÂÇ¥ Á¤·Ä HORIZONTAL_ARRANGE align_x; VERTICAL_ARRANGE align_y; //! x, y, width, height int dest_x; int dest_y; int dest_wide_x; int dest_wide_y; int dest_width; int dest_height; int dest_half_wide_x; int dest_half_wide_y; //! BASE_TextureListInfo::texture_index DWORD texture_index; }; //------------------------------------------------------------------------------ class TextureAnimationInfoParser : public Singleton, public IParser { typedef std::map< DWORD /* group_index */, std::vector > AnimationInfo_map; public: TextureAnimationInfoParser(void); ~TextureAnimationInfoParser(void); virtual void Release(); virtual BOOL LoadScript(eSCRIPT_CODE ScriptCode, BOOL bReload); bool GetDestRect(OUT RECT& out_rect, BASE_TextureAnimationInfo* info); //------------------------------------------------------------------------------ //! Returns: int : À̹ÌÁö Å©±â±îÁö °¨¾ÈµÈ À§Ä¡ //! Qualifier: À̹ÌÁö¸¦ ±×¸± À§Ä¡ //------------------------------------------------------------------------------ int GetX(BASE_TextureAnimationInfo* info, RECT& window_rect); int GetY(BASE_TextureAnimationInfo* info, RECT& window_rect); std::vector* animation_key(DWORD group_index); AnimationInfo_map& animationinfo_map() { return animationinfo_map_; } private: AnimationInfo_map animationinfo_map_; }; #endif // _TextureAnimationInfoParser_h_