diff options
Diffstat (limited to 'engines/kyra')
-rw-r--r-- | engines/kyra/detection.cpp | 6 | ||||
-rw-r--r-- | engines/kyra/script_tim.cpp | 15 | ||||
-rw-r--r-- | engines/kyra/sequences_lol.cpp | 5 | ||||
-rw-r--r-- | engines/kyra/wsamovie.cpp | 2 |
4 files changed, 20 insertions, 8 deletions
diff --git a/engines/kyra/detection.cpp b/engines/kyra/detection.cpp index 9303941ccc..8f56790a77 100644 --- a/engines/kyra/detection.cpp +++ b/engines/kyra/detection.cpp @@ -1036,9 +1036,7 @@ const KYRAGameDescription adGameDescs[] = { LOL_PC98_SJIS_FLAGS }, - // TODO: It looks like this demo version does use something between - // WSA v1 and WSA v2 files, that means it is probably being quite old... - /*{ + { { "lol", "Demo", @@ -1052,7 +1050,7 @@ const KYRAGameDescription adGameDescs[] = { ADGF_DEMO }, LOL_DEMO_FLAGS - },*/ + }, { { diff --git a/engines/kyra/script_tim.cpp b/engines/kyra/script_tim.cpp index b13639960c..5c94da4ba8 100644 --- a/engines/kyra/script_tim.cpp +++ b/engines/kyra/script_tim.cpp @@ -405,7 +405,18 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char _drawPage2 = isLoLDemo ? 0 : 8; - uint16 wsaOpenFlags = ((wsaFlags & 0x10) != 0) ? 2 : 0; + uint16 wsaOpenFlags = 0; + if (isLoLDemo) { + if (!(wsaFlags & 0x10)) + wsaOpenFlags |= 1; + } else { + if (wsaFlags & 0x10) + wsaOpenFlags |= 2; + wsaOpenFlags |= 1; + + if (offscreenBuffer == 2) + wsaOpenFlags = 1; + } char file[32]; snprintf(file, 32, "%s.WSA", filename); @@ -461,7 +472,7 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char screen()->updateScreen(); } - anim->wsa->displayFrame(0, x, y, 0, 0); + anim->wsa->displayFrame(0, 0, x, y, 0); } if (wsaFlags & 2) diff --git a/engines/kyra/sequences_lol.cpp b/engines/kyra/sequences_lol.cpp index 19cd7d215f..8c06748a91 100644 --- a/engines/kyra/sequences_lol.cpp +++ b/engines/kyra/sequences_lol.cpp @@ -180,7 +180,10 @@ void LoLEngine::setupPrologueData(bool load) { // PAK file. Therefore a new call to loadSoundFile() is required // whenever the PAK file configuration changes. if (_flags.platform == Common::kPlatformPC98) - _sound->loadSoundFile("sound.dat"); + _sound->loadSoundFile("SOUND.DAT"); + + if (_flags.isDemo) + _sound->loadSoundFile("LOREINTR"); } else { delete _chargenWSA; _chargenWSA = 0; diff --git a/engines/kyra/wsamovie.cpp b/engines/kyra/wsamovie.cpp index 0bd6bf5005..0684e2381a 100644 --- a/engines/kyra/wsamovie.cpp +++ b/engines/kyra/wsamovie.cpp @@ -154,7 +154,7 @@ void WSAMovie_v1::displayFrame(int frameNum, int pageNum, int x, int y, ...) { if (_flags & WF_OFFSCREEN_DECODE) Screen::decodeFrameDelta(dst, _deltaBuffer); else - Screen::decodeFrameDeltaPage(dst, _deltaBuffer, _width, (_flags & WF_XOR) == 0); + Screen::decodeFrameDeltaPage(dst, _deltaBuffer, _width, false); } _currentFrame = 0; } |