43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "QuestDefine.h"
|
|
#include "QuestStruct.h"
|
|
|
|
//==================================================================================================
|
|
|
|
class QuestManager;
|
|
class QuestAction
|
|
{
|
|
public:
|
|
QuestAction(void);
|
|
virtual ~QuestAction(void);
|
|
|
|
virtual void DoAccept( void * pvParam ) { __UNUSED(pvParam); }
|
|
virtual void DoComplete( void * pvParam ) { __UNUSED(pvParam); }
|
|
virtual eQUEST_ACTION_TYPE GetType() = 0;
|
|
|
|
__PTR_PROPERTY(Quest, Quest)
|
|
__PTR_PROPERTY(QuestManager, Manager)
|
|
};
|
|
//
|
|
//==================================================================================================
|
|
|
|
//-----------------------------------------------------------------------
|
|
//
|
|
// ÇÏÀ§ Ŭ·¡½º ¼±¾ð Á¤Àǹ®
|
|
//
|
|
//-----------------------------------------------------------------------
|
|
#define BEGIN_DECL_QACTION( ConcreteAction ) \
|
|
class ConcreteAction : public QuestAction \
|
|
{ \
|
|
public: \
|
|
ConcreteAction(){} \
|
|
virtual ~ConcreteAction(){} \
|
|
inline ConcreteAction##_INFO * GetInfo() { return m_pInfo;} \
|
|
inline void SetInfo( ConcreteAction##_INFO * p ) { m_pInfo=p;} \
|
|
virtual eQUEST_ACTION_TYPE GetType() { return m_pInfo->GetType(); } \
|
|
private: \
|
|
ConcreteAction##_INFO * m_pInfo;
|
|
|
|
#define END_DECL_QACTION \
|
|
}; |