#include "StdAfx.h" #include "misc.h" #include "DominationInfoParser.h" #include #include DominationInfoParser::DominationInfoParser(void) #ifdef _SERVER : is_script_mode_(true) , is_loaded_(false) #endif { } DominationInfoParser::~DominationInfoParser(void) { } BOOL DominationInfoParser::LoadScript(eSCRIPT_CODE script_code, BOOL is_reload) { switch( script_code ) { case SCRIPT_DOMINATIONINFO: return (LoadDominationInfo((is_reload == TRUE)) ? TRUE : FALSE); case SCRIPT_DOMINATION_EVENT_INFO: return (LoadEventInfo((is_reload == TRUE)) ? TRUE : FALSE); } return FALSE; } bool DominationInfoParser::LoadDominationInfo(const bool /*is_reload*/) { const int row_size = GetRowSize(); for (int row = 0; row < row_size; ++row) { sDOMINATION_INFO domination_info; GetData(row, domination_info.m_DominationMapCode, "MapCode"); GetData(row, domination_info.m_LinkMapCode, "FieldCode"); GetData(row, domination_info.m_SubMapCode, "SubFieldCode"); GetData(row, domination_info.m_Index, "Index"); #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION GetData(row, domination_info.m_DominationType, "DominationType"); #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION GetData(row, domination_info.m_MaxUser, "MaxUser"); GetData64(row, domination_info.m_BaseBattingMoney, "BaseBattingMoney"); GetData(row, domination_info.m_BattingCharge, "BattingChargeRate"); // added by _NA_0_20100705_DOMINATION_EVENT = { GetData(row, domination_info.m_byUseFixEvent, "UseFixEvent"); GetData(row, domination_info.m_wEventDayOfWeek, "EventDayOfWeek"); GetData(row, domination_info.m_dwEventTime, "EventTime"); GetDataWZID(row, domination_info.m_dwEventTriggerID, "EventTriggerID"); // } GetDataWZID(row, domination_info.m_StartTriggerID, "StartTriggerID"); GetDataWZID(row, domination_info.m_EndTriggerID, "EndTriggerID"); for (int i = 0; i < sDOMINATION_INFO::GATEID_MAX; ++i) { GetData(row, domination_info.m_GateID[i], "GateID%d", i+1); } GetData(row, domination_info.m_GateHPTunning, "GateHPtunning"); GetData(row, domination_info.m_RespawnDelay, "RespawnDelay"); for (int i = 0; i < sDOMINATION_INFO::LIMIT_MAX; ++i) { GetData(row, domination_info.m_LimitSkillGroup[i], "LimitSkillGroup%d", i+1); GetData(row, domination_info.m_LimitItemGroup[i], "LimitItemGroup%d", i+1); #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION } for (int i = 0; i < sDOMINATION_INFO::REWARD_OPTION_MAX; ++i) { #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION AttrOptionInfo& option_info = domination_info.m_RewardOption[i]; GetData(row, option_info.m_wOptionKind, "RewardOptionKind%d", i+1); GetData(row, option_info.m_byOptionType, "RewardOptionType%d", i+1); GetData(row, option_info.m_iOptionValue, "RewardOptionValue%d", i+1); } GetData(row, domination_info.m_RewardDropHeimRate, "RewardDropHeimRate"); GetData(row, domination_info.m_BattingItemCode, "BattingItemCode"); #ifdef _NA_20120511_WORK_TO_DOMINATION_ADDITIONAL_REQUEST GetData(row, domination_info.m_BattingGuildLevelLimit, "BattingGuildLevelLimit"); #endif if (IsValidDominationInfo(domination_info, row+1) == false) { ASSERT(false); continue; } script_infos_[domination_info.m_DominationMapCode] = domination_info; typedef std::pair MapCodePair; if (domination_info.m_DominationMapCode != 0) { map_codes_.insert( MapCodePair(domination_info.m_DominationMapCode, domination_info.m_DominationMapCode)); } if (domination_info.m_LinkMapCode != 0) { map_codes_.insert( MapCodePair(domination_info.m_LinkMapCode, domination_info.m_DominationMapCode)); } if (domination_info.m_SubMapCode != 0) { map_codes_.insert( MapCodePair(domination_info.m_SubMapCode, domination_info.m_DominationMapCode)); } } is_loaded_ = true; return true; } bool DominationInfoParser::LoadEventInfo(const bool /*is_reload*/) { #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION //±âÁ¸ÀÇ À̺¥Æ®´Â dayOfweek(¿äÀÏ)À» À妽º·Î ±¸ºÐÇÏ¿© ÀúÀåÇÑ´Ù. //¸óÆ®»þÀΰú °ü·ÃµÈ ¼öÁ¤ »Ó¸¸¾Æ´Ï¶ó À̺¥Æ®¿Í Çʵ带 ¸ÅνÃÄÑ ´Ù¾çÇÑ ½Ã°£ÀÇ Á¡·ÉÀüÀ» À§ÇØ //À̺¥Æ® ÀÚü¿¡ Index¸¦ µÎ°í ÀÌ Index·Î ±¸ºÐÇÏ¿© event_infos_¿¡ ÀúÀåÇÑ´Ù. const char* field_name[DOMINATION_EVENT_MAX] = { "AuctionStart", "AuctionEnd", "SelectAttackGuild", "SelectAttackGuildEnd", "SystemResetTime", "WaitingTime", "BattleStartingTime", "BattleEndTime", "AuctionStart2" }; const int row_size = GetRowSize(); for (int row = 0; row < row_size; ++row) { sDOMINATION_EVENT_INFO event_info; GetData(row, event_info.m_wEventIndex, "Index"); GetData(row, event_info.m_wMapCode, "MapCode"); GetData(row, event_info.m_wDayOfWeek, "DayOfWeek"); //Á¡·ÉÀü¿¡¼­ °æ¸Å ½Ã½ºÅÛÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î ½ºÅ©¸³Æ®¿¡¼­ »èÁ¦ÇÏ°í ¾Æ·¡¿Í °°ÀÌ »ó¼ö·Î ó¸®ÇÑ´Ù. event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START] = DOMINATION_EVENT_AUCTION_START_TIME; event_info.m_dwTime[DOMINATION_EVENT_AUCTION_END] = DOMINATION_EVENT_AUCTION_END_TIME; event_info.m_dwTime[DOMINATION_EVENT_SELECT_ATTACKGUILD] = DOMINATION_EVENT_SELECT_ATTACKGUILD_TIME; event_info.m_dwTime[DOMINATION_EVENT_SELECT_ATTACKGUILD_END] = DOMINATION_EVENT_SELECT_ATTACKGUILD_END_TIME; GetData(row, event_info.m_dwTime[DOMINATION_EVENT_SYSTEM_RESET], "SystemResetTime"); GetData(row, event_info.m_dwTime[DOMINATION_EVENT_WAIT], "WaitingTime"); GetData(row, event_info.m_dwTime[DOMINATION_EVENT_START], "BattleStartingTime"); GetData(row, event_info.m_dwTime[DOMINATION_EVENT_END], "BattleEndTime"); event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START2] = DOMINATION_EVENT_AUCTION_START2_TIME; if (IsValidEventInfo(event_info)) { event_infos_.insert(std::make_pair(event_info.m_wEventIndex, event_info)); } } return true; #else const char* field_name[DOMINATION_EVENT_MAX] = { "AuctionStart", "AuctionEnd", "SelectAttackGuild", "SelectAttackGuildEnd", "SystemResetTime", "WaitingTime", "BattleStartingTime", "BattleEndTime", "AuctionStart2" }; const int row_size = GetRowSize(); for (int row = 0; row < row_size; ++row) { sDOMINATION_EVENT_INFO event_info; GetData(row, event_info.m_wDayOfWeek, "DayOfWeek"); for (int i = 0; i < DOMINATION_EVENT_MAX; ++i) { GetData(row, event_info.m_dwTime[i], field_name[i]); } if (IsValidEventInfo(event_info)) { event_infos_.insert(std::make_pair(event_info.m_wDayOfWeek, event_info)); } } return true; #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION } bool DominationInfoParser::IsValidDominationInfo( const sDOMINATION_INFO& domination_info, const int row) const { if (row != domination_info.m_Index) { SUNLOG( eCRITICAL_LOG, _T("|%s|%d|ÉèÖõÄË÷Òý²»ÕýÈ·.|ÐкÅ= %d, Index = %d|"), __FUNCTION__, __LINE__, row, domination_info.m_Index ); ASSERT(false); return false; } #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION for (int i = 0; i < sDOMINATION_INFO::REWARD_OPTION_MAX; ++i) #else for (int i = 0; i < sDOMINATION_INFO::LIMIT_MAX; ++i) #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION { const AttrOptionInfo& option_info = domination_info.m_RewardOption[i]; const WORD option_index = option_info.m_wOptionKind; const BYTE option_type = option_info.m_byOptionType; const int option_value = option_info.m_iOptionValue; if (CheckOptionValidity(option_index, option_type, option_value) == false) { SUNLOG( eCRITICAL_LOG, _T("|%s|%d|½±ÀøbuffÑ¡Ïî²»ÕýÈ·.|ÐкÅ= %d, Index = %d, OptionIndex = %d, OptionType = %d, OptionValue = %d|"), __FUNCTION__, __LINE__, row, domination_info.m_Index, option_index, option_type, option_value ); ASSERT(false); return false; } } return true; } bool DominationInfoParser::IsValidEventInfo(const sDOMINATION_EVENT_INFO& eventInfo) const { if (eventInfo.m_wDayOfWeek > 6) { SUNLOG( eCRITICAL_LOG, _T("|%s|%d|ÐÇÆÚ¼¸²»ÕýÈ·.|DayOfWeek = %d|"), __FUNCTION__, __LINE__, eventInfo.m_wDayOfWeek ); ASSERT(false); return false; } const DWORD* times = eventInfo.m_dwTime; for (int i = DOMINATION_EVENT_AUCTION_START; i < DOMINATION_EVENT_AUCTION_START2; ++i, ++times) { const DWORD start_time = *times; const DWORD end_time = *(times+1); if (((start_time + end_time) != 0) && start_time >= end_time) { SUNLOG( eCRITICAL_LOG, _T("|%s|%d|¿ªÊ¼Ê±¼ä´óÓÚ½áÊøÊ±¼ä.|DayOfWeek = %d, StartTime = %d, EndTime = %d|"), __FUNCTION__, __LINE__, eventInfo.m_wDayOfWeek, start_time, end_time ); ASSERT(false); return false; } #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION if (GetCurEventState(eventInfo.m_wDayOfWeek, start_time, eventInfo.m_wMapCode) != DOMINATION_EVENT_MAX) #else if (GetCurEventState(eventInfo.m_wDayOfWeek, start_time) != DOMINATION_EVENT_MAX) #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION { SUNLOG( eCRITICAL_LOG, _T("|%s|%d|ʱ¼äÒѾ­´æÔÚ.|DayOfWeek = %d, StartTime = %d|"), __FUNCTION__, __LINE__, eventInfo.m_wDayOfWeek, start_time ); ASSERT(false); return false; } } return true; } const sDOMINATION_INFO* DominationInfoParser::GetDominationInfo(const MAPCODE field_code) const { const MAPCODE map_code = GetDominationFieldCode(field_code); DOMINATION_SCRIPT_INFO_MAP::const_iterator it = script_infos_.find(map_code); if (it != script_infos_.end()) { return &(it->second); } return NULL; } MAPCODE DominationInfoParser::GetDominationFieldCode(const MAPCODE field_code) const { MapCodes::const_iterator it = map_codes_.find(field_code); if (it != map_codes_.end()) { return it->second; } return 0; } MAPCODE DominationInfoParser::GetDominationLinkMapCode(const MAPCODE map_code) const { DOMINATION_SCRIPT_INFO_MAP::const_iterator it = script_infos_.find(map_code); if (it != script_infos_.end()) { const sDOMINATION_INFO& domination_info = it->second; return domination_info.m_LinkMapCode; } return 0; } MONEY DominationInfoParser::GetAreaLimitMoney(const MAPCODE map_code) const { DOMINATION_SCRIPT_INFO_MAP::const_iterator it = script_infos_.find(map_code); if (it == script_infos_.end()) { return 0; } const sDOMINATION_INFO& domination_info = it->second; return domination_info.m_BaseBattingMoney; } const sDOMINATION_EVENT_INFO* DominationInfoParser::GetEventInfo( const WORD day_of_week, const DWORD time) const { std::pair< EventInfos::const_iterator, EventInfos::const_iterator > range = event_infos_.equal_range(day_of_week); #ifdef _SERVER if (is_script_mode_ == false) { range = gm_event_infos_.equal_range(day_of_week); } #endif for(EventInfos::const_iterator it = range.first; it != range.second; ++it) { const sDOMINATION_EVENT_INFO& event_info = it->second; const DWORD start_time = event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START]; const DWORD end_time = event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START2]; const bool is_include = Between(time, start_time, end_time); if (is_include) { return &event_info; } } return NULL; } #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION const sDOMINATION_EVENT_INFO* DominationInfoParser::GetGMEventInfo(const WORD day_of_week, const DWORD time, const MAPCODE map_code) const { std::pair< EventInfos::const_iterator, EventInfos::const_iterator > range; #ifdef _SERVER if (is_script_mode_ == false) { range = gm_event_infos_.equal_range(day_of_week); } else { return NULL; } #endif for(EventInfos::const_iterator it = range.first; it != range.second; ++it) { const sDOMINATION_EVENT_INFO& event_info = it->second; if(event_info.m_wMapCode != 0 && event_info.m_wMapCode != map_code) { continue; } const DWORD start_time = event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START]; const DWORD end_time = event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START2]; const bool is_include = Between(time, start_time, end_time); if (is_include) { return &event_info; } } return NULL; } //Á¡·ÉÀü À̺¥Æ® Á¤º¸¸¦ ÇØ´ç Çʵ忡¼­ µ¶¸³ÀûÀ¸·Î °¡Áö°í ÀÖ±â À§ÇØ ¾Æ·¡¿Í °°Àº ÇÔ¼ö¸¦ Ãß°¡ÇÏ¿´´Ù. STLX_MULTIMAP DominationInfoParser::GetEventInfosFromMapCode(MAPCODE map_code) { EventInfos::const_iterator event_infos_it = event_infos_.begin(); EventInfos::const_iterator event_infos_end = event_infos_.end(); EventInfos event_infos; //µî·ÏµÇ¾îÁø À̺¥Æ®¸¦ ¼øÈ¸ÇÑ´Ù. for ( ;event_infos_it != event_infos_end; ++event_infos_it) { const sDOMINATION_EVENT_INFO& event_info = event_infos_it->second; //ÇØ´ç Á¡·ÉÁöÀÇ ¸ÊÄÚµå¿Í À̺¥Æ®ÀÇ ¸Ê Äڵ带 üũÇÑ´Ù if (event_info.m_wMapCode != map_code) { continue; } event_infos.insert(std::make_pair(event_info.m_wEventIndex, event_info)); } return event_infos; } eDOMINATION_EVENT_STATE DominationInfoParser::GetCurEventState( const WORD day_of_week, const DWORD time, const DWORD map_code) const { EventInfos::const_iterator event_infos_it = event_infos_.begin(); EventInfos::const_iterator event_infos_end = event_infos_.end(); //µî·ÏµÇ¾îÁø À̺¥Æ®¸¦ ¼øÈ¸ÇÑ´Ù. for ( ;event_infos_it != event_infos_end; ++event_infos_it) { const sDOMINATION_EVENT_INFO& event_info = event_infos_it->second; //¿À´Ã°ú °°Àº ¿äÀÏÀÎÁö üũÇÑ´Ù. if (event_info.m_wDayOfWeek != day_of_week) { continue; } //ÇØ´ç Á¡·ÉÁöÀÇ ÄÚµå¿Í À̺¥Æ®ÀÇ Á¡·ÉÀü ¸Ê Äڵ带 üũÇÑ´Ù if (event_info.m_wMapCode != map_code) { continue; } //ÇöÀç ½Ã°£ÀÌ À̺¥Æ®ÀÇ ½Ã°£¿¡ Æ÷ÇԵǴÂÁö È®ÀÎÇÑ´Ù. const DWORD start_time = event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START]; const DWORD end_time = event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START2]; const bool is_include = Between(time, start_time, end_time); if (is_include == false) { continue; } //À̺¥Æ®ÀÇ ½Ã°£¿¡ Æ÷ÇԵȴٸé ÇöÀç ½Ã°£¿¡ ÇØ´çÇÏ´Â À̺¥Æ® »óŸ¦ ¸®ÅÏÇÑ´Ù const DWORD* times = event_info.m_dwTime; for (int cur_event = DOMINATION_EVENT_AUCTION_START; cur_event < DOMINATION_EVENT_AUCTION_START2; ++cur_event, ++times) { const DWORD start_time = *times; const DWORD end_time = *(times+1); const bool is_include_current = Between(time, start_time, end_time); if (is_include_current == false) { continue; } return (eDOMINATION_EVENT_STATE)cur_event; } } return DOMINATION_EVENT_MAX; } #else eDOMINATION_EVENT_STATE DominationInfoParser::GetCurEventState( const WORD day_of_week, const DWORD time) const { const sDOMINATION_EVENT_INFO* const event_info = GetEventInfo(day_of_week,time); if (event_info != NULL) { const DWORD* times = event_info->m_dwTime; for (int cur_event = DOMINATION_EVENT_AUCTION_START; cur_event < DOMINATION_EVENT_AUCTION_START2; ++cur_event, ++times) { const DWORD start_time = *times; const DWORD end_time = *(times+1); const bool is_include = Between(time, start_time, end_time); if (is_include) { return (eDOMINATION_EVENT_STATE)cur_event; } } } return DOMINATION_EVENT_MAX; } #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION //_NA_0_20100705_DOMINATION_EVENT DWORD DominationInfoParser::GetRandomAuctionTime(const WORD day_of_week) const { const size_t event_size = event_infos_.count(day_of_week); if (event_size <= 0) { return 0; } EventInfos::const_iterator it = event_infos_.lower_bound(day_of_week); int it_index = random(0, event_size-1); while (it_index-- != 0) { ++it; } const sDOMINATION_EVENT_INFO& event_info = it->second; typedef std::pair AuctionTime; std::vector< AuctionTime > auction_times; const DWORD start_time1 = util::HHMMSSToSecond(event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START]); const DWORD end_time1 = util::HHMMSSToSecond(event_info.m_dwTime[DOMINATION_EVENT_AUCTION_END]); if ((end_time1 - start_time1) >= 60) { auction_times.push_back(AuctionTime(start_time1, end_time1)); } const DWORD start_time2 = util::HHMMSSToSecond(event_info.m_dwTime[DOMINATION_EVENT_END]); const DWORD end_time2 = util::HHMMSSToSecond(event_info.m_dwTime[DOMINATION_EVENT_AUCTION_START2]); if ((end_time2 - start_time2) >= 60) { auction_times.push_back(AuctionTime(start_time2, end_time2)); } if (auction_times.size() == 0) { return 0; } const int sel_index = random(1, auction_times.size())-1; const AuctionTime& sel_auction_time = auction_times[sel_index]; return util::SecondToHHMMSS(random(sel_auction_time.first, sel_auction_time.second)); } // ±³Àü ÀüÀϰæ¿ì ±³Àü½Ã°£ // ±³Àü ÁßÀϰæ¿ì ³²¾Æ ÀÖ´Â ±³Àü ½Ã°£ // ±³Àü ³¡Àϰæ¿ì 0 DWORD DominationInfoParser::GetWarTime(const WORD day_of_week, const DWORD time) const { const sDOMINATION_EVENT_INFO* const event_info = GetEventInfo(day_of_week, time); if (event_info != NULL) { const DWORD start_time = event_info->m_dwTime[DOMINATION_EVENT_START]; const DWORD end_time = event_info->m_dwTime[DOMINATION_EVENT_END]; return util::CarcHHMMSS(end_time, max(start_time, time), false); } return 0; } // ±³Àü ÀüÀϰæ¿ì ±³Àü ±îÁö ³²Àº ½Ã°£ // ±³Àü ÁßÀϰæ¿ì 0 // ±³Àü ³¡Àϰæ¿ì 0 DWORD DominationInfoParser::GetRemindEventTime( const WORD day_of_week, const DWORD time, const eDOMINATION_EVENT_STATE event_state) const { const sDOMINATION_EVENT_INFO* const event_info = GetEventInfo(day_of_week, time); if (event_info != NULL) { const DWORD start_time = event_info->m_dwTime[event_state]; return util::CarcHHMMSS(start_time, time, false); } return 0; } #ifdef _SERVER //¼­¹öÀü¿ë(GM) bool DominationInfoParser::GMInsertEventInfo(const sDOMINATION_EVENT_INFO& event_info) { is_script_mode_ = false; gm_event_infos_.clear(); if (IsValidEventInfo(event_info)) { gm_event_infos_.insert(std::make_pair(event_info.m_wDayOfWeek, event_info)); return true; } return false; } void DominationInfoParser::GMClearEventInfo() { is_script_mode_ = true; gm_event_infos_.clear(); } #endif //_SERVER #if defined (_NA_20100420_CHANGE_SYSTEM_MEMO_LOGIC) || \ defined (_NA_20100812_INTEGRATE_SYSTEM_MEMO_DOMINATION) WORD DominationInfoParser::GetBattingItemCodeByMapCode(const MAPCODE field_code) const { const MAPCODE map_code = GetDominationFieldCode(field_code); DOMINATION_SCRIPT_INFO_MAP::const_iterator it = script_infos_.find(map_code); if (it != script_infos_.end()) { return (it->second.m_BattingItemCode); } return 0; } #endif DominationInfoParser::SelectedRewardOptions DominationInfoParser::GetRewardOption( const DominationInfoParser::TakenMaps& taken_maps) const { SelectedRewardOptions sel_options; for (TakenMaps::const_iterator map_it = taken_maps.begin(); map_it < taken_maps.end(); ++map_it) { const MAPCODE taken_map_code = *map_it; const sDOMINATION_INFO* const domination_info = GetDominationInfo(taken_map_code); if (domination_info == NULL) { continue; } for (int option_index = 0; option_index < _countof(domination_info->m_RewardOption); ++option_index) { const AttrOptionInfo& new_option_info = domination_info->m_RewardOption[option_index]; const int option_kind = new_option_info.m_wOptionKind; if (option_kind == 0) { break; } SelectedRewardOptions::const_iterator option_it = sel_options.find(option_kind); if (option_it != sel_options.end()) { // °°Àº Á¾·ùÀÇ º¸»ó ¿É¼ÇÀÌ Á¸ÀçÇϸé Å«°ª¸¸ ³²±ä´Ù. const SelectedRewardOption& prev_option = option_it->second; const AttrOptionInfo* const prev_option_info = prev_option.option_info; if (new_option_info.m_iOptionValue > prev_option_info->m_iOptionValue) { sel_options[option_kind] = SelectedRewardOption(domination_info, option_index, &new_option_info); } } else { sel_options[option_kind] = SelectedRewardOption(domination_info, option_index, &new_option_info); } } } return sel_options; } #ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION const eDOMINATION_TYPE DominationInfoParser::GetDominationTypeFromFieldCode( const MAPCODE field_code ) const { const sDOMINATION_INFO* const parser_info = GetDominationInfo(field_code); if (parser_info == NULL) { SUNLOG(eFULL_LOG,"["__FUNCTION__"]δÕÒµ½ sDomination info(field code) = %d", field_code); return DOMINATION_TYPE_NORMAL; } return static_cast(parser_info->m_DominationType); } const MAPCODE DominationInfoParser::GetMondScheinMapCode() { DOMINATION_SCRIPT_INFO_MAP::const_iterator it = script_infos_.begin(); for (it; it != script_infos_.end(); ++it) { sDOMINATION_INFO domi_info = it->second; if (domi_info.m_DominationType == DOMINATION_TYPE_MONDSCHIEN) { return domi_info.m_DominationMapCode; } } return 0; } sDOMINATION_EVENT_INFO DominationInfoParser::GetMondScheinEventInfo() { MAPCODE mond_mapcode = GetMondScheinMapCode(); EventInfos mond_eventinfos = GetEventInfosFromMapCode(mond_mapcode); sDOMINATION_EVENT_INFO event_info; EventInfos::iterator itr = mond_eventinfos.begin(); if (itr != mond_eventinfos.end()) { event_info = itr->second; } return event_info; } #endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION