src/video/sdl_v.cpp
changeset 7018 71e174292e42
parent 6999 069962f178e0
child 7019 09e090048a59
equal deleted inserted replaced
7017:ea1d1e2fc80c 7018:71e174292e42
   440 }
   440 }
   441 
   441 
   442 static void SdlVideoMainLoop()
   442 static void SdlVideoMainLoop()
   443 {
   443 {
   444 	uint32 cur_ticks = SDL_CALL SDL_GetTicks();
   444 	uint32 cur_ticks = SDL_CALL SDL_GetTicks();
       
   445 	uint32 last_cur_ticks = cur_ticks;
   445 	uint32 next_tick = cur_ticks + 30;
   446 	uint32 next_tick = cur_ticks + 30;
   446 	uint32 pal_tick = 0;
   447 	uint32 pal_tick = 0;
   447 	uint32 mod;
   448 	uint32 mod;
   448 	int numkeys;
   449 	int numkeys;
   449 	Uint8 *keys;
   450 	Uint8 *keys;
   469 		} else if (_fast_forward & 2) {
   470 		} else if (_fast_forward & 2) {
   470 			_fast_forward = 0;
   471 			_fast_forward = 0;
   471 		}
   472 		}
   472 
   473 
   473 		cur_ticks = SDL_CALL SDL_GetTicks();
   474 		cur_ticks = SDL_CALL SDL_GetTicks();
       
   475 		_realtime_tick += cur_ticks - last_cur_ticks;
       
   476 		last_cur_ticks = cur_ticks;
   474 		if (cur_ticks >= next_tick || (_fast_forward && !_pause_game) || cur_ticks < prev_cur_ticks) {
   477 		if (cur_ticks >= next_tick || (_fast_forward && !_pause_game) || cur_ticks < prev_cur_ticks) {
   475 			next_tick = cur_ticks + 30;
   478 			next_tick = cur_ticks + 30;
   476 
   479 
   477 			_ctrl_pressed  = !!(mod & KMOD_CTRL);
   480 			_ctrl_pressed  = !!(mod & KMOD_CTRL);
   478 			_shift_pressed = !!(mod & KMOD_SHIFT);
   481 			_shift_pressed = !!(mod & KMOD_SHIFT);