void P_run() { if(window.isActive) { double elapsed_time; double current_time = T_GetCurrentTime(); if(movesize_time < 0.05f) movesize_time = 0.0f; elapsed_time = (current_time - last_game_time - movesize_time) + remaining_game_time ; movesize_time = 0.0f; while (elapsed_time >= S_PER_GAME_UPDATE*fps_mult) { G_update(elapsed_time); elapsed_time -= S_PER_GAME_UPDATE*fps_mult; } remaining_game_time = elapsed_time; last_game_time = current_time; P_computeFPS(); R_draw(window.hDC); if(btogglefullscreen || bmodechange) { last_movesize_time = T_GetCurrentTime(); if(btogglefullscreen) { P_cleanup(); window.createGLWindow(true); btogglefullscreen = false; GL_initializeGLObjects(); } else { window.createGLWindow(false); bmodechange = false; } movesize_time = T_GetCurrentTime() - last_movesize_time; } } }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) { MSG msg; BOOL quit = FALSE; G_initializeGame(); window.createGLWindow("Level Editor", WndProc); GL_initializeGLObjects(); ShowWindow(window.hWnd,SW_SHOW); last_game_time = T_GetCurrentTime(); while ( !quit ) { if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { if ( msg.message == WM_QUIT ) { quit = TRUE; } else { TranslateMessage( &msg ); DispatchMessage( &msg ); } } else { P_run(); } } P_cleanup(); window.destroyGLWindow(); return msg.wParam; }