diff options
Diffstat (limited to 'scumm/smush/smush_player.cpp')
-rw-r--r-- | scumm/smush/smush_player.cpp | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index e3bd305ea4..a27d0d4a95 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -252,7 +252,6 @@ SmushPlayer::SmushPlayer(ScummEngine_v6 *scumm, int speed) { _speed = speed; _insanity = false; _middleAudio = false; - _skipPalette = false; #ifdef _WIN32_WCE _inTimer = false; _inTimerCount = 0; @@ -716,9 +715,6 @@ void SmushPlayer::handleNewPalette(Chunk &b) { checkBlock(b, TYPE_NPAL, 0x300); debugC(DEBUG_SMUSH, "SmushPlayer::handleNewPalette()"); - if (_skipPalette) - return; - readPalette(_pal, b); setPalette(_pal); } @@ -972,10 +968,8 @@ void SmushPlayer::handleAnimHeader(Chunk &b) { _version = b.getWord(); _nbframes = b.getWord(); b.getWord(); - if (!_skipPalette) { - readPalette(_pal, b); - setPalette(_pal); - } + readPalette(_pal, b); + setPalette(_pal); } void SmushPlayer::setupAnim(const char *file) { @@ -1045,9 +1039,6 @@ void SmushPlayer::parseNextFrame() { case TYPE_FRME: handleFrame(*sub); break; - case TYPE_AHDR: // FT INSANE may seek file to the beginning - handleAnimHeader(*sub); - break; default: error("Unknown Chunk found at %x: %x, %d", _base->tell(), sub->getType(), sub->getSize()); } @@ -1145,7 +1136,6 @@ void SmushPlayer::insanity(bool flag) { } void SmushPlayer::seekSan(const char *file, int32 pos, int32 contFrame) { - Common::StackLock lock(_mutex); if(_smixer) @@ -1158,24 +1148,17 @@ void SmushPlayer::seekSan(const char *file, int32 pos, int32 contFrame) { } _base = new FileChunk(file); - // In this case we need to get palette and number of frames - if (pos > 8) { + if (pos) { + assert(pos != 8); + // In this case we need to get palette and number of frames Chunk *sub = _base->subBlock(); checkBlock(*sub, TYPE_AHDR); handleAnimHeader(*sub); delete sub; - } - if (pos >= 8) - pos -= 8; - - _skipPalette = false; - } else { - _base->reinit(pos); - _skipPalette = true; - } - if (pos != 8 && pos) { - _middleAudio = true; + _middleAudio = true; + pos -= 8; + } } _base->seek(pos, FileChunk::seek_start); |