diff options
author | Johannes Schickel | 2006-09-18 17:30:51 +0000 |
---|---|---|
committer | Johannes Schickel | 2006-09-18 17:30:51 +0000 |
commit | f9d1a82cc0011c4db8745d51af30ca8b73c2b1d1 (patch) | |
tree | 88b56e9991a75fccd0335bb6ded1a30076fd6389 /engines/kyra/seqplayer.cpp | |
parent | 99016886ba0d31f9ccb310c3974b409f884c294d (diff) | |
download | scummvm-rg350-f9d1a82cc0011c4db8745d51af30ca8b73c2b1d1.tar.gz scummvm-rg350-f9d1a82cc0011c4db8745d51af30ca8b73c2b1d1.tar.bz2 scummvm-rg350-f9d1a82cc0011c4db8745d51af30ca8b73c2b1d1.zip |
Fixes the Macintosh related problems Krest mentioned on the IRC channel.
(the user has to set the game platform to Macintosh though, since it's
atm detected as DOS version)
svn-id: r23929
Diffstat (limited to 'engines/kyra/seqplayer.cpp')
-rw-r--r-- | engines/kyra/seqplayer.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/engines/kyra/seqplayer.cpp b/engines/kyra/seqplayer.cpp index a3dbf63665..8fe98ca72e 100644 --- a/engines/kyra/seqplayer.cpp +++ b/engines/kyra/seqplayer.cpp @@ -83,9 +83,8 @@ uint8 *SeqPlayer::setPanPages(int pageNum, int shape) { data += offs; uint16 sz = READ_LE_UINT16(data + 6); panPage = new uint8[sz]; - if (panPage) { - memcpy(panPage, data, sz); - } + assert(panPage); + memcpy(panPage, data, sz); } } return panPage; @@ -94,10 +93,25 @@ uint8 *SeqPlayer::setPanPages(int pageNum, int shape) { void SeqPlayer::makeHandShapes() { debugC(9, kDebugLevelSequence, "SeqPlayer::makeHandShapes()"); _screen->loadBitmap("WRITING.CPS", 3, 3, 0); - for (int i = 0; i < ARRAYSIZE(_handShapes); ++i) { - if (_handShapes[i]) - delete [] _handShapes[i]; - _handShapes[i] = setPanPages(3, i); + if (_vm->gameFlags().platform == Common::kPlatformMacintosh) { + freeHandShapes(); + + int pageBackUp = _screen->_curPage; + _screen->_curPage = 2; + _handShapes[0] = _screen->encodeShape(0, 0, 88, 122, 0); + assert(_handShapes[0]); + _handShapes[1] = _screen->encodeShape(88, 0, 80, 117, 0); + assert(_handShapes[1]); + _handShapes[2] = _screen->encodeShape(168, 0, 117, 124, 0); + assert(_handShapes[2]); + _screen->_curPage = pageBackUp; + } else { + for (int i = 0; i < ARRAYSIZE(_handShapes); ++i) { + if (_handShapes[i]) + delete [] _handShapes[i]; + _handShapes[i] = setPanPages(3, i); + assert(_handShapes[i]); + } } } |