#pragma once #ifndef PROGRAMCOMMON_HONORSYSTEM_REPUTELISTPARSER_H_ #define PROGRAMCOMMON_HONORSYSTEM_REPUTELISTPARSER_H_ #ifdef _NA_003027_20111013_HONOR_SYSTEM #include #include #include #include class ReputeListParser : public util::Singleton, public IParser { public: enum { kMaxReputeRating = 3, }; struct ReputeInfo { WORD repute_code; // ÆòÆÇÄÚµå WORD repute_group_code; // ÆòÆÇ±×·ìÄÚµå WORD repute_rating_point[kMaxReputeRating]; // ÆòÆÇ ´Ü°èº° ÇÊ¿äÁ¡¼ö WORD reward_fame_point[kMaxReputeRating]; // ÆòÆÇ ´Ü°èº° ¸í¼º º¸»óÁ¡¼ö WORD fame_area_code; // ¿¬°ü ¸í¼º ÄÚµå DWORD repute_rating_accumulate_point[kMaxReputeRating]; // ÆòÆÇ ´Ü°è±îÁö ÇÊ¿ä ´©ÀûÁ¡¼ö #ifndef _SERVER //if'N'def DWORD repute_name_code; // ÆòÆÇ Á¦¸ñ DWORD repute_group_name_code; // ÆòÆÇ ±×·ì Á¦¸ñ DWORD repute_description_code; // ÆòÆÇ ¼³¸í DWORD repute_effectcode[kMaxReputeRating]; // ´Ü°èº° ´Þ¼º ÀÌÆåÆ® #endif //_SERVER }; struct ReputeGroupInfo { WORD repute_group_code; // ÆòÆÇ±×·ìÄÚµå DWORD repute_group_name_code; // ÆòÆÇ ±×·ì Á¦¸ñ STLX_SET repute_code_set; }; typedef util::SolarHashTable ReputeInfoTable; typedef STLX_MAP ReputeGroupInfoMap; public: ReputeListParser(void); virtual ~ReputeListParser(void); void Init(); void Init(char* pack_filename); void Release(); virtual BOOL LoadScript(eSCRIPT_CODE script_code, BOOL is_reload); ReputeInfo* GetReputeInfo(WORD repute_code); ReputeInfoTable& GetReputeInfoTable() { return repute_info_table_; } ReputeGroupInfoMap& GetReputeGroupInfoMap() { return repute_group_info_map_; }; static int GetReputeRating(ReputeInfo* repute_info, DWORD current_repute_point); private: BOOL _Load(BOOL is_reload); ReputeInfoTable repute_info_table_; ReputeGroupInfoMap repute_group_info_map_; }; #endif //_NA_003027_20111013_HONOR_SYSTEM #endif //PROGRAMCOMMON_HONORSYSTEM_REPUTELISTPARSER_H_