diff options
author | Travis Howell | 2007-06-16 02:43:31 +0000 |
---|---|---|
committer | Travis Howell | 2007-06-16 02:43:31 +0000 |
commit | 4362692684bf5d937b3fbffb6081acd2ee52e914 (patch) | |
tree | 3952e3b652d624df42d7de8bede12fed1ca1fbaf | |
parent | ce8a015c1cd1f4521a3c748a190bd9ea0e28fb75 (diff) | |
download | scummvm-rg350-4362692684bf5d937b3fbffb6081acd2ee52e914.tar.gz scummvm-rg350-4362692684bf5d937b3fbffb6081acd2ee52e914.tar.bz2 scummvm-rg350-4362692684bf5d937b3fbffb6081acd2ee52e914.zip |
Add GF_LANG_MULT game flag, for detecting differences between the two Amiga versions.
svn-id: r27441
-rw-r--r-- | engines/parallaction/archive.cpp | 9 | ||||
-rw-r--r-- | engines/parallaction/detection.cpp | 4 | ||||
-rw-r--r-- | engines/parallaction/disk.cpp | 16 | ||||
-rw-r--r-- | engines/parallaction/menu.cpp | 4 | ||||
-rw-r--r-- | engines/parallaction/parallaction.h | 3 |
5 files changed, 25 insertions, 11 deletions
diff --git a/engines/parallaction/archive.cpp b/engines/parallaction/archive.cpp index 0486c6d684..e71b216eac 100644 --- a/engines/parallaction/archive.cpp +++ b/engines/parallaction/archive.cpp @@ -68,8 +68,13 @@ void Archive::open(const char *file) { error("archive '%s' not found", path); bool isSmallArchive = false; - if (_vm->getFeatures() & GF_DEMO) - isSmallArchive = _archive.size() == SIZEOF_SMALL_ARCHIVE; + if (_vm->getPlatform() == Common::kPlatformAmiga) { + if (_vm->getFeatures() & GF_DEMO) { + isSmallArchive = _archive.size() == SIZEOF_SMALL_ARCHIVE; + } else if (_vm->getFeatures() & GF_LANG_MULT) { + isSmallArchive = (_archive.readUint32BE() != MKID_BE('NDOS')); + } + } _numFiles = (isSmallArchive) ? SMALL_ARCHIVE_FILES_NUM : NORMAL_ARCHIVE_FILES_NUM; diff --git a/engines/parallaction/detection.cpp b/engines/parallaction/detection.cpp index 89a0372fac..8e069c5f08 100644 --- a/engines/parallaction/detection.cpp +++ b/engines/parallaction/detection.cpp @@ -75,7 +75,7 @@ static const PARALLACTIONGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_Nippon, - GF_LANG_EN | GF_LANG_FR | GF_LANG_DE | GF_LANG_IT, + GF_LANG_EN | GF_LANG_FR | GF_LANG_DE | GF_LANG_IT | GF_LANG_MULT, }, { @@ -98,7 +98,7 @@ static const PARALLACTIONGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_Nippon, - GF_LANG_EN | GF_LANG_FR | GF_LANG_DE, + GF_LANG_EN | GF_LANG_FR | GF_LANG_DE | GF_LANG_MULT, }, { diff --git a/engines/parallaction/disk.cpp b/engines/parallaction/disk.cpp index b44485455f..93a5840fb5 100644 --- a/engines/parallaction/disk.cpp +++ b/engines/parallaction/disk.cpp @@ -1150,11 +1150,19 @@ Font* AmigaFullDisk::loadFont(const char* name) { char path[PATH_LEN]; sprintf(path, "%sfont", name); - Common::File stream; - if (!stream.open(path)) - errorFileNotFound(path); + if (_vm->getFeatures() & GF_LANG_MULT) { + if (!_resArchive.openArchivedFile(path)) + errorFileNotFound(path); - return createFont(name, stream); + return createFont(name, _resArchive); + } else { + // Italian version has separate font files? + Common::File stream; + if (!stream.open(path)) + errorFileNotFound(path); + + return createFont(name, stream); + } } diff --git a/engines/parallaction/menu.cpp b/engines/parallaction/menu.cpp index 457b81e6b6..ec9db51e4d 100644 --- a/engines/parallaction/menu.cpp +++ b/engines/parallaction/menu.cpp @@ -105,7 +105,7 @@ Menu::~Menu() { void Menu::start() { - _vm->_disk->selectArchive((_vm->getPlatform() == Common::kPlatformAmiga) ? "disk0" : "disk1"); + _vm->_disk->selectArchive((_vm->getFeatures() & GF_LANG_MULT) ? "disk1" : "disk0"); splash(); @@ -335,7 +335,7 @@ void Menu::selectCharacter() { _vm->_gfx->setFont(kFontMenu); - _vm->_disk->selectArchive((_vm->getPlatform() == Common::kPlatformAmiga) ? "disk0" : "disk1"); + _vm->_disk->selectArchive((_vm->getFeatures() & GF_LANG_MULT) ? "disk1" : "disk0"); _vm->_disk->loadSlide("password"); // loads background into kBitBack buffer diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h index 327a8cbdf6..d733c17fe9 100644 --- a/engines/parallaction/parallaction.h +++ b/engines/parallaction/parallaction.h @@ -64,7 +64,8 @@ enum { GF_LANG_EN = 1 << 1, GF_LANG_FR = 1 << 2, GF_LANG_DE = 1 << 3, - GF_LANG_IT = 1 << 4 + GF_LANG_IT = 1 << 4, + GF_LANG_MULT = 1 << 5 }; |