85 lines
2.1 KiB
C++
85 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include <mmo/ArType.h>
|
|
//#include "SUIWnd.h"
|
|
//#include "Util.h"
|
|
|
|
class SUIDisplayInfo;
|
|
|
|
class SUINPCDialogWnd : public SUIWnd
|
|
{
|
|
public:
|
|
|
|
enum { MODE_NPC, MODE_QUEST }; // NPC 대화창인지 퀘스트 창인지..
|
|
|
|
SUINPCDialogWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo )
|
|
: SUIWnd( pGameManager )
|
|
, m_nDialogMode( MODE_NPC )
|
|
, m_hNPC( NULL )
|
|
, m_pDisplayInfo( pDisplayInfo )
|
|
{};
|
|
|
|
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
|
|
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
|
|
virtual bool InitData( bool bReload = false );
|
|
virtual void Create(KUIWND_CREATE_ARG& CREATE_ARG);
|
|
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
|
|
|
|
public:
|
|
const bool IsNoClose() const { return m_bNoClose; };
|
|
void RefreshPage();
|
|
void CreateDlgButton();
|
|
void DestroyDlgButton();
|
|
void ShowFacecut( AR_HANDLE hNPC );
|
|
|
|
void CheckPage( const STRING_VECTOR& vecTextList );
|
|
void CheckLine( STRING_VECTOR& vecLineList, std::string& str );
|
|
|
|
void SetTargetHandle( AR_HANDLE hTarget ) { m_hTarget = hTarget; }
|
|
|
|
private:
|
|
bool m_bNoClose;
|
|
|
|
int m_nDialogMode;
|
|
|
|
int m_nMaxPageCount;
|
|
int m_nCurPageCount;
|
|
|
|
AR_HANDLE m_hNPC;
|
|
bool m_bToggleHide;
|
|
|
|
struct DLGMENU
|
|
{
|
|
std::string m_strMenuName;
|
|
std::string m_strTrigger;
|
|
std::string m_controlName; // 2010.08.26 m_strMenuName가 똑같은 경우가 있기 때문에 컨트롤 이름을 따로 생성 - prodongi
|
|
int m_nButtonType;
|
|
|
|
// 2010.08.26 - prodongi
|
|
/*
|
|
DLGMENU( std::string& strMenuName, std::string& strTrigger, int nButtonType )
|
|
{
|
|
m_strMenuName = strMenuName;
|
|
m_strTrigger = strTrigger;
|
|
m_nButtonType = nButtonType;
|
|
};
|
|
*/
|
|
DLGMENU( std::string& strMenuName, std::string& strTrigger, std::string const& controlName, int nButtonType )
|
|
{
|
|
m_strMenuName = strMenuName;
|
|
m_strTrigger = strTrigger;
|
|
m_nButtonType = nButtonType;
|
|
m_controlName = controlName;
|
|
};
|
|
};
|
|
std::vector<DLGMENU> m_vecMenuList;
|
|
STRING_VECTOR m_vecTextList;
|
|
std::vector<KUIWnd*> m_vecButtonList;
|
|
|
|
AR_HANDLE m_hTarget; ///< Target 임시 저장
|
|
|
|
AR_HANDLE m_hFaceNPC;
|
|
|
|
SUIDisplayInfo* m_pDisplayInfo;
|
|
};
|