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

sev at users.sourceforge.net sev at users.sourceforge.net
Sat Jun 6 19:39:43 CEST 2009


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

Log Message:
-----------
Fix bug #2434187: "SQ2: message not displayed, or vanishes too quickly"

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/graphics.h

Modified: scummvm/trunk/engines/agi/agi.cpp
===================================================================
--- scummvm/trunk/engines/agi/agi.cpp	2009-06-06 17:39:13 UTC (rev 41239)
+++ scummvm/trunk/engines/agi/agi.cpp	2009-06-06 17:39:42 UTC (rev 41240)
@@ -309,6 +309,16 @@
 	_imageStack.clear();
 }
 
+void AgiEngine::pause(uint32 msec) {
+	uint32 endTime = _system->getMillis() + msec;
+
+	while (_system->getMillis() < endTime) {
+		processEvents();
+		_system->updateScreen();
+		_system->delayMillis(10);
+	}
+}
+
 void AgiEngine::recordImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,
 		int16 p4, int16 p5, int16 p6, int16 p7) {
 	ImageStackElement pnew;

Modified: scummvm/trunk/engines/agi/agi.h
===================================================================
--- scummvm/trunk/engines/agi/agi.h	2009-06-06 17:39:13 UTC (rev 41239)
+++ scummvm/trunk/engines/agi/agi.h	2009-06-06 17:39:42 UTC (rev 41240)
@@ -828,6 +828,8 @@
 		int16 p4, int16 p5, int16 p6, int16 p7);
 	void releaseImageStack();
 
+	void pause(uint32 msec);
+
 	Console *_console;
 
 	int agiInit();

Modified: scummvm/trunk/engines/agi/cycle.cpp
===================================================================
--- scummvm/trunk/engines/agi/cycle.cpp	2009-06-06 17:39:13 UTC (rev 41239)
+++ scummvm/trunk/engines/agi/cycle.cpp	2009-06-06 17:39:42 UTC (rev 41240)
@@ -40,6 +40,12 @@
 	VtEntry *v;
 	int i;
 
+	// Simulate slowww computer.
+	// Many effects rely on it.
+	_gfx->setCursor(_renderMode == Common::kRenderAmiga, true);
+	pause(2000);
+	_gfx->setCursor(_renderMode == Common::kRenderAmiga);
+
 	debugC(4, kDebugLevelMain, "*** room %d ***", n);
 	_sound->stopSound();
 

Modified: scummvm/trunk/engines/agi/graphics.cpp
===================================================================
--- scummvm/trunk/engines/agi/graphics.cpp	2009-06-06 17:39:13 UTC (rev 41239)
+++ scummvm/trunk/engines/agi/graphics.cpp	2009-06-06 17:39:42 UTC (rev 41240)
@@ -1013,7 +1013,14 @@
 	1,1,1,1,1,1,1,1,1,1,1,1,1
 };
 
-void GfxMgr::setCursor(bool amigaStyleCursor) {
+void GfxMgr::setCursor(bool amigaStyleCursor, bool busy) {
+	if (busy) {
+		CursorMan.replaceCursorPalette(amigaMouseCursorPalette, 1, ARRAYSIZE(amigaMouseCursorPalette) / 4);
+		CursorMan.replaceCursor(busyAmigaMouseCursor, 13, 16, 7, 8, 0);
+
+		return;
+	}
+
 	if (!amigaStyleCursor) {
 		CursorMan.replaceCursorPalette(sciMouseCursorPalette, 1, ARRAYSIZE(sciMouseCursorPalette) / 4);
 		CursorMan.replaceCursor(sciMouseCursor, 11, 16, 1, 1, 0);
@@ -1155,6 +1162,8 @@
 	update.y1 = MAX_INT;
 	update.x2 = 0;
 	update.y2 = 0;
+
+	g_system->updateScreen();
 }
 
 /**

Modified: scummvm/trunk/engines/agi/graphics.h
===================================================================
--- scummvm/trunk/engines/agi/graphics.h	2009-06-06 17:39:13 UTC (rev 41239)
+++ scummvm/trunk/engines/agi/graphics.h	2009-06-06 17:39:42 UTC (rev 41240)
@@ -92,7 +92,7 @@
 
 	void putBlock(int x1, int y1, int x2, int y2);
 	void gfxSetPalette();
-	void setCursor(bool amigaStyleCursor = false);
+	void setCursor(bool amigaStyleCursor = false, bool busy = false);
 	void setCursorPalette(bool amigaStylePalette = false);
 
 	int keypress();


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