[Scummvm-cvs-logs] CVS: scummvm/queen defs.h,1.20,1.21 resource.cpp,1.22,1.23 resource.h,1.17,1.18

Joost Peters joostp at users.sourceforge.net
Thu Oct 30 15:22:05 CET 2003


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv16894/queen

Modified Files:
	defs.h resource.cpp resource.h 
Log Message:
add support for spanish cd version

Index: defs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/defs.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- defs.h	30 Oct 2003 10:56:38 -0000	1.20
+++ defs.h	30 Oct 2003 23:20:44 -0000	1.21
@@ -86,7 +86,8 @@
 	ENGLISH  = 'E',
 	FRENCH   = 'F',
 	GERMAN   = 'G',
-	ITALIAN  = 'I'
+	ITALIAN  = 'I',
+	SPANISH  = 'S'
 };
 
 

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/resource.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- resource.cpp	28 Oct 2003 15:26:05 -0000	1.22
+++ resource.cpp	30 Oct 2003 23:20:46 -0000	1.23
@@ -29,19 +29,22 @@
 
 static const char *tableFilename = "queen.tbl";
 
+
 const GameVersion Resource::_gameVersions[] = {
-	{ "PEM10", true,  false, 0x00000008 },
-	{ "CEM10", false, false, 0x0000584E },
-	{ "PFM10", true,  false, 0x0002CD93 },
-	{ "CFM10", false, false, 0x00032585 },
-	{ "PGM10", true,  false, 0x00059ACA },
-	{ "CGM10", false, false, 0x0005F2A7 },
-	{ "PIM10", true,  false, 0x000866B1 },
-	{ "CIM10", false, false, 0x0008BEE2 },
-	{ "PE100", true,  true,  0x000B343C },
-	{ "PE100", true,  true,  0x000B40F5 }
+	{ "PEM10", true,  false, 0x00000008,  22677657 },
+	{ "CEM10", false, false, 0x0000584E, 190787021 },
+	{ "PFM10", true,  false, 0x0002CD93,  22157304 },
+	{ "CFM10", false, false, 0x00032585, 186689095 },
+	{ "PGM10", true,  false, 0x00059ACA,  22240013 },
+	{ "CGM10", false, false, 0x0005F2A7, 217648975 },
+	{ "PIM10", true,  false, 0x000866B1,  22461366 },
+	{ "CIM10", false, false, 0x0008BEE2, 190795582 },
+	{ "CSM10", false, false, 0x000B343C, 190730602 },
+	{ "PE100", true,  true,  0x000DA981,   3724538 },
+	{ "PE100", true,  true,  0x000DB63A,   3732177 }
 };
 
+
 Resource::Resource(const Common::String &datafilePath, const char *datafileName)
 	: _JAS2Pos(0), _datafilePath(datafilePath), _resourceEntries(0), _resourceTable(NULL) {
 
@@ -187,50 +190,25 @@
 			return FRENCH;
 		case 'I':
 			return ITALIAN;
+		case 'S':
+			return SPANISH;
 		default:
 			return ENGLISH;
 	}
 }
 
 const GameVersion *Resource::detectGameVersion(uint32 dataFilesize) {
-	const GameVersion *pgv = NULL;
 	//detect game version based on resource file size.
 	//we try to verify that it is indeed the version we think it is later on
-	switch(dataFilesize) {
-	case 3724538:
-		pgv = &_gameVersions[VER_DEMO_PCGAMES];
-		break;
-	case 3732177:
-		pgv = &_gameVersions[VER_DEMO];
-		break;
-	case 22677657:
-		pgv = &_gameVersions[VER_ENG_FLOPPY];
-		break;
-	case 190787021:
-		pgv = &_gameVersions[VER_ENG_TALKIE];
-		break;
-	case 22157304: // computed from FREH_FAT.H
-		pgv = &_gameVersions[VER_FRE_FLOPPY];
-		break;
-	case 186689095:
-		pgv = &_gameVersions[VER_FRE_TALKIE];
-		break;
-	case 22240013: // computed from GERH_FAT.H
-		pgv = &_gameVersions[VER_GER_FLOPPY];
-		break;
-	case 217648975: // computed from GERC_FAT.H
-		pgv = &_gameVersions[VER_GER_TALKIE];
-		break;
-	case 22461366: // computed from ITAH_FAT.H
-		pgv = &_gameVersions[VER_ITA_FLOPPY];
-		break;
-	case 190795582: // computed from ITAC_FAT.H
-		pgv = &_gameVersions[VER_ITA_TALKIE];
-		break;
-	default:
-		error("Unknown/unsupported FOTAQ version");
+	const GameVersion *pgv = _gameVersions;
+	int i;
+	for (i = 0; i < VER_NUMBER; ++i, ++pgv) {
+		if (pgv->dataFileSize == dataFilesize) {
+			return pgv;
+		}
 	}
-	return pgv;
+	error("Unknown/unsupported FOTAQ version");
+	return NULL;
 }
 
 bool Resource::readTableFile() {

Index: resource.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/resource.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- resource.h	28 Oct 2003 15:26:05 -0000	1.17
+++ resource.h	30 Oct 2003 23:20:47 -0000	1.18
@@ -27,7 +27,7 @@
 
 namespace Queen {
 
-enum {
+enum Version {
 	VER_ENG_FLOPPY   = 0,
 	VER_ENG_TALKIE   = 1,
 	VER_FRE_FLOPPY   = 2,
@@ -36,8 +36,11 @@
 	VER_GER_TALKIE   = 5,
 	VER_ITA_FLOPPY   = 6,
 	VER_ITA_TALKIE   = 7,
-	VER_DEMO_PCGAMES = 8,
-	VER_DEMO         = 9
+	VER_SPA_TALKIE   = 8,
+	VER_DEMO_PCGAMES = 9,
+	VER_DEMO         = 10,
+
+	VER_NUMBER       = 11
 };
 
 struct ResourceEntry {
@@ -52,6 +55,7 @@
 	bool isFloppy;   
 	bool isDemo;
 	uint32 tableOffset;
+	uint32 dataFileSize;
 };
 
 





More information about the Scummvm-git-logs mailing list