[Scummvm-cvs-logs] SF.net SVN: scummvm:[41244] scummvm/trunk/engines/agi

sev at users.sourceforge.net sev at users.sourceforge.net
Sat Jun 6 19:41:29 CEST 2009


Revision: 41244
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41244&view=rev
Author:   sev
Date:     2009-06-06 17:41:29 +0000 (Sat, 06 Jun 2009)

Log Message:
-----------
Fix bug #1745954: "GR: Intro "jumpy" in parts (Amiga version)"

Modified Paths:
--------------
    scummvm/trunk/engines/agi/agi.cpp
    scummvm/trunk/engines/agi/agi.h
    scummvm/trunk/engines/agi/cycle.cpp
    scummvm/trunk/engines/agi/graphics.cpp
    scummvm/trunk/engines/agi/op_cmd.cpp

Modified: scummvm/trunk/engines/agi/agi.cpp
===================================================================
--- scummvm/trunk/engines/agi/agi.cpp	2009-06-06 17:40:56 UTC (rev 41243)
+++ scummvm/trunk/engines/agi/agi.cpp	2009-06-06 17:41:29 UTC (rev 41244)
@@ -312,11 +312,14 @@
 void AgiEngine::pause(uint32 msec) {
 	uint32 endTime = _system->getMillis() + msec;
 
+	_gfx->setCursor(_renderMode == Common::kRenderAmiga, true);
+
 	while (_system->getMillis() < endTime) {
 		processEvents();
 		_system->updateScreen();
 		_system->delayMillis(10);
 	}
+	_gfx->setCursor(_renderMode == Common::kRenderAmiga);
 }
 
 void AgiEngine::recordImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,

Modified: scummvm/trunk/engines/agi/agi.h
===================================================================
--- scummvm/trunk/engines/agi/agi.h	2009-06-06 17:40:56 UTC (rev 41243)
+++ scummvm/trunk/engines/agi/agi.h	2009-06-06 17:41:29 UTC (rev 41244)
@@ -335,6 +335,11 @@
 	fNoSaveLoadAllowed
 };
 
+enum AgiSlowliness {
+	kPauseRoom = 1500,
+	kPausePicture = 500
+};
+
 struct AgiEvent {
 	uint16 data;
 	uint8 occured;

Modified: scummvm/trunk/engines/agi/cycle.cpp
===================================================================
--- scummvm/trunk/engines/agi/cycle.cpp	2009-06-06 17:40:56 UTC (rev 41243)
+++ scummvm/trunk/engines/agi/cycle.cpp	2009-06-06 17:41:29 UTC (rev 41244)
@@ -43,7 +43,7 @@
 	// Simulate slowww computer.
 	// Many effects rely on it.
 	_gfx->setCursor(_renderMode == Common::kRenderAmiga, true);
-	pause(2000);
+	pause(kPauseRoom);
 	_gfx->setCursor(_renderMode == Common::kRenderAmiga);
 
 	debugC(4, kDebugLevelMain, "*** room %d ***", n);

Modified: scummvm/trunk/engines/agi/graphics.cpp
===================================================================
--- scummvm/trunk/engines/agi/graphics.cpp	2009-06-06 17:40:56 UTC (rev 41243)
+++ scummvm/trunk/engines/agi/graphics.cpp	2009-06-06 17:41:29 UTC (rev 41244)
@@ -1214,6 +1214,9 @@
  */
 void GfxMgr::flushScreen() {
 	flushBlock(0, 0, GFX_WIDTH - 1, GFX_HEIGHT - 1);
+
+	doUpdate();
+	g_system->updateScreen();
 }
 
 /**

Modified: scummvm/trunk/engines/agi/op_cmd.cpp
===================================================================
--- scummvm/trunk/engines/agi/op_cmd.cpp	2009-06-06 17:40:56 UTC (rev 41243)
+++ scummvm/trunk/engines/agi/op_cmd.cpp	2009-06-06 17:41:29 UTC (rev 41244)
@@ -626,6 +626,9 @@
 		cmd_close_window(NULL);
 		g_picture->showPic();
 		game.pictureShown = 1;
+
+		// Simulate slowww computer. Many effects rely on this
+		g_agi->pause(kPausePicture);
 	}
 }
 
@@ -760,6 +763,9 @@
 	// Fixes bug #1658514: AGI: SQ1 (2.2 DOS ENG) bizzare exploding roger
 	if (g_agi->getGameID() == GID_SQ1 && _v[p0] == 20)
 		g_agi->setflag(103, false);
+
+	// Simulate slowww computer. Many effects rely on this
+	g_agi->pause(kPausePicture);
 }
 
 cmd(show_pic) {
@@ -792,6 +798,9 @@
 	g_sprites->blitBoth();
 	game.pictureShown = 0;
 	g_sprites->commitBoth();
+
+	// Simulate slowww computer. Many effects rely on this
+	g_agi->pause(kPausePicture);
 }
 
 cmd(show_pri_screen) {


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