aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2009-05-18 21:45:09 +0000
committerJohannes Schickel2009-05-18 21:45:09 +0000
commit273b93f3a7edfc641b0756b807ac512b3d97f96b (patch)
treee92f3790cfde29723ce5b4f1a1734276757b0149 /engines
parent8576b162dc99dc706e21ee3d5584e86c89ed3181 (diff)
downloadscummvm-rg350-273b93f3a7edfc641b0756b807ac512b3d97f96b.tar.gz
scummvm-rg350-273b93f3a7edfc641b0756b807ac512b3d97f96b.tar.bz2
scummvm-rg350-273b93f3a7edfc641b0756b807ac512b3d97f96b.zip
Preliminary support for LoL intro demo.
svn-id: r40705
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/detection.cpp6
-rw-r--r--engines/kyra/script_tim.cpp15
-rw-r--r--engines/kyra/sequences_lol.cpp5
-rw-r--r--engines/kyra/wsamovie.cpp2
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;
}