[Scummvm-cvs-logs] SF.net SVN: scummvm: [28985] scummvm/trunk/engines/drascula

marcus_c at users.sourceforge.net marcus_c at users.sourceforge.net
Thu Sep 20 14:47:05 CEST 2007


Revision: 28985
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28985&view=rev
Author:   marcus_c
Date:     2007-09-20 05:47:04 -0700 (Thu, 20 Sep 2007)

Log Message:
-----------
Don't use clock().  Don't busy-wait.

Modified Paths:
--------------
    scummvm/trunk/engines/drascula/drascula.cpp
    scummvm/trunk/engines/drascula/drascula.h

Modified: scummvm/trunk/engines/drascula/drascula.cpp
===================================================================
--- scummvm/trunk/engines/drascula/drascula.cpp	2007-09-20 11:46:52 UTC (rev 28984)
+++ scummvm/trunk/engines/drascula/drascula.cpp	2007-09-20 12:47:04 UTC (rev 28985)
@@ -4647,7 +4647,7 @@
 
 void DrasculaEngine::OpenSSN(const char *Name, int Pause) {
 	MiVideoSSN = (byte *)malloc(64256);
-	GlobalSpeed = CLOCKS_PER_SEC / Pause;
+	GlobalSpeed = 1000 / Pause;
 	FrameSSN = 0;
 	UsingMem = 0;
 	if (MiVideoSSN == NULL)
@@ -4655,7 +4655,7 @@
 	_Sesion = new Common::File;
 	_Sesion->open(Name);
 	mSesion = TryInMem(_Sesion);
-	LastFrame = clock();
+	LastFrame = _system->getMillis();
 }
 
 int DrasculaEngine::PlayFrameSSN() {
@@ -4823,8 +4823,9 @@
 }
 
 void DrasculaEngine::WaitFrameSSN() {
-	while ((int)clock() < LastFrame + GlobalSpeed)
-		;
+	uint32 now;
+	while ((now = _system->getMillis()) - LastFrame < GlobalSpeed)
+		_system->delayMillis(GlobalSpeed - (now - LastFrame));
 	LastFrame = LastFrame + GlobalSpeed;
 }
 

Modified: scummvm/trunk/engines/drascula/drascula.h
===================================================================
--- scummvm/trunk/engines/drascula/drascula.h	2007-09-20 11:46:52 UTC (rev 28984)
+++ scummvm/trunk/engines/drascula/drascula.h	2007-09-20 12:47:04 UTC (rev 28985)
@@ -648,7 +648,7 @@
 	byte *mSesion;
 	int FrameSSN;
 	int GlobalSpeed;
-	int LastFrame;
+	uint32 LastFrame;
 
 	int frame_pen;
 	int flag_tv;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list