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" #includeusing 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