www.pudn.com > GameEngine_src.rar > CNpcDlg.h


// CNpcDlg.h: interface for the CNpcDlg class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#ifndef CNpcDlg_h 
#define CNpcDlg_h 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
#include "CES_CmdPool.h" 
#include "CEasyDraw.h" 
#include "CEPKFile.h" 
#include "CDynamicArray.h" 
#include  
 
using std::string; 
 
struct DLG_BUTTON 
{ 
	union { 
		PSURFACE	m_ButtonSurface; 
		int			m_IndexOfSurface; 
	}; 
	RECT		m_ButtonRect; 
	int			m_CmdOffset; 
	int			m_CmdNum; 
}; 
 
 
struct DLG_PAGE 
{ 
	union { 
		PSURFACE	m_NpcWordSurface; 
		int			m_IndexOfSurface; 
	}; 
	CDynamicArray	m_ButtonList; 
}; 
 
 
 
class CNpcDlg   
{ 
public: 
	CNpcDlg(); 
	~CNpcDlg(); 
 
	bool Init(); 
	void Free(); 
 
	//bool LoadDlg( char *filename, bool isFromFile ); 
	bool LoadDlgFromEPK( CEPKFile &epk, const char *dlgName ); 
 
	void HandleMouseMsg(); 
	void Draw(); 
	void GoToPage( int page_num ); 
 
private: 
	PSURFACE	m_DlgBKSurface; 
	PSURFACE	m_NpcHeadSurface;				//npc头像页面 
 
	int			m_CurPage;						//0代表没有,从1开始 
	int			m_CurButton;					//0代表没有,从1开始 
 
	POINT		m_Render; 
 
	CDynamicArray		m_PageList; 
 
	CES_CmdPool	m_CmdPool; 
}; 
 
 
//////////////////////////////////////////////////////////////////////// 
//npc对话框管理类,负责载入一个关卡的对话框,并打开和关闭对话框 
//////////////////////////////////////////////////////////////////////// 
class CNpcDlgMgr 
{ 
public: 
	CNpcDlgMgr(); 
	~CNpcDlgMgr(); 
 
	bool Init(); 
	void Free(); 
 
	void OnFreeLvl(); 
	void OnLoadMap( char *dlgName ); 
	bool OnLoadLvl(); 
	bool OnInitLvl(); 
 
	int HandleMouseMsg(); 
	void Draw(); 
	void OnMouseDown(); 
 
	bool OpenDlg( char *dlg_name );			//打开指定的对话框 
	void CloseDlg(); 
 
private: 
	CDynamicArray	m_NpcDlgList;	//一个关卡里所有NPC对话框 
	//CDynamicArray 
	CDynamicArray	m_NpcDlgNameList;	//名称列表		 
	int		m_CurDlgIndex;				//当前的对话框,0表示没有 
}; 
 
 
#endif