[Scummvm-cvs-logs] CVS: scummvm/scumm resource.cpp,1.304,1.305 resource_v7he.cpp,1.26,1.27 script_v72he.cpp,2.245,2.246 scumm.cpp,1.415,1.416 scumm.h,1.568,1.569 sound.cpp,1.439,1.440

Max Horn fingolfin at users.sourceforge.net
Sat Apr 9 05:00:00 CEST 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9982

Modified Files:
	resource.cpp resource_v7he.cpp script_v72he.cpp scumm.cpp 
	scumm.h sound.cpp 
Log Message:
Simplify the substResFileName system a bit

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -d -r1.304 -r1.305
--- resource.cpp	6 Apr 2005 17:31:07 -0000	1.304
+++ resource.cpp	9 Apr 2005 11:59:42 -0000	1.305
@@ -134,9 +134,9 @@
 		if (_substResFileNameIndex > 0 && !(_features & GF_NES)) {
 			char tmpBuf[128];
 
-			generateSubstResFileName(buf, tmpBuf, 128, 0, _substResFileNameIndex);
+			generateSubstResFileName(buf, tmpBuf, sizeof(tmpBuf));
 			strcpy(buf, tmpBuf);
-			generateSubstResFileName(buf2, tmpBuf, 128, 0, _substResFileNameIndex);
+			generateSubstResFileName(buf2, tmpBuf, sizeof(tmpBuf));
 			strcpy(buf2, tmpBuf);
 		}
 

Index: resource_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource_v7he.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- resource_v7he.cpp	7 Apr 2005 11:59:13 -0000	1.26
+++ resource_v7he.cpp	9 Apr 2005 11:59:42 -0000	1.27
@@ -146,7 +146,7 @@
 		if (_vm->_substResFileNameIndex > 0) {
 			char buf1[128];
 
-			_vm->generateSubstResFileName(_fileName, buf1, 128, 0, _vm->_substResFileNameIndex);
+			_vm->generateSubstResFileName(_fileName, buf1, sizeof(buf1));
 			strcpy(_fileName, buf1);
 		}
 	}
@@ -1282,7 +1282,7 @@
 			char buf1[128];
 
 			snprintf(buf1, 128, "%s.he3", _vm->getGameName());
-			_vm->generateSubstResFileName(buf1, _fileName, 128, 0, _vm->_substResFileNameIndex);
+			_vm->generateSubstResFileName(buf1, _fileName, sizeof(buf1));
 
 			// Some programs write it as .bin. Try that too
 			if (!f.exists(_fileName)) {

Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.245
retrieving revision 2.246
diff -u -d -r2.245 -r2.246
--- script_v72he.cpp	9 Apr 2005 07:25:41 -0000	2.245
+++ script_v72he.cpp	9 Apr 2005 11:59:43 -0000	2.246
@@ -1679,7 +1679,7 @@
 	if (_substResFileNameIndex > 0) {
 		char buf1[128];
 
-		generateSubstResFileName((char *)filename, buf1, 256, 0, _substResFileNameIndex);
+		generateSubstResFileName((char *)filename, buf1, sizeof(buf1));
 		strcpy((char *)filename, buf1);
 	}
 

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.415
retrieving revision 1.416
diff -u -d -r1.415 -r1.416
--- scumm.cpp	9 Apr 2005 02:44:37 -0000	1.415
+++ scumm.cpp	9 Apr 2005 11:59:43 -0000	1.416
@@ -74,7 +74,7 @@
 extern bool isSmartphone(void);
 #endif
 
-static int generateSubstResFileName_(const char *filename, char *buf, int bufsize, int cont = 0, int index = 0);
+static int generateSubstResFileName_(const char *filename, char *buf, int bufsize, int index);
 
 namespace Scumm {
 
@@ -2958,8 +2958,8 @@
 	}
 }
 
-int ScummEngine::generateSubstResFileName(const char *filename, char *buf, int bufsize, int cont, int index) {
-	return generateSubstResFileName_(filename, buf, bufsize, cont, index);
+int ScummEngine::generateSubstResFileName(const char *filename, char *buf, int bufsize) {
+	return generateSubstResFileName_(filename, buf, bufsize, _substResFileNameIndex);
 }
 
 
@@ -2982,7 +2982,6 @@
 	const ScummGameSettings *g;
 	char detectName[128];
 	char tempName[128];
-	bool substIsOver;
 	int substLastIndex = 0;
 
 	typedef Common::Map<Common::String, bool> StringSet;
@@ -3015,10 +3014,9 @@
 		}
 		strcpy(tempName, detectName);
 
-		substIsOver = false;
 		substLastIndex = 0;
 
-		while (!substIsOver) {
+		while (substLastIndex != -1) {
 			// Iterate over all files in the given directory
 			for (FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
 				if (!file->isDirectory()) {
@@ -3042,9 +3040,7 @@
 				}
 			}
 
-			if ((substLastIndex = generateSubstResFileName_(tempName, detectName, 128, 
-															substLastIndex)) == -1)
-				substIsOver = true;
+			substLastIndex = generateSubstResFileName_(tempName, detectName, sizeof(detectName), substLastIndex+1);
 		}
 	}
 	
@@ -3101,13 +3097,10 @@
 	return detectedGames;
 }
 
-static int generateSubstResFileName_(const char *filename, char *buf, int bufsize, int cont, int index) {
-	if (cont == -1)
+static int generateSubstResFileName_(const char *filename, char *buf, int bufsize, int index) {
+	if (index <= 0)
 		return -1;
 
-	if (cont >= 0)
-		cont++;
-
 	char num = filename[strlen(filename) - 1];
 	
 	// In some cases we have .(a) and .(b) extensions
@@ -3117,10 +3110,7 @@
 	const char *ext = strrchr(filename, '.');
 	int len = ext - filename;
 
-	if (index > 0)
-		cont = index;
-
-	for (int i = cont; i < ARRAYSIZE(substResFileNameTable); i++) {
+	for (int i = index; i < ARRAYSIZE(substResFileNameTable); i++) {
 		if (!scumm_strnicmp(filename, substResFileNameTable[i].winName, len)) {
 			switch (substResFileNameTable[i].genMethod) {
 			case kGenMac:
@@ -3194,16 +3184,13 @@
 	}
 	strcpy(tempName, detectName);
 
-	bool substIsOver = false;
 	File f;
 
-	while (!substIsOver) {
+	while (substLastIndex != -1) {
 		if (f.exists(detectName, ConfMan.get("path").c_str()))
 			break;
 
-		if ((substLastIndex = generateSubstResFileName_(tempName, detectName, 256, 
-														substLastIndex)) == -1)
-			substIsOver = true;
+		substLastIndex = generateSubstResFileName_(tempName, detectName, sizeof(detectName), substLastIndex + 1);
 	}
 
 	// Force game to have Mac platform if needed

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.568
retrieving revision 1.569
diff -u -d -r1.568 -r1.569
--- scumm.h	8 Apr 2005 23:54:34 -0000	1.568
+++ scumm.h	9 Apr 2005 11:59:43 -0000	1.569
@@ -551,7 +551,7 @@
 	int _roomResource;  // FIXME - should be protected but Sound::pauseSounds uses it
 	bool _egoPositioned;	// Used by Actor::putActor, hence public
 
-	int generateSubstResFileName(const char *filename, char *buf, int bufsize, int cont = 0, int index = 0);
+	int generateSubstResFileName(const char *filename, char *buf, int bufsize);
 	int _substResFileNameIndex;
 
 protected:

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.439
retrieving revision 1.440
diff -u -d -r1.439 -r1.440
--- sound.cpp	9 Apr 2005 07:25:41 -0000	1.439
+++ sound.cpp	9 Apr 2005 11:59:43 -0000	1.440
@@ -183,7 +183,7 @@
 		sprintf(buf, "%s.he4", _vm->getGameName());
 
 		if (_vm->_substResFileNameIndex > 0) {
-			_vm->generateSubstResFileName(buf, buf1, 128, 0, _vm->_substResFileNameIndex);
+			_vm->generateSubstResFileName(buf, buf1, sizeof(buf1));
 			strcpy(buf, buf1);
 		}
 		if (musicFile.open(buf) == false) {
@@ -1121,7 +1121,7 @@
 		if (_vm->_substResFileNameIndex > 0) {
 			char buf1[128];
 
-			_vm->generateSubstResFileName(buf, buf1, 128, 0, _vm->_substResFileNameIndex);
+			_vm->generateSubstResFileName(buf, buf1, sizeof(buf1));
 			strcpy(buf, buf1);
 		}
 		if (file->open(buf) && _vm->_heversion <= 72) 





More information about the Scummvm-git-logs mailing list