36 lines
761 B
C
36 lines
761 B
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "DNTalk.h"
|
|||
|
|
|
|||
|
|
class CDNUserBase;
|
|||
|
|
|
|||
|
|
class CDnNpc : public CDNTalk
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
enum NpcTypeEnum {
|
|||
|
|
ActorNpc,
|
|||
|
|
PropNpc,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// first - <20><>ȭ<EFBFBD><C8AD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>, second
|
|||
|
|
typedef std::map<std::wstring, CDNTalk*> TALK_MAP;
|
|||
|
|
typedef TALK_MAP::iterator TALK_MAP_IT;
|
|||
|
|
|
|||
|
|
TALK_MAP m_TalkMap;
|
|||
|
|
TNpcData m_NpcData;
|
|||
|
|
NpcTypeEnum m_NpcType;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CDnNpc();
|
|||
|
|
virtual ~CDnNpc();
|
|||
|
|
|
|||
|
|
virtual bool Create(TNpcData* pNpcData);
|
|||
|
|
virtual TNpcData* GetNpcData() { return &m_NpcData; }
|
|||
|
|
virtual bool Talk(CDNUserBase* pUserBase, UINT nNpcUniqueID, IN std::wstring& wszIndex, IN std::wstring& wszTarget) { DN_RETURN(false); }
|
|||
|
|
|
|||
|
|
bool HasQuest(int nQuestIdx);
|
|||
|
|
int GetNpcClassID() { return m_NpcData.nNpcID; }
|
|||
|
|
NpcTypeEnum GetNpcType() { return m_NpcType; }
|
|||
|
|
};
|