bool CGameStartup::InitFramework(SSystemInitParams &startupParams) { MEMSTAT_CONTEXT(EMemStatContextTypes::MSC_Other, 0, "Init Game Framework" ); #if !defined(_LIB) m_frameworkDll = GetFrameworkDLL(startupParams.szBinariesDir); if (!m_frameworkDll) { // failed to open the framework dll CryFatalError("Failed to open the GameFramework DLL!"); return false; } IGameFramework::TEntryFunction CreateGameFramework = (IGameFramework::TEntryFunction)CryGetProcAddress(m_frameworkDll, DLL_INITFUNC_CREATEGAME ); if (!CreateGameFramework) { // the dll is not a framework dll CryFatalError("Specified GameFramework DLL is not valid!"); return false; } #endif //_LIB m_pFramework = CreateGameFramework(); if (!m_pFramework) { CryFatalError("Failed to create the GameFramework Interface!"); // failed to create the framework return false; } #ifdef WIN32 if (startupParams.pSystem == NULL || (!startupParams.bEditor && !gEnv->IsDedicated())) { ::ShowCursor(FALSE); // Hide the cursor during loading (it will be shown again in Run()) } #endif // initialize the engine if (!m_pFramework->Init(startupParams)) { CryFatalError("Failed to initialize CryENGINE!"); return false; } ModuleInitISystem(m_pFramework->GetISystem(),"CryGame"); #ifdef WIN32 SetWindowLongPtr(reinterpret_cast<HWND>(gEnv->pRenderer->GetHWND()), GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this)); #endif return true; }
bool CGameStartup::InitFramework(SSystemInitParams& startupParams) { MEMSTAT_CONTEXT(EMemStatContextTypes::MSC_Other, 0, "Init Game Framework" ); #if !defined(_LIB) m_frameworkDll = GetFrameworkDLL(startupParams.szBinariesDir); if (!m_frameworkDll) { CryFatalError("Failed to open the GameFramework DLL!"); return false; } IGameFramework::TEntryFunction CreateGameFramework = (IGameFramework::TEntryFunction)CryGetProcAddress(m_frameworkDll, DLL_INITFUNC_CREATEGAME); if (!CreateGameFramework) { CryFatalError("Specified GameFramework DLL is not valid!"); return false; } #endif m_pFramework = CreateGameFramework(); if (!m_pFramework) { CryFatalError("Failed to create the GameFramework Interface!"); return false; } if (!m_pFramework->Init(startupParams)) { CryFatalError("Failed to initialize CryENGINE!"); return false; } ModuleInitISystem(m_pFramework->GetISystem(), GAME_NAME); #if CRY_PLATFORM_WINDOWS SetWindowLongPtr(reinterpret_cast<HWND>(gEnv->pRenderer->GetHWND()), GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this)); #endif return true; }
bool CGameStartup::InitFramework(SSystemInitParams &startupParams) { #if !defined(_LIB) && !defined(PS3) m_frameworkDll = GetFrameworkDLL(startupParams.szBinariesDir); if (!m_frameworkDll) { // failed to open the framework dll CryFatalError("Failed to open the GameFramework DLL!"); return false; } IGameFramework::TEntryFunction CreateGameFramework = (IGameFramework::TEntryFunction)CryGetProcAddress(m_frameworkDll, DLL_INITFUNC_CREATEGAME ); if (!CreateGameFramework) { // the dll is not a framework dll CryFatalError("Specified GameFramework DLL is not valid!"); return false; } #endif //_LIB m_pFramework = CreateGameFramework(); if (!m_pFramework) { CryFatalError("Failed to create the GameFramework Interface!"); // failed to create the framework return false; } if (!startupParams.hWnd && !startupParams.bEditor) { m_initWindow = true; if (!InitWindow(startupParams)) { // failed to register window class CryFatalError("Failed to register CryENGINE window class!"); return false; } } #if defined(WIN32) && !defined(XENON) else if (startupParams.bBrowserMode) SubclassWindow((HWND)startupParams.hWnd, (WNDPROC)CGameStartup::WndProc); #endif // initialize the engine if (!m_pFramework->Init(startupParams)) { CryFatalError("Failed to initialize CryENGINE!"); return false; } ModuleInitISystem(m_pFramework->GetISystem(),"CryGame"); gEnv->pGameFramework = m_pFramework; return true; }