int CGameStartup::Run(const char* autoStartLevelName) { gEnv->pConsole->ExecuteString("exec autoexec.cfg"); if (autoStartLevelName) { //load savegame if(CryStringUtils::stristr(autoStartLevelName, CRY_SAVEGAME_FILE_EXT) != 0) { CryFixedStringT<256> fileName (autoStartLevelName); // NOTE! two step trimming is intended! fileName.Trim(" "); // first: remove enclosing spaces (outside ") fileName.Trim("\""); // second: remove potential enclosing " gEnv->pGame->GetIGameFramework()->LoadGame(fileName.c_str()); } else //start specified level { CryFixedStringT<256> mapCmd ("map "); mapCmd+=autoStartLevelName; gEnv->pConsole->ExecuteString(mapCmd.c_str()); } } else { gEnv->pConsole->ExecuteString("map example"); } #if CRY_PLATFORM_WINDOWS if (!(gEnv && gEnv->pSystem) || (!gEnv->IsEditor() && !gEnv->IsDedicated())) { ::ShowCursor(FALSE); if (GetISystem()->GetIHardwareMouse()) GetISystem()->GetIHardwareMouse()->DecrementCounter(); } #else if (gEnv && gEnv->pHardwareMouse) gEnv->pHardwareMouse->DecrementCounter(); #endif #if !CRY_PLATFORM_DURANGO for(;;) { if (!Update(true, 0)) { break; } } #endif return 0; }
int CGameStartup::Run( const char * autoStartLevelName ) { gEnv->pConsole->ExecuteString( "exec autoexec.cfg" ); if (autoStartLevelName) { //load savegame if(CryStringUtils::stristr(autoStartLevelName, ".CRYENGINEJMSF") != 0 ) { CryFixedStringT<256> fileName (autoStartLevelName); // NOTE! two step trimming is intended! fileName.Trim(" "); // first: remove enclosing spaces (outside ") fileName.Trim("\""); // second: remove potential enclosing " gEnv->pGame->GetIGameFramework()->LoadGame(fileName.c_str()); } else //start specified level { CryFixedStringT<256> mapCmd ("map "); mapCmd+=autoStartLevelName; gEnv->pConsole->ExecuteString(mapCmd.c_str()); } } #ifdef WIN32 if (!(gEnv && gEnv->pSystem) || (!gEnv->IsEditor() && !gEnv->IsDedicated())) { ::ShowCursor(TRUE); if (gEnv && gEnv->pSystem && gEnv->pSystem->GetIHardwareMouse()) gEnv->pSystem->GetIHardwareMouse()->DecrementCounter(); } AllowAccessibilityShortcutKeys(false); for (;;) { MSG msg; bool bQuit = false; while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { if (msg.message != WM_QUIT) { TranslateMessage(&msg); DispatchMessage(&msg); } else { bQuit = true; break; } } if (bQuit) break; if (!Update(true, 0)) { // need to clean the message loop (WM_QUIT might cause problems in the case of a restart) // another message loop might have WM_QUIT already so we cannot rely only on this while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } break; } } #else // We should use bVisibleByDefault=false then... if (gEnv && gEnv->pHardwareMouse) gEnv->pHardwareMouse->DecrementCounter(); #ifndef GRINGO // we do the mainloop directly in the gringo launcher for proper metro style event dispatching for(;;) { if (!Update(true, 0)) { break; } } #endif #endif //WIN32 return 0; }
int CGameStartup::Run( const char * autoStartLevelName ) { #if defined(RELEASE_SERVER_SECURITY) CryLogAlways("Performing Validation Checks"); if (!PerformDedicatedInstallationSanityCheck()) { CryFatalError("Installation appears to be corrupt. Please check the log file for a list of problems."); } #endif gEnv->pConsole->ExecuteString( "exec autoexec.cfg" ); if (autoStartLevelName) { //load savegame if(CryStringUtils::stristr(autoStartLevelName, CRY_SAVEGAME_FILE_EXT) != 0 ) { CryFixedStringT<256> fileName (autoStartLevelName); // NOTE! two step trimming is intended! fileName.Trim(" "); // first: remove enclosing spaces (outside ") fileName.Trim("\""); // second: remove potential enclosing " gEnv->pGame->GetIGameFramework()->LoadGame(fileName.c_str()); } else //start specified level { CryFixedStringT<256> mapCmd ("map "); mapCmd+=autoStartLevelName; gEnv->pConsole->ExecuteString(mapCmd.c_str()); } } #ifdef WIN32 if (!(gEnv && gEnv->pSystem) || (!gEnv->IsEditor() && !gEnv->IsDedicated())) { ::ShowCursor(TRUE); // Make the cursor visible again (it was hidden in InitFramework() ) if (gEnv && gEnv->pSystem && gEnv->pSystem->GetIHardwareMouse()) gEnv->pSystem->GetIHardwareMouse()->DecrementCounter(); } AllowAccessibilityShortcutKeys(false); for(;;) { ISystem *pSystem = gEnv ? gEnv->pSystem : 0; if (!pSystem) { break; } if (pSystem->PumpWindowMessage(false) == -1) { break; } if (!Update(true, 0)) { // need to clean the message loop (WM_QUIT might cause problems in the case of a restart) // another message loop might have WM_QUIT already so we cannot rely only on this pSystem->PumpWindowMessage(true); break; } } #else // We should use bVisibleByDefault=false then... if (gEnv && gEnv->pHardwareMouse) gEnv->pHardwareMouse->DecrementCounter(); #if !defined(DURANGO) for(;;) { if (!Update(true, 0)) { break; } } #endif #endif //WIN32 return 0; }