99 lines
2.7 KiB
C++
99 lines
2.7 KiB
C++
#include "SunClientPrecompiledHeader.h"
|
|
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
#include "GuildMissionTreeParser.h"
|
|
|
|
BOOL GuildMissionTreeParser::_Load( BOOL bReload )
|
|
{
|
|
if (bReload == TRUE) {
|
|
GetGuildMissionInfoHash().clear();
|
|
}
|
|
|
|
int row_size = GetRowSize();
|
|
for (int row = 0; row < row_size; ++row)
|
|
{
|
|
GuildMissionInfo* mission_info = new GuildMissionInfo();
|
|
|
|
|
|
mission_info->large_group = GetDataBYTE("LGroup", row);
|
|
mission_info->sub_group = GetDataBYTE("SGroup", row);
|
|
mission_info->large_group_string = GetDataDWORD("LGroupStringCode", row);
|
|
mission_info->sub_group_string = GetDataDWORD("SGroupStringCode", row);
|
|
mission_info->mission_string_code = GetDataDWORD("MissionStringCode", row);
|
|
mission_info->map_code = GetDataWORD("MapCode", row);
|
|
|
|
sscanf(GetDataString("EnableColor", row), "%x", &(mission_info->font_color[0]));
|
|
sscanf(GetDataString("DisableColor", row), "%x", &(mission_info->font_color[1]));
|
|
sscanf(GetDataString("OverColor", row), "%x", &(mission_info->font_color[2]));
|
|
sscanf(GetDataString("SelectColor", row), "%x", &(mission_info->font_color[3]));
|
|
|
|
GetGuildMissionInfoHash().insert(GuildMissionInfoHash::value_type(mission_info->map_code, mission_info));
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
VOID GuildMissionTreeParser::Init( char* file_name )
|
|
{
|
|
SetPackFileName(file_name);
|
|
}
|
|
|
|
VOID GuildMissionTreeParser::Release()
|
|
{
|
|
_Unload();
|
|
}
|
|
|
|
BOOL GuildMissionTreeParser::LoadScript( eSCRIPT_CODE script_code, BOOL is_reload )
|
|
{
|
|
switch(script_code)
|
|
{
|
|
case SCRIPT_GUILDMISSIONTREE:
|
|
return _Load(is_reload);
|
|
default:
|
|
break;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
const GuildMissionInfo* GuildMissionTreeParser::FindData( const MAPCODE& map_code ) const
|
|
{
|
|
GuildMissionInfoHash::const_iterator itr = info_hash_.find(map_code);
|
|
|
|
if (itr != info_hash_.end()) {
|
|
return itr->second;
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
VOID GuildMissionTreeParser::_Unload()
|
|
{
|
|
GuildMissionInfoHash::iterator itr = info_hash_.begin();
|
|
for (itr; itr != info_hash_.end(); ++itr)
|
|
{
|
|
GuildMissionInfo* info = itr->second;
|
|
SAFE_DELETE(info);
|
|
}
|
|
info_hash_.clear();
|
|
}
|
|
|
|
|
|
|
|
// ±×·ì¹øÈ£·Î ã±â
|
|
const GuildMissionInfo* GuildMissionTreeParser::FindData(const BYTE LGroup, const BYTE SGroup) const
|
|
{
|
|
GuildMissionInfoHash::const_iterator itr = info_hash_.begin();
|
|
|
|
for(itr; itr != info_hash_.end(); ++itr)
|
|
{
|
|
GuildMissionInfo* info = itr->second;
|
|
if (info->large_group == LGroup && info->sub_group == SGroup)
|
|
{
|
|
return info;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|