[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