Files
Sun1602/SolarQuest/QuestAction.h
T
2022-10-26 12:25:11 +08:00

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