//////////////////////////////////////////////////////////////////////////////////////////////////// /// /// @file CubeSystemParser.h /// @author hukim /// @brief [2010/08/24 by hukim] This is created.\n /// //////////////////////////////////////////////////////////////////////////////////////////////////// #pragma once #ifndef PROGRAMCOMMON_CUBESYSTEM_CUBESYSTEMPARSER_H_ #define PROGRAMCOMMON_CUBESYSTEM_CUBESYSTEMPARSER_H_ #include "ScriptCode.IParser.h" #include "Singleton.h" #include "CubeStruct.h" class SCItemSlot; class SCItemSlotContainer; struct MSG_CG_ITEM_COMPOSE_OR_DECOMPOSE_SYN; // Å¥ºê ½Ã½ºÅÛ ½ºÅ©¸³Æ® ÆÄ¼­¸¦ ±¸ÇöÇÑ Å¬·¡½º class CubeSystemParser : public util::Singleton, public IParser { //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Constructor & Destructor //////////////////////////////////////////////////////////////////////////////////////////////// public: explicit CubeSystemParser(); ~CubeSystemParser(); //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Public //////////////////////////////////////////////////////////////////////////////////////////////// public: virtual void Release(); virtual BOOL LoadScript(eSCRIPT_CODE script_code, BOOL is_reload); public: // ÇÕ¼º Á¤º¸¸¦ ¾ò´Â´Ù. CompositionInfo* FindComposition(const CompositionInfo::CompositionCode code) const; // ºÐÇØÇÒ Àç·á ¸ñ·ÏÀ» ¾ò´Â´Ù. bool GetDecompositionMaterialList( SCItemSlotContainer& inventory, const MaterialInventoryPositionList& inventory_position_list, DecompositionInfo::MaterialList& OUT material_list) const; // ºÐÇØ Æ÷ÀÎÆ®¸¦ ¾ò´Â´Ù. DecompositionInfo::DecompositionPoint GetDecompositionPoint( const DecompositionInfo::MaterialList& material_list) const; // ºÐÇØ Æ÷ÀÎÆ®¿¡ ÇØ´çÇÏ´Â º¸»ó ¸ñ·ÏÀ» ¾ò´Â´Ù. bool GetDecompositionRewardList( const DecompositionInfo::DecompositionPoint decomposition_point, DecompositionInfo::RewardList& OUT reward_list) const; public: // ÇÕ¼º ¶Ç´Â ºÐÇØÇÒ Àç·á ¸ñ·ÏÀ¸·Î ¼­¹ö¿¡ ´ëÇÑ ¿äûÀ» ¾ò´Â´Ù. bool GetRequest( SCItemSlotContainer& inventory, const bool is_composition, const MaterialInventoryPositionList& inventory_position_list, const POSTYPE using_item_position, MSG_CG_ITEM_COMPOSE_OR_DECOMPOSE_SYN& OUT request) const; //////////////////////////////////////////////////////////////////////////////////////////////// // REGION : Private //////////////////////////////////////////////////////////////////////////////////////////////// private: // ÇÕ¼º Á¤º¸ ½ºÅ©¸³Æ®¸¦ Àд´Ù. bool LoadComposition(const bool is_reload); // ºÐÇØ Á¤º¸ ½ºÅ©¸³Æ®¸¦ Àд´Ù. bool LoadDecomposition(const bool is_reload); private: // ÇÕ¼º Á¤º¸¸¦ ÇØÁ¦ÇÑ´Ù. void ReleaseComposition(); private: CompositionMap composition_map_; DecompositionInfo::RewardList decomposition_reward_list_; __DISABLE_COPY(CubeSystemParser); }; //}} CubeSystemParser #endif //}} PROGRAMCOMMON_CUBESYSTEM_CUBESYSTEMPARSER_H_