Files
Sun1602/Client/GameClient/QuestAction_Concrete.h
T
2022-10-26 12:25:11 +08:00

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;
};