//---------------------------------------------------------------------------- /** @desc : ÇØ´ç ÇʵåÀÇ ³­À̵µ¿¡ µû¸¥ ·¹º§ Á¦ÇÑ Á¤º¸ @author : À¯À翵 (y2jinc@webzen.co.kr) @remark : */ #pragma once #include #include #include #include #include #include // boost library ÇÊ¿ä // ¹Ì¼ÇÀ϶§ ³­À̵µ°¡ Àǹ̰¡ ¾ø´Ù. #define INVALID_DIFFICULT 99 #define MIN_GUILD_PVP_INDEX 2000 #define MAX_GUILD_PVP_INDEX 3000 struct BASE_RequireFieldLevelInfo { DWORD m_dwIndex; // BYTE m_byMkind; WORD m_wMcode; // BYTE m_byField; BYTE m_byDiff; WORD m_wMinlv; WORD m_wMaxlv; }; class RequireFieldLevelInfoParser : public util::Singleton, public IParser { typedef boost::shared_ptr BASE_RequireFieldLevelInfoPtr; typedef std::multimap > RequireFieldLevelInfoType; typedef std::multimap >::iterator RequireFieldLevelInfoItrType; public: RequireFieldLevelInfoParser(); ~RequireFieldLevelInfoParser(); VOID Init(DWORD dwPoolSize); VOID Init(DWORD dwPoolSize, char * pszPackFileName); VOID Release(); VOID Reload(); BASE_RequireFieldLevelInfo* GetRequireFieldLevelInfo( WORD wMcode, BYTE byDiff, BOOL bGuildPVP = FALSE ); public: virtual BOOL LoadScript(eSCRIPT_CODE ScriptCode, BOOL bReload); private: BOOL _Load(BOOL bReload); VOID Unload(); DWORD MakeKey(WORD wMcode, BYTE byDiff ); //util::SolarHashTable* m_pDataTable; RequireFieldLevelInfoType m_LevelInfoMap; char m_pszFileName[MAX_PATH]; };