#include "StdAfx.h" #ifdef _NA_008543_20151027_ONE_DAYS_GUILD_MISSION #include ".\OneDaysGuildMissionInfoParser.h" OneDaysGuildMissionInfoParser::OneDaysGuildMissionInfoParser(void) { } OneDaysGuildMissionInfoParser::~OneDaysGuildMissionInfoParser(void) { } VOID OneDaysGuildMissionInfoParser::Init() { } VOID OneDaysGuildMissionInfoParser::Init(char* pszPackFileName) { SetPackFileName(pszPackFileName); } void OneDaysGuildMissionInfoParser::Release() { Unload(); //_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT _UnloadGuildMissionTimeInfo(); } BOOL OneDaysGuildMissionInfoParser::LoadScript(eSCRIPT_CODE scriptCode, BOOL bReload) { switch (scriptCode) { case SCRIPT_ONEDAYSBUILDMISSION: return _Load(bReload); //_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT case SCRIPT_GUILDMISSIONTIME_INFO: return _LoadGuildMissionTimeInfo(bReload); } return FALSE; } BOOL OneDaysGuildMissionInfoParser::_Load(BOOL bReload) { if (bReload == TRUE) { OneDaysGuildMissionInfo_Hash().clear(); } int nRowSize = GetRowSize(); for(int nRow = 0; nRow < nRowSize; ++nRow) { OneDaysGuildMissionInfo* info = new OneDaysGuildMissionInfo(); info->index = GetDataBYTE("Index", nRow); info->map_code = GetDataDWORD("MapCode", nRow); info->play_time = GetDataDWORD("Playtime", nRow); info->start_wait_time = GetDataDWORD("StartWaitTime", nRow); info->end_wait_time = GetDataDWORD("EndWaitTime", nRow); GetDataWZID(nRow, info->start_trigger_id, "StartTriggerID"); info->base_reward_item_code = GetDataDWORD("BaseItemCode", nRow); OneDaysGuildMissionInfo_Hash::_Pairib result = oneoaysguildmissionInfo_hash().insert( OneDaysGuildMissionInfo_Hash::value_type(static_cast(info->map_code), info)); ASSERT(result.second == true); } return TRUE; } void OneDaysGuildMissionInfoParser::Unload() { OneDaysGuildMissionInfo_Hash::const_iterator it, end( OneDaysGuildMissionInfo_Hash_.end() ); for(it = OneDaysGuildMissionInfo_Hash_.begin() ; it != end ; ++it) { OneDaysGuildMissionInfo* info = (it->second); SAFE_DELETE(info); } OneDaysGuildMissionInfo_Hash_.clear(); } const OneDaysGuildMissionInfo* OneDaysGuildMissionInfoParser::FindData(const MAPCODE map_code) const { OneDaysGuildMissionInfo_Hash::const_iterator begin_iterator = OneDaysGuildMissionInfo_Hash_.begin(), end_iterator = OneDaysGuildMissionInfo_Hash_.end(); for (; begin_iterator != end_iterator; ++begin_iterator) { const OneDaysGuildMissionInfo* find_info = begin_iterator->second; if (find_info->map_code == map_code) { return find_info; } } return NULL; } //_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT BOOL OneDaysGuildMissionInfoParser::_LoadGuildMissionTimeInfo( BOOL bReload ) { if (bReload == TRUE) { guildmissiontimeinfo_hash_.clear(); } int nRowSize = GetRowSize(); for(int nRow = 0; nRow < nRowSize; ++nRow) { GuildMissionTimeInfo* info = new GuildMissionTimeInfo(); info->index = GetDataBYTE("Index", nRow); info->map_code = GetDataWORD("MapCode", nRow); info->day_of_week = GetDataBYTE("DayOfWeek", nRow); info->wait_time = GetDataDWORD("WaitingTime", nRow); info->starting_time = GetDataDWORD("MissionStartingTime", nRow); info->end_time = GetDataDWORD("MissionEndTime", nRow); GuildMissionTimeInfoHash::_Pairib result = guildmissiontimeinfo_hash_.insert( GuildMissionTimeInfoHash::value_type(info->map_code, info)); } return TRUE; } VOID OneDaysGuildMissionInfoParser::_UnloadGuildMissionTimeInfo() { GuildMissionTimeInfoHash::const_iterator it, end( guildmissiontimeinfo_hash_.end() ); for(it = guildmissiontimeinfo_hash_.begin() ; it != end ; ++it) { GuildMissionTimeInfo* info = (it->second); SAFE_DELETE(info); } guildmissiontimeinfo_hash_.clear(); } const GuildMissionTimeInfo* OneDaysGuildMissionInfoParser::FindGuildMissionTimeInfo( MAPCODE map_code ) const { GuildMissionTimeInfoHash::const_iterator itr = guildmissiontimeinfo_hash_.find(map_code); if (itr == guildmissiontimeinfo_hash_.end()) { return NULL; } const GuildMissionTimeInfo* info = itr->second; return info; } #endif //(_NA_008543_20151027_ONE_DAYS_GUILD_MISSION)