#ifndef __RESOURCE_MANAGER_H__ #define __RESOURCE_MANAGER_H__ //============================================================================================================================= /// ResourceManager /** @author Kim Min Wook < taiyo@webzen.co.kr > @since 2004. 1. 28 @remarks - ¾ÆÀÌÅÛ À¯´Ö°ú ¸ÊÁ¤º¸¸¦ °¡Áö°í ÀÖ´Â ¸®¼Ò½º ¸Þ´ÏÁ® @note - CWorldBase °´Ã¼¸¦ »ç¿ëÇÏ·Á¸é GetMapInfo(mapid)·Î MapInfo °´Ã¼¸¦ °¡Áö°í ¿Â´Ù. - ¹ß»çü¿Í °°ÀÌ °ÔÀÓ ½ÇÇà ½Ã°£¿¡ °è¼Ó »ý¼º »èÁ¦°¡ µÇ´Â °´Ã¼¿¡ ´ëÇÑ ¸®¼Ò½º´Â °ÔÀÓ Á¾·á½Ã¿¡¸¸ unitÀ» ÇØÁ¦ ÇÑ´Ù. */ //============================================================================================================================= #pragma once #include #include "CharacterDef.h" #include "Narray.h" #define RESOURCE_TEMP 0x80000000 #define RESOURCE_MASK 0x00FFFFFF extern const DWORD ENGINE_RESOURCE_ID_OFFSET; extern const DWORD SCRIPT_RESOURCE_ID_OFFSET; class CDrawBase; class ResourceCacher; class BattleRoomEntry; class ResourceManager : public util::Singleton { public: ResourceManager(); ~ResourceManager(); VOID Init(); VOID Release(); void Process(DWORD dwTick); // ¾ÆÀÌÅÛÀåÂø½Ã ½ºÅ² À̹ÌÁö Äڵ带 ¾ò¾î¿É´Ï´Ù. RESOURCECODE GetItemSkinResourceCode( CODETYPE itemcode ); // ¾ÆÀÌÅÛÀÌ ½½·Ô¿¡ µé¾î°¬À»¶§ À̹ÌÁö Äڵ带 ¾ò¾î¿É´Ï´Ù. RESOURCECODE GetItemSlotImageResourceCode(CODETYPE itemcode, BOOL bIsLimited = FALSE); // ½ºÅ³ ¾ÆÀÌÄÜ Äڵ带 ¸®ÅÏÇÑ´Ù. RESOURCECODE GetItemSkillSlotImageResourceCode(CODETYPE skillcode); // ½ºÅ³·Î ºÎÅÍ º¯½Å ¸®¼Ò½º Äڵ带 ·Îµå ÇÑ´Ù. RESOURCECODE GetSkillTransFormImageResourceCode(CODETYPE skillcode); RESOURCECODE GetNPCSkinResourceCode(CODETYPE itemcode); // NPCÀÇ ½ºÅ² Äڵ带 RESOURCECODE GetTempResourceCode(CODETYPE itemcode); // _NA_002050_20110216_ADD_GENDER(¼ºº°¿¡ µû¸¥ ó¸® Ãß°¡) // ¾ÆÀÌÅÛÀåÂø½Ã ½ºÅ² À̹ÌÁö Äڵ带 ¾ò¾î¿É´Ï´Ù. RESOURCECODE GetItemSkinResourceCode(CODETYPE item_code, eCHAR_TYPE class_type, int body_part, GenderType::Value class_gender); RESOURCECODE GetItemSkinResourceCode(CODETYPE item_code, GenderType::Value class_gender); // ij¸¯ÅÍ »À´ë ¸®¼Ò½º Äڵ带 ¾ò¾î¿É´Ï´Ù. RESOURCECODE GetCharacterBoneResourceCode(eCHAR_TYPE class_type, GenderType::Value class_gender); // ij¸¯ÅÍ ±âº» ½ºÅ² Äڵ带 ¾ò¾î¿É´Ï´Ù. RESOURCECODE GetDefaultSkinCode(eCHAR_TYPE class_type, BodyPart body_part, GenderType::Value class_gender); // Çì¾î ¹× ÆäÀ̽º ½ºÅ²Äڵ带 ¾ò¾î¿É´Ï´Ù. RESOURCECODE GetCharacterPartSkinResourceCode(eCHAR_TYPE class_type, BodyPart body_part, int variation_code, int variation_set, GenderType::Value class_gender); float GetWeaponScale(eCHAR_TYPE class_type, GenderType::Value class_gender); void IncreaseResourceRefCount(RESOURCECODE code); VOID PreLoadResource( RESOURCECODE code, float fRequestRateResizeTexture = -1.0f); CWzUnitDraw * AllocResourceUnitDraw( RESOURCECODE code, float fRequestRateResizeTexture = -1.0f, bool bFreeAll = true, bool is_npc = false); CWzUnit * AllocResourceUnit( RESOURCECODE code ); VOID FreeResourceUnit( RESOURCECODE code); VOID FreeResourceUnitDraw( CWzUnitDraw * pUnitDraw ); VOID FreeResourceUnitDrawVer2( CWzUnitDraw * pUnitDraw, bool bForceRemove=false ); void FreeAllCachedData(); void FreeMostData(); void LastFree(); int GetLoadedResourceCount(); int GetWaitForFreeResourceCount(); private: ResourceCacher * m_pResourceCacher; }; #endif // __RESOURCE_MANAGER_H__