#pragma once #include #include //BEGIN_DECL_QACTION( QUEST_ACTION_ITEM ) //__DECL_CUSTOMPOOL_PTR( QUEST_ACTION_ITEM ) // void DoAccept( void * pvParam ); // void DoComplete( void * pvParam ); // __BOOL_PROPERTY( Delete ) //< ¾ÆÀÌÅÛ »èÁ¦ ¿©ºÎ(TRUE) : ºÎ¿©(FALSE) // __ARRAY_PROPERTY( WORD, 3, ItemCode ) // __ARRAY_PROPERTY( WORD, 3, ItemNum ) //END_DECL_QACTION class QUEST_ACTION_ITEM:public QuestAction { private: typedef ::util::CMemoryPoolFactory* custom_pool_type; static custom_pool_type custom_pool_static; public: QUEST_ACTION_ITEM(){} virtual ~QUEST_ACTION_ITEM(){} inline QUEST_ACTION_ITEM_INFO* GetInfo(){return m_pInfo;} inline void SetInfo(QUEST_ACTION_ITEM_INFO* p){m_pInfo=p;} virtual eQUEST_ACTION_TYPE GetType(){return m_pInfo->GetType();} void DoAccept( void * pvParam ); void DoComplete( void * pvParam ); static void SetPool(custom_pool_type initialized_pool_ptr) { custom_pool_static=initialized_pool_ptr; custom_pool_static->SetTypeName("QUEST_ACTION_ITEM"); } static QUEST_ACTION_ITEM* ALLOC() { return reinterpret_cast(custom_pool_static->Alloc()); } static void FREE(QUEST_ACTION_ITEM* query_ptr){custom_pool_static->Free(query_ptr);} public: void SetDelete(bool bValue=true){m_Delete=bValue;} bool IsDelete()const {return m_Delete;} void SetItemCode(const DWORD idx,WORD value) { if(FlowControl::FCAssert(idx<_countof(m_pItemCode))) m_pItemCode[idx]=value; } WORD GetItemCode(const DWORD idx) { if(FlowControl::FCAssert(idx<_countof(m_pItemCode))) return m_pItemCode[idx]; return WORD(); } WORD* GetItemCodePtr() {return m_pItemCode;} void SetItemNum(const DWORD idx,WORD value) { if(FlowControl::FCAssert(idx<_countof(m_pItemNum))) m_pItemNum[idx]=value; } WORD GetItemNum(const DWORD idx) { if(FlowControl::FCAssert(idx<_countof(m_pItemNum))) return m_pItemNum[idx]; return WORD(); } WORD* GetItemNumPtr() {return m_pItemNum;} protected: bool m_Delete; WORD m_pItemCode[3]; WORD m_pItemNum[3]; private: QUEST_ACTION_ITEM_INFO* m_pInfo; };