aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/engine/eobcommon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/engine/eobcommon.cpp')
-rw-r--r--engines/kyra/engine/eobcommon.cpp36
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);