From bfea97044002ecfd163480fdf630c6b8b2ad2f31 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 27 Nov 2004 02:05:57 +0000 Subject: [PATCH] free up cpu by not calling timer_delay so many times --- ChangeLog | 3 +++ main/game.c | 16 ++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index d91bda8eb..86968b7fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-11-26 Bradley Bell + * main/game.c: free up cpu by not calling timer_delay so many + times (fixes Bug 2034) + * main/gameseq.c: enable briefing screens for mac shareware * 2d/bitblt.c: disable Assert so the credits work in opengl (gl diff --git a/main/game.c b/main/game.c index a60f8a79f..57e462866 100644 --- a/main/game.c +++ b/main/game.c @@ -1,4 +1,4 @@ -/* $Id: game.c,v 1.32 2004-10-23 19:09:58 schaffner Exp $ */ +/* $Id: game.c,v 1.33 2004-11-27 02:05:57 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #endif #ifdef RCS -char game_rcsid[] = "$Id: game.c,v 1.32 2004-10-23 19:09:58 schaffner Exp $"; +char game_rcsid[] = "$Id: game.c,v 1.33 2004-11-27 02:05:57 btb Exp $"; #endif #ifdef WINDOWS @@ -1221,12 +1221,12 @@ void calc_frame_time() timer_value = timer_get_fixed_seconds(); FrameTime = timer_value - last_timer_value; - do { - timer_value = timer_get_fixed_seconds(); - FrameTime = timer_value - last_timer_value; - if (FrameTime < f1_0/maxfps); - timer_delay(1); - } while (FrameTime < f1_0/maxfps); + while (FrameTime < f1_0 / maxfps) + { + timer_delay(f1_0 / maxfps - FrameTime); + timer_value = timer_get_fixed_seconds(); + FrameTime = timer_value - last_timer_value; + } #if defined(TIMER_TEST) && !defined(NDEBUG) _timer_value = timer_value;