[Scummvm-cvs-logs] SF.net SVN: scummvm: [27441] scummvm/trunk/engines/parallaction

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Sat Jun 16 04:43:32 CEST 2007


Revision: 27441
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27441&view=rev
Author:   Kirben
Date:     2007-06-15 19:43:31 -0700 (Fri, 15 Jun 2007)

Log Message:
-----------
Add GF_LANG_MULT game flag, for detecting differences between the two Amiga versions.

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/archive.cpp
    scummvm/trunk/engines/parallaction/detection.cpp
    scummvm/trunk/engines/parallaction/disk.cpp
    scummvm/trunk/engines/parallaction/menu.cpp
    scummvm/trunk/engines/parallaction/parallaction.h

Modified: scummvm/trunk/engines/parallaction/archive.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/archive.cpp	2007-06-16 02:38:17 UTC (rev 27440)
+++ scummvm/trunk/engines/parallaction/archive.cpp	2007-06-16 02:43:31 UTC (rev 27441)
@@ -68,8 +68,13 @@
 		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;
 

Modified: scummvm/trunk/engines/parallaction/detection.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/detection.cpp	2007-06-16 02:38:17 UTC (rev 27440)
+++ scummvm/trunk/engines/parallaction/detection.cpp	2007-06-16 02:43:31 UTC (rev 27441)
@@ -75,7 +75,7 @@
 			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 @@
 			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,
 	},
 
 	{

Modified: scummvm/trunk/engines/parallaction/disk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk.cpp	2007-06-16 02:38:17 UTC (rev 27440)
+++ scummvm/trunk/engines/parallaction/disk.cpp	2007-06-16 02:43:31 UTC (rev 27441)
@@ -1150,11 +1150,19 @@
 	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);
+	}
 }
 
 

Modified: scummvm/trunk/engines/parallaction/menu.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/menu.cpp	2007-06-16 02:38:17 UTC (rev 27440)
+++ scummvm/trunk/engines/parallaction/menu.cpp	2007-06-16 02:43:31 UTC (rev 27441)
@@ -105,7 +105,7 @@
 
 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 @@
 
 	_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
 

Modified: scummvm/trunk/engines/parallaction/parallaction.h
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.h	2007-06-16 02:38:17 UTC (rev 27440)
+++ scummvm/trunk/engines/parallaction/parallaction.h	2007-06-16 02:43:31 UTC (rev 27441)
@@ -64,7 +64,8 @@
 	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
 };
 
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list