#pragma once //--------------------------------------------------------------------------------------------- // will be deprecated!!!!!!!!! //--------------------------------------------------------------------------------------------- #include #include #include #include #ifndef MAKEDWORD #define MAKEDWORD(a, b) ((DWORD)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16)) #endif #define REWARD_DESC_LENGTH 64 #define REWARD_ARRAY_SIZE eCHAR_TYPE_MAX //struct REWARD1_ITEM_INFO //{ // enum { MAX_REWARD1_ITEM_NUM=4, }; // BYTE m_bySelectableRewardItemNum; // BYTE m_bRewardItemCode; // º¸»ó ¾ÆÀÌÅÛÄÚµå(1: µð¹ÙÀÎ, 0: ÀÏ¹Ý ¾ÆÀÌÅÛ) // SLOTCODE m_RewardItemCode[MAX_REWARD1_ITEM_NUM]; // BYTE m_Quantity[MAX_REWARD1_ITEM_NUM]; // // MONEY m_RewardMoney; // DWORD m_RewardEXP; // DWORD m_RewardSpecial; //}; // //struct REWARD2_ITEM_INFO //{ // enum { MAX_REWARD2_ITEM_NUM=2, }; // SLOTCODE m_RewardItemCode[MAX_REWARD2_ITEM_NUM]; // BYTE m_Quantity[MAX_REWARD2_ITEM_NUM]; // MONEY m_RewardMoney; // DWORD m_RewardEXP; //}; // //struct RANDOM_REWARD_ITEM_INFO //{ // enum { MAX_RANDOM_REWARD_ITEM_NUM=3, }; // SLOTCODE m_RandomRewradItemCode[MAX_RANDOM_REWARD_ITEM_NUM]; // ·£´ýÇÑ ¾ÆÀÌÅÛ // BYTE m_byDropRewardrate[MAX_RANDOM_REWARD_ITEM_NUM]; // ¾ÆÀÌÅÛ µå·Ó È®·ü(¼Ò¼ö ¾Æ´Ô. ÆÛ¼¾Æ¼Áö) //}; // //struct BASE_MissionReward //{ // DWORD m_Num; // char m_pszDesc[REWARD_DESC_LENGTH]; // BYTE bMcode; // ¹Ì¼Ç ÄÚµå(0:¸ÞÀÎ ¹Ì¼Ç, 1, 2: ¼­ºê ¹Ì¼Ç) // REWARD1_ITEM_INFO m_Item1Info[REWARD_ARRAY_SIZE]; // REWARD2_ITEM_INFO m_Item2Info[REWARD_ARRAY_SIZE]; // RANDOM_REWARD_ITEM_INFO m_RandItemInfo[REWARD_ARRAY_SIZE]; // ·£´ýÇÏ°Ô ³ª¿À´Â ¾ÆÀÌÅÛ //}; struct MissionRewardInfo { static const DWORD CLASS_CODE_LOWER = 0; static const DWORD CLASS_CODE_UPPER = eCHAR_TYPE_MAX; static const DWORD MISSION_REWARD_MAX_SIZE = 3; BYTE m_byMissionNo; BYTE GetMissionNo() { return m_byMissionNo; } struct sCLASS // Ŭ·¡½º ÄÚµå, ij¸¯ÅÍ Á¾·ù { BYTE m_bClassCode; struct sREWARD // ¹Ì¼Ç ¿Ï·á ȸ¼ö¿¡ µû¸¥ º¸»ó ü°è Á¤º¸ 3´Ü°è { BYTE m_bMissionNum; WORD m_wRewardCode; } REWARDs[MISSION_REWARD_MAX_SIZE]; } CLASSs[CLASS_CODE_UPPER]; // index(0)Àº »ç¿ëÇÏÁö ¾Ê´Â´Ù. À妽º Â÷ÀÌ·Î ÀÎÇÑ ¹®Á¦¹ß»ýÀ» ÇÇÇÏ´Â ÆíÀÌ ´õ ³ªÀ» µí. CHAR m_pszDesc[REWARD_DESC_LENGTH]; }; class MissionRewardParser : public util::Singleton, public IParser { public: MissionRewardParser(); ~MissionRewardParser(); VOID Init(DWORD dwPoolSize); VOID Init(DWORD dwPoolSize, char * pszPackFileName); VOID Release(); VOID Reload(); MissionRewardInfo* GetMissionReward( BYTE byMissionNo ); public: virtual BOOL LoadScript( eSCRIPT_CODE ScriptCode, BOOL bReload ); BOOL _Load( BOOL bReload ); private: VOID UnLoad(); private: // KEY: "¹Ì¼Ç ¹øÈ£", "¹Ì¼Ç ÄÚµå"ÀÇ Á¶ÇÕ -- MAKEDWORD(dwMissionNum, bMcode) util::SolarHashTable* m_pDataTable; char m_pszFileName[MAX_PATH]; };