#pragma once #include //#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 m_vecMenuList; STRING_VECTOR m_vecTextList; std::vector m_vecButtonList; AR_HANDLE m_hTarget; ///< Target 임시 저장 AR_HANDLE m_hFaceNPC; SUIDisplayInfo* m_pDisplayInfo; };