#ifndef __COMMON_DROP_CORE_H #define __COMMON_DROP_CORE_H #pragma once //================================================================================================== /// DropCore class /** @author Kim Min Wook < taiyo@webzen.com > @since 2006. 4. 5 (½Ä¸ñÀÏ ¿Ö ÈÞÀÏÀÌ ¾Æ´Ï³É$_$) @remarks - @purpose - ¾ÆÀÌÅÛ, µ· µå¶øÀÇ ´Ü¼øÈ­ - ¹ë·±½º¸¦ ÄÁÆ®·ÑÇϱ⠽¬¿ò @history - 091003|waverix|code arrangement */ //================================================================================================== #include "ItemTypeDropRatio.h" #include class DropItemObj; class DropMoneyObj; class SCItemSlot; class ItemTypeList; class DropRatioInfoList; enum eDROP_TYPE_ { DROP_TYPE_NONE, DROP_TYPE_MONEY, DROP_TYPE_ITEM, }; class DropCore : public IParser { public: DropCore(void); virtual ~DropCore(void); // CHANGES: f110401.3L, the 'result_number_of_drop_items' variable means // dropped_item_out * result_number_of_drop_items. basically the result of value is 1. BOOL Drop(eZONETYPE zone_type, DWORD drop_index, eNPC_GRADE npc_grade, float fBonusPercent, eDROP_TYPE_& OUT drop_type_out, MONEY& OUT dropped_money_out, SCItemSlot& OUT dropped_item_out, DWORD& OUT decided_seed_out, int* result_number_of_drop_items); void Reload(); void Unload(); virtual BOOL Load(eSCRIPT_CODE script_code, const TCHAR* file_name, BOOL bBigData, eSEPERATOR_MODE mode, const TCHAR* pack_file_name, BOOL bReload); virtual BOOL SolarLoad(eSCRIPT_CODE script_code, BYTE* stream, DWORD dwSize, BOOL bBigData); virtual BOOL LoadScript(eSCRIPT_CODE /*script_code*/, BOOL /*bReload*/) { return FALSE; } virtual void Release(); // NOTE: f110401.1L, added by _NA002479_20110401_DROP_RATIO_SELECTOR_EXTENTION void SetupDropRatioTable(bool selected_battlezone); // inline DropRatioInfoList* GetDropRatioInfoList() { return m_pDropRatioInfoList; } // CHANGES: f110401.3L, the 'result_number_of_drop_items' variable means // dropped_item_out * result_number_of_drop_items. basically the result of value is 1. BOOL DropItemFunc(DropItemObj* pObj, eNPC_GRADE npc_grade, SCItemSlot& OUT dropped_item_out, int* result_number_of_drop_items); BOOL DropMoneyFunc(DropMoneyObj* pDropObj, eZONETYPE zone_type, float fBonusPercent, eNPC_GRADE npc_grade, MONEY& OUT dropped_money_out, DWORD& OUT decided_seed_out); private: bool selected_battlezone_; // ItemTypeList* m_pItemTypeList; DropRatioInfoList* m_pDropRatioInfoList; // ¾ÆÀÌÅÛŸÀÔ °áÁ¤ ItemTypeDropRatio m_ItemTypeDropRatioForMonster; }; #endif //__COMMON_DROP_CORE_H