#pragma once #include #include #include #include enum { MAX_RANDOM_ITEM_NUM = 5 }; struct REWARD_INFO { WORD m_wIndex; MAPCODE m_MapCode; FIELDCODE m_FieldCode; BYTE m_bGuildPVP; // __NA_000000_20070528_TAIWAN_GUILD_PVP BYTE m_byRule; // Free For All, Dual Party BYTE m_byMode; // ¼­¹ÙÀ̹ú, ŸÀÓ¾îÅà BYTE m_byWinRecord; // ¿¬½Â BYTE m_byRanking; // ·©Å·(1µî, 2µî, 3µî) BYTE m_byPotion; DWORD m_dwRewardIndex[MAX_RANDOM_ITEM_NUM]; // º¸»ó ¾ÆÀÌÅÛÀÎÆ÷ À妽º }; class CHuntingRewardParser : public util::Singleton, public IParser { public: // NOTE: f110527.6L typedef STLX_HASH_MAP REWARDINFO_HASH; CHuntingRewardParser(); ~CHuntingRewardParser(); VOID Init( DWORD dwPoolSize ); VOID Release(); VOID Reload(); #ifdef __NA_000000_20070528_TAIWAN_GUILD_PVP REWARD_INFO * GetRewardInfo( MAPCODE MapCode, FIELDCODE FieldCode, BYTE bGuildPVP, BYTE byRule, BYTE byMode, BYTE byWinRecord ); #else REWARD_INFO * GetRewardInfo( MAPCODE MapCode, FIELDCODE FieldCode, BYTE byRule, BYTE byMode, BYTE byWinRecord, BYTE byRanking ); #endif DWORD GetRandomRewardIndex( REWARD_INFO *pRewardInfo ); virtual BOOL LoadScript( eSCRIPT_CODE ScriptCode, BOOL bReload ); private: BOOL _Load( BOOL bReload ); VOID Unload(); #ifdef __NA_000000_20070528_TAIWAN_GUILD_PVP DWORD64 MakeRewardKey( MAPCODE MapCode, FIELDCODE FieldCode, BYTE bGuildPVP, BYTE byRule, BYTE byMode, BYTE byWinRecord ); #else DWORD64 MakeRewardKey( MAPCODE MapCode, FIELDCODE FieldCode, BYTE byRule, BYTE byMode, BYTE byWinRecord, BYTE byRanking ); #endif private: REWARDINFO_HASH* m_pRewardHash; TCHAR m_pszFileName[MAX_PATH]; };