[Scummvm-cvs-logs] CVS: scummvm/scumm resource.cpp,1.63,1.64

Jonathan Gray khalek at users.sourceforge.net
Mon Apr 28 20:33:07 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv28141

Modified Files:
	resource.cpp 
Log Message:
make all known file extensions of resource files work

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- resource.cpp	28 Apr 2003 13:16:36 -0000	1.63
+++ resource.cpp	29 Apr 2003 03:32:08 -0000	1.64
@@ -36,7 +36,9 @@
 /* Open a room */
 void Scumm::openRoom(int room) {
 	int room_offs, roomlimit;
-	char buf[256];
+	bool result;
+	char buf[128];
+	char buf2[128] = "";
 
 	debug(9, "openRoom(%d)", room);
 	assert(room >= 0);
@@ -78,10 +80,14 @@
 				if (room > 0)
 					_vars[VAR_CURRENTDISK] = res.roomno[rtRoom][room];
 				sprintf(buf, "%s.la%d", _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
+				sprintf(buf2, "%s.%.3d", _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
 			} else if (_features & GF_HUMONGOUS)
 				sprintf(buf, "%s.he%.1d", _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
-			else
+			else {
 				sprintf(buf, "%s.%.3d",  _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
+				if (_gameId == GID_SAMNMAX)
+					sprintf(buf2, "%s.sm%.1d",  _exe_name, room == 0 ? 0 : res.roomno[rtRoom][room]);
+			}
 
 			_encbyte = (_features & GF_USE_KEY) ? 0x69 : 0;
 		} else if (!(_features & GF_SMALL_NAMES)) {
@@ -102,7 +108,11 @@
 			_encbyte = (_features & GF_USE_KEY) ? 0xFF : 0;
 		}
 
-		if (openResourceFile(buf)) {
+		result = openResourceFile(buf);
+		if ((result == false) && (buf2[0]))
+			result = openResourceFile(buf2);
+			
+		if (result) {
 			if (room == 0)
 				return;
 			if (_features & GF_EXTERNAL_CHARSET && room >= roomlimit)





More information about the Scummvm-git-logs mailing list