diff options
author | athrxx | 2019-03-25 21:46:18 +0100 |
---|---|---|
committer | athrxx | 2019-04-13 18:55:00 +0200 |
commit | 02000cfe371784fe5eb46e063a0391fa1ec2001f (patch) | |
tree | 7eb1b3b63285fea3c823c06a6ba705daaf79d5f2 /engines/kyra/engine/eobcommon.cpp | |
parent | c94b6a438952c9d20b9a07d0a8712e9e2be25c7c (diff) | |
download | scummvm-rg350-02000cfe371784fe5eb46e063a0391fa1ec2001f.tar.gz scummvm-rg350-02000cfe371784fe5eb46e063a0391fa1ec2001f.tar.bz2 scummvm-rg350-02000cfe371784fe5eb46e063a0391fa1ec2001f.zip |
KYRA: (EOB2/Amiga) - add special gfx decoder for localized version
Diffstat (limited to 'engines/kyra/engine/eobcommon.cpp')
-rw-r--r-- | engines/kyra/engine/eobcommon.cpp | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/engines/kyra/engine/eobcommon.cpp b/engines/kyra/engine/eobcommon.cpp index 792cf10008..1c75c78d70 100644 --- a/engines/kyra/engine/eobcommon.cpp +++ b/engines/kyra/engine/eobcommon.cpp @@ -1346,10 +1346,15 @@ void EoBCoreEngine::npcSequence(int npcIndex) { drawNpcScene(npcIndex); Common::SeekableReadStream *s = _res->createReadStream("TEXT.DAT"); - if (s) + if (s) { _screen->loadFileDataToPage(s, 5, 32000); - else - _screen->loadBitmap("TEXT.CPS", 5, 5, 0, true); + } else { + s = _res->createReadStream("TEXT.CPS"); + if (s->readSint32BE() + 12 == s->size()) + _screen->loadSpecialAmigaCPS("TEXT.CPS", 5, false); + else + _screen->loadBitmap("TEXT.CPS", 5, 5, 0, true); + } delete s; gui_drawBox(0, 121, 320, 79, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); @@ -1597,12 +1602,18 @@ void EoBCoreEngine::initDialogueSequence() { snd_stopSound(); Common::SeekableReadStream *s = _res->createReadStream("TEXT.DAT"); - if (s) + if (s) { _screen->loadFileDataToPage(s, 5, 32000); - else - _screen->loadBitmap("TEXT.CPS", 5, 5, 0, true); - _txt->setupField(9, 0); + } else { + s = _res->createReadStream("TEXT.CPS"); + if (s->readSint32BE() + 12 == s->size()) + _screen->loadSpecialAmigaCPS("TEXT.CPS", 5, false); + else + _screen->loadBitmap("TEXT.CPS", 5, 5, 0, true); + } delete s; + + _txt->setupField(9, 0); } void EoBCoreEngine::restoreAfterDialogueSequence() { @@ -1804,10 +1815,15 @@ void EoBCoreEngine::displayParchment(int id) { if (id >= 0) { // display text Common::SeekableReadStream *s = _res->createReadStream("TEXT.DAT"); - if (s) + if (s) { _screen->loadFileDataToPage(s, 5, 32000); - else - _screen->loadBitmap("TEXT.CPS", 5, 5, 0, true); + } else { + s = _res->createReadStream("TEXT.CPS"); + if (s->readSint32BE() + 12 == s->size()) + _screen->loadSpecialAmigaCPS("TEXT.CPS", 5, false); + else + _screen->loadBitmap("TEXT.CPS", 5, 5, 0, true); + } delete s; _screen->set16bitShadingLevel(4); gui_drawBox(0, 0, 176, 175, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); |