[Scummvm-cvs-logs] SF.net SVN: scummvm: [22815] scummvm/trunk/engines/simon
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Thu Jun 1 05:08:05 CEST 2006
Revision: 22815
Author: kirben
Date: 2006-06-01 05:06:53 -0700 (Thu, 01 Jun 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22815&view=rev
Log Message:
-----------
Fix wait timeout during introduction of demo version of Simon the Sorcerer 1 (With speech)
Modified Paths:
--------------
scummvm/trunk/engines/simon/simon.cpp
scummvm/trunk/engines/simon/simon.h
scummvm/trunk/engines/simon/vga.cpp
Modified: scummvm/trunk/engines/simon/simon.cpp
===================================================================
--- scummvm/trunk/engines/simon/simon.cpp 2006-06-01 09:49:56 UTC (rev 22814)
+++ scummvm/trunk/engines/simon/simon.cpp 2006-06-01 12:06:53 UTC (rev 22815)
@@ -281,7 +281,10 @@
_frameRate = 0;
_zoneNumber = 0;
+
_vgaWaitFor = 0;
+ _lastVgaWaitFor = 0;
+
_vgaCurZoneNum = 0;
_vgaCurSpriteId = 0;
_vgaCurSpritePriority = 0;
@@ -1571,6 +1574,15 @@
void SimonEngine::waitForSync(uint a) {
const uint maxCount = (getGameType() == GType_SIMON1) ? 500 : 1000;
+ if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE)) {
+ if (a != 200) {
+ uint16 tmp = _lastVgaWaitFor;
+ _lastVgaWaitFor = 0;
+ if (tmp == a)
+ return;
+ }
+ }
+
_vgaWaitFor = a;
_syncCount = 0;
_exitCutscene = false;
@@ -1779,6 +1791,9 @@
byte *p, *pp;
uint count;
+ if (vgaSpriteId >= 400)
+ _lastVgaWaitFor = 0;
+
_lockWord |= 0x40;
if (isSpriteLoaded(vgaSpriteId, zoneNum)) {
Modified: scummvm/trunk/engines/simon/simon.h
===================================================================
--- scummvm/trunk/engines/simon/simon.h 2006-06-01 09:49:56 UTC (rev 22814)
+++ scummvm/trunk/engines/simon/simon.h 2006-06-01 12:06:53 UTC (rev 22815)
@@ -377,8 +377,8 @@
uint16 _frameRate;
uint16 _zoneNumber;
- uint16 _vgaWaitFor, _vgaCurZoneNum;
- uint16 _vgaCurSpriteId;
+ uint16 _vgaWaitFor, _lastVgaWaitFor;
+ uint16 _vgaCurSpriteId, _vgaCurZoneNum;
uint16 _vgaCurSpritePriority;
int16 _baseY;
Modified: scummvm/trunk/engines/simon/vga.cpp
===================================================================
--- scummvm/trunk/engines/simon/vga.cpp 2006-06-01 09:49:56 UTC (rev 22814)
+++ scummvm/trunk/engines/simon/vga.cpp 2006-06-01 12:06:53 UTC (rev 22815)
@@ -1540,6 +1540,7 @@
}
}
+ _lastVgaWaitFor = id;
/* clear a wait event */
if (id == _vgaWaitFor)
_vgaWaitFor = 0;
@@ -1713,6 +1714,8 @@
_lockWord |= 8;
+ _lastVgaWaitFor = 0;
+
memset(&bak, 0, sizeof(bak));
vsp = _vgaSprites;
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