#pragma once #include "StateInfoParser.h" class InterfaceManager; class CDrawBase; struct BASE_STATEINFO; class CElementRender; /* // À̹ÌÁöÄÚµå/ÅØ½ºÃ³ÇÚµé ¼ÒÀ¯/°ü¸® // ۸¦ ÅëÇÑ »óžÆÀÌÄÜ °ü¸® // »óžÆÀÌÄÜ µî·Ï // µî·ÏµÈ »óžÆÀÌÄÜ Á¤º¸¸¦ ÀÌ¿ëÇÑ ¸Þ½¬ Á¤º¸ °»½Å // ·»´õ // ETC. - Çà/¿­·Î ÅØ½ºÃ³ UV ÁÂÇ¥ ¾ò±â */ class StatusIconManager { typedef std::vector STATUS_ICON_CONTAINER; public: enum { #ifdef _NA_008139_20150318_MODIFY_BUFF_ICON_UI MAX_HERO_ICON = 38, #elif defined(_NA_000000_20130114_RENEWER_UI) MAX_HERO_ICON = 40, #else MAX_HERO_ICON = 30, #endif #ifdef _NA_000000_20130114_RENEWER_UI MAX_PARTYMEMBER_ICON = 20, #else MAX_PARTYMEMBER_ICON = 10, #endif #ifdef _NA_008139_20150318_MODIFY_BUFF_ICON_UI MAX_TARGET_ICON = 36, #elif defined(_NA_000000_20130114_RENEWER_UI) MAX_TARGET_ICON = 40, #else MAX_TARGET_ICON = 10, #endif MAX_SUMMON_ICON = 10, STATUS_ICON_SIZE = 14, ALPHA_VALUE_MOUSE_OVER_ICON = 100, MAX_INDEX_STATE_INFO = 140, // ÃÖ´ë 140°³(È÷¾î·Î(30)+ÆÄƼ¿ø(10*9)+Ÿ°Ù(10)+¼Òȯ¼ö(10)) IMAGACODE_STATE_TEXTURE = 38335, // »óŹöÇÁ ÅØ½ºÃÄ À̹ÌÁöÄÚµå }; public: StatusIconManager(); ~StatusIconManager(); public: bool Initialize(InterfaceManager* interfacemanager, CDrawBase* drawbase); void RegisterStatusIconInfo(); void RegisterStatusIconInfo(std::vector& state_info_container); void RenderStatusIcon(); private: void Release(); bool StatusIconRender(); bool CashStatusIconRender(); void LoadTexture(); private: bool is_initialize_; InterfaceManager* interfacemanager_; CDrawBase* drawbase_; CElementRender* element_render_; STATUS_ICON_CONTAINER status_icon_container_; // ÀÏ¹Ý ¾ÆÀÌÄÜ-Çѹø¿¡ ±×¸°´Ù. STATUS_ICON_CONTAINER cash_status_icon_container_;// ij½Ã ¾ÆÀÌÄÜ-ºí·»µùÀ» ÇØ¾ßÇϹǷΠµû·Î ±×¸°´Ù. HANDLE state_texture_; HANDLE cash_state_texture_; SI_FRECT frame_texture_rect_; SI_FRECT frame_texture_rect2_; void _RenderIconWithBlend( const STATUS_ICON_CONTAINER& IconContainer, HANDLE Texture ); };