Preliminary support for LoL intro demo.

svn-id: r40705
This commit is contained in:
Johannes Schickel 2009-05-18 21:45:09 +00:00
parent 8576b162dc
commit 273b93f3a7
4 changed files with 20 additions and 8 deletions

View file

@ -1036,9 +1036,7 @@ const KYRAGameDescription adGameDescs[] = {
LOL_PC98_SJIS_FLAGS 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", "lol",
"Demo", "Demo",
@ -1052,7 +1050,7 @@ const KYRAGameDescription adGameDescs[] = {
ADGF_DEMO ADGF_DEMO
}, },
LOL_DEMO_FLAGS LOL_DEMO_FLAGS
},*/ },
{ {
{ {

View file

@ -405,7 +405,18 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char
_drawPage2 = isLoLDemo ? 0 : 8; _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]; char file[32];
snprintf(file, 32, "%s.WSA", filename); snprintf(file, 32, "%s.WSA", filename);
@ -461,7 +472,7 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char
screen()->updateScreen(); screen()->updateScreen();
} }
anim->wsa->displayFrame(0, x, y, 0, 0); anim->wsa->displayFrame(0, 0, x, y, 0);
} }
if (wsaFlags & 2) if (wsaFlags & 2)

View file

@ -180,7 +180,10 @@ void LoLEngine::setupPrologueData(bool load) {
// PAK file. Therefore a new call to loadSoundFile() is required // PAK file. Therefore a new call to loadSoundFile() is required
// whenever the PAK file configuration changes. // whenever the PAK file configuration changes.
if (_flags.platform == Common::kPlatformPC98) if (_flags.platform == Common::kPlatformPC98)
_sound->loadSoundFile("sound.dat"); _sound->loadSoundFile("SOUND.DAT");
if (_flags.isDemo)
_sound->loadSoundFile("LOREINTR");
} else { } else {
delete _chargenWSA; _chargenWSA = 0; delete _chargenWSA; _chargenWSA = 0;

View file

@ -154,7 +154,7 @@ void WSAMovie_v1::displayFrame(int frameNum, int pageNum, int x, int y, ...) {
if (_flags & WF_OFFSCREEN_DECODE) if (_flags & WF_OFFSCREEN_DECODE)
Screen::decodeFrameDelta(dst, _deltaBuffer); Screen::decodeFrameDelta(dst, _deltaBuffer);
else else
Screen::decodeFrameDeltaPage(dst, _deltaBuffer, _width, (_flags & WF_XOR) == 0); Screen::decodeFrameDeltaPage(dst, _deltaBuffer, _width, false);
} }
_currentFrame = 0; _currentFrame = 0;
} }