Files
2026-06-01 12:46:52 +02:00

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