84 lines
2.1 KiB
C++
84 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include <QuestAction.h>
|
|
#include <QuestActionInfo_Concrete.h>
|
|
|
|
//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<QUEST_ACTION_ITEM>* 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<QUEST_ACTION_ITEM*>(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;
|
|
}; |