#pragma once class cAppWindow; class cAppTimer; class cFilePackSystem; class cGameResourceManager; class cWorldManager; class cItemManager; class cDummyManager; class cApplication { static cApplication* mpSingleton; public: cApplication(); ~cApplication(); /// ´ÜÀÏü¸¦ ¸®ÅÏ static cApplication* GetSingleton(); static cApplication* Create(); static LRESULT CALLBACK WndProc(HWND wnd, UINT msg, WPARAM wparam, LPARAM lparam); public: bool Init( HINSTANCE hi ); void Run(); void Exit(); /// Application ½Ã°£°ª inline unsigned long GetWorldAccumTime() { return mAccumTime; } inline unsigned long GetWorldDeltaTime() { return mDeltaTime; } protected: HWND CreateMainWindow(); void MainLoop(); private: HINSTANCE mInstance; /// cAppWindow* mpWindow; /// ŸÀÌ¸Ó cAppTimer* mpTimer; unsigned long mDeltaTime; unsigned long mAccumTime; /// ÆÄÀÏ ÆÑ ½Ã½ºÅÛ cFilePackSystem* mpFileSystem; /// game... cGameResourceManager* mpGameResourceManager; cItemManager* mpItemManager; cWorldManager* mpWorldManager; cDummyManager* mpDummyManager; /// }; inline cApplication* cApplication::GetSingleton() { return mpSingleton; } #define THEAPP cApplication::GetSingleton()