//------------------------------------------------------------------------------ // ÀÛ¾÷ÀÚ: ÀÌÁö¿¬ // 2006/06/14 //------------------------------------------------------------------------------ #pragma once #include #include #pragma pack(push,1) struct BASE_OptionList { DWORD mdwIndex; DWORD mdwNameCode; #ifdef _SCJ_MODIFY_OPTIONLIST_PARSER_SUFFIX_FILED BYTE valuetype; #else #ifdef _NA_2088_20100322_ADD_OPTIONLIST_PARSER_RATIOVALUE_FILED BYTE m_byRatioValue; #endif //_NA_2088_20100322_ADD_OPTIONLIST_PARSER_RATIOVALUE_FILED #endif //_SCJ_MODIFY_OPTIONLIST_PARSER_SUFFIX_FILED #ifdef _SCJ_MODIFY_OPTIONLIST_PARSER_VALUETYPE_FILED_TWO BYTE valuetype2; #endif //_SCJ_MODIFY_OPTIONLIST_PARSER_VALUETYPE_FILED_TWO }; #pragma pack(pop) class OptionListParser : public util::Singleton ,public IParser { public: OptionListParser(); ~OptionListParser(); enum eOPTION_VALUE_TYPE //¿É¼ÇÀÇ Á¢¹Ì»ç Ãâ·Â ¹æ½Ä { eOPTION_VALUE_TYPE_NORMAL = 0, eOPTION_VALUE_TYPE_PERCENTAGE = 1, // Ç×»ó "%" ºÙÀÓ eOPTION_VALUE_TYPE_SECOND = 2, // Ç×»ó "ÃÊ" ºÙÀÓ #ifdef _NA_008823_20160517_ADD_ITEMOPTION_VALUETYPE_MILLISECOND eOPTION_VALUE_TYPE_MILIISECOND = 3,// Ç×»ó "ÃÊ" ºÙÀÓ + 1/1000ÃʷΠǥ½Ã #endif //_NA_008823_20160517_ADD_ITEMOPTION_VALUETYPE_MILLISECOND eOPTION_VALUE_TYPE_MAX, }; enum eOPTION_VALUE_TYPE_TWO //¿É¼ÇÀÇ Á¢¹Ì»ç Ãâ·Â ¹æ½Ä { eOPTION_VALUE_TYPE_TWO_BENEFIT = 0, // À̵æÀÎ ¿É¼Ç eOPTION_VALUE_TYPE_TWO_REVERSE_BENEFIT = 1, // À½¼ö°¡ À̵æÀÎ ¿É¼Ç }; VOID Init(DWORD dwPoolSize , char *szPackfileName); VOID Init(DWORD dwPoolSize); VOID Release(); private: VOID Unload(); util::SolarHashTable* m_pDataTable; //#ifdef _NA_002935_20110704_ITEM_SCORE typedef STLX_HASH_MAP OptionListMap; OptionListMap option_list_map_; //#endif BOOL _Load(BOOL bReload); public: virtual BOOL LoadScript(eSCRIPT_CODE ScriptCode, BOOL bReload); BASE_OptionList* GetOptionList(DWORD dwIndex); BASE_OptionList* GetOptionListByAttr(const eATTR_TYPE attr_type); };