#pragma once #include "CullingProcess.h" #include "Map/SoundEmitter.h" class CUISystem; class CResMgr; class CEffectManager; class CCullingProcess; class CTaskManager; enum ESYCursorID { SYC_ARROW = 0, SYC_PICK, //Pick up SYC_SELECTTARGETERROR, SYC_BUY, //NPC purchase mouse SYC_SALE, //NPC sell mouse SYC_REPAIR, //repair mouse SYC_REPAIRALL, //repair all mouse SYC_SIZENS, // Change Window Size SYC_SELECTTARGET, SYC_NOTPICK, //Cant pick up SYC_ATTACK, //Can attack SYC_BANNEROPEN, // Flag open SYC_UNBANGDING, // Unbinding SYC_ENCHANT,//Enchanting SYC_SHOVEL,// Shovel SYC_MINE,//Mining SYC_HERB,//Herbs SYC_MAIL,//Herbs SYC_MAX, }; class CClientApp : public NiApplication { public: CClientApp(void); virtual ~CClientApp(void); void SetCursor(ESYCursorID eCursorID); // NiRenderer* GetRender() { return m_spRenderer; } void RecreateRender(); void GetVideoSize(unsigned int& uiWidth, unsigned int& uiHeight); void ResetMutiSample(); protected: // Rewrite virtual bool Initialize(); virtual void Terminate(); virtual bool CreateRenderer(); virtual void UpdateFrame(); virtual void RenderFrame(); virtual bool CreateCamera(); virtual bool OnWindowResize(int iWidth, int iHeight, unsigned int uiSizeType, NiWindowRef pWnd); virtual bool OnDefault(NiEventRef pEventRecord); virtual void ProcessInput(); #if NIMETRICS virtual void ProcessVisualTrackerInput(); #endif protected: BOOL LoadCursor(ESYCursorID eID); void Begin3DRender(); void Begin2DRender(); protected: CUISystem* m_UISystem; // User interface system HCURSOR m_Cursors[SYC_MAX]; ESYCursorID m_CursorID; CCullingProcessPtr m_spCullingProcess; unsigned int m_uiDesktopWidth; unsigned int m_uiDesktopHeight; CResMgr* m_pkResMgr; CTaskManager* m_pkTaskManager; };