[Scummvm-cvs-logs] SF.net SVN: scummvm:[41316] scummvm/trunk/engines/kyra/wsamovie.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Jun 7 02:58:15 CEST 2009
Revision: 41316
http://scummvm.svn.sourceforge.net/scummvm/?rev=41316&view=rev
Author: lordhoto
Date: 2009-06-07 00:58:14 +0000 (Sun, 07 Jun 2009)
Log Message:
-----------
Add support for "WF_NO_LAST_FRAME" in WSA v1 code too. Since so far every v1 WSA file played fine, it might be unneeded, but better safe than sorry.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/wsamovie.cpp
Modified: scummvm/trunk/engines/kyra/wsamovie.cpp
===================================================================
--- scummvm/trunk/engines/kyra/wsamovie.cpp 2009-06-07 00:51:19 UTC (rev 41315)
+++ scummvm/trunk/engines/kyra/wsamovie.cpp 2009-06-07 00:58:14 UTC (rev 41316)
@@ -100,10 +100,15 @@
}
for (int i = 1; i < _numFrames + 2; ++i) {
- _frameOffsTable[i] = READ_LE_UINT32(wsaData) - frameDataOffs;
+ _frameOffsTable[i] = READ_LE_UINT32(wsaData);
+ if (_frameOffsTable[i])
+ _frameOffsTable[i] -= frameDataOffs;
wsaData += 4;
}
+ if (!_frameOffsTable[_numFrames + 1])
+ _flags |= WF_NO_LAST_FRAME;
+
// skip palette
wsaData += offsPal;
@@ -162,13 +167,13 @@
int frameCount;
if (_currentFrame < frameNum) {
frameCount = _numFrames - frameNum + _currentFrame;
- if (diffCount > frameCount)
+ if (diffCount > frameCount && !(_flags & WF_NO_LAST_FRAME))
frameStep = -1;
else
frameCount = diffCount;
} else {
frameCount = _numFrames - _currentFrame + frameNum;
- if (frameCount >= diffCount) {
+ if (frameCount >= diffCount || (_flags & WF_NO_LAST_FRAME)) {
frameStep = -1;
frameCount = diffCount;
}
@@ -273,13 +278,13 @@
int frameCount;
if (_currentFrame < frameNum) {
frameCount = _numFrames - frameNum + _currentFrame;
- if (diffCount > frameCount)
+ if (diffCount > frameCount && !(_flags & WF_NO_LAST_FRAME))
frameStep = -1;
else
frameCount = diffCount;
} else {
frameCount = _numFrames - _currentFrame + frameNum;
- if (frameCount >= diffCount) {
+ if (frameCount >= diffCount || (_flags & WF_NO_LAST_FRAME)) {
frameStep = -1;
frameCount = diffCount;
}
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