Files
Sun1602/ProgramCommon/ChaosZoneSystem/OneDaysGuildMissioninfoParser.h
T
2022-10-26 12:25:11 +08:00

88 lines
2.5 KiB
C++

#ifndef PROGRAMCOMMON_ONEDAYZGUILDMISSIONINFOPARSER_H_
#define PROGRAMCOMMON_ONEDAYZGUILDMISSIONINFOPARSER_H_
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef _NA_008543_20151027_ONE_DAYS_GUILD_MISSION
#include <SolarHashTable.h>
#include <Singleton.h>
#include <SolarFileReader.h>
#include <ScriptCode.IParser.h>
struct OneDaysGuildMissionInfo
{
BYTE index; // 맵 타입
DWORD map_code; // 맵 코드
DWORD play_time; // 플레이시간(초)
DWORD start_wait_time; // 출발 대기시간(초)
DWORD end_wait_time; // 종료 대기 시간(초)
DWORD start_trigger_id; // 시작 오픈 트리거 ID
DWORD base_reward_item_code; // 기본 보상 코드
OneDaysGuildMissionInfo()
{
::ZeroMemory(this, sizeof(*this));
}
};
//_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT
struct GuildMissionTimeInfo
{
BYTE index;
MAPCODE map_code;
BYTE day_of_week; // 요일
DWORD wait_time; // 시작 대기시간
DWORD starting_time; // 시작 시간
DWORD end_time; // 종료 시간
GuildMissionTimeInfo() : index(0), map_code(0), day_of_week(0), wait_time(0), starting_time(0), end_time(0)
{
//
}
};
class OneDaysGuildMissionInfoParser : public util::Singleton<OneDaysGuildMissionInfoParser>, public IParser
{
public:
typedef STLX_HASH_MAP<DWORD, OneDaysGuildMissionInfo*> OneDaysGuildMissionInfo_Hash;
//_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT
typedef STLX_HASH_MAP<MAPCODE, GuildMissionTimeInfo*> GuildMissionTimeInfoHash;
OneDaysGuildMissionInfoParser(void);
~OneDaysGuildMissionInfoParser(void);
public:
void Init();
void Init(char* pszPackFileName);
virtual void Release();
virtual BOOL LoadScript(eSCRIPT_CODE ScriptCode, BOOL bReload);
OneDaysGuildMissionInfo_Hash& oneoaysguildmissionInfo_hash() { return OneDaysGuildMissionInfo_Hash_; }
const OneDaysGuildMissionInfo* FindData(const MAPCODE map_code) const;
//_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT
const GuildMissionTimeInfo* FindGuildMissionTimeInfo(MAPCODE map_code) const;
private:
BOOL _Load(BOOL bReload);
void Unload();
//_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT
BOOL _LoadGuildMissionTimeInfo(BOOL bReload);
VOID _UnloadGuildMissionTimeInfo();
private:
OneDaysGuildMissionInfo_Hash OneDaysGuildMissionInfo_Hash_;
//_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT
GuildMissionTimeInfoHash guildmissiontimeinfo_hash_;
};
#endif //(_NA_008543_20151027_ONE_DAYS_GUILD_MISSION)
#endif //(PROGRAMCOMMON_ONEDAYZGUILDMISSIONINFOPARSER_H_)