153 lines
4.2 KiB
C++
153 lines
4.2 KiB
C++
#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<DWORD>(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)
|