[Scummvm-cvs-logs] CVS: scummvm/scumm resource.cpp,1.5,1.6 resource_v2.cpp,1.1,1.2 resource_v3.cpp,1.1.1.1,1.2 resource_v4.cpp,1.1.1.1,1.2 scumm.h,1.12,1.13 scummvm.cpp,1.13,1.14 sys.cpp,1.4,1.5

Pawe? Ko?odziejski aquadran at users.sourceforge.net
Tue Sep 10 00:35:02 CEST 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory usw-pr-cvs1:/tmp/cvs-serv21950/scumm

Modified Files:
	resource.cpp resource_v2.cpp resource_v3.cpp resource_v4.cpp 
	scumm.h scummvm.cpp sys.cpp 
Log Message:
changed scumm file io to class File

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- resource.cpp	30 Aug 2002 20:47:48 -0000	1.5
+++ resource.cpp	10 Sep 2002 07:34:27 -0000	1.6
@@ -48,8 +48,7 @@
 	if (room == -1) {
 		_encbyte = 0;
 		deleteRoomOffsets();
-		fileClose(_fileHandle);
-		_fileHandle = NULL;
+		_fileHandle.close();
 		return;
 	}
 
@@ -158,20 +157,20 @@
 		if (!_dynamicRoomOffsets)
 			return;
 
-		fileSeek(_fileHandle, 16, SEEK_SET);
+		_fileHandle.seek(16, SEEK_SET);
 	} else {
-		fileSeek(_fileHandle, 12, SEEK_SET);	// Directlry searching for the room offset block would be more generic...
+		_fileHandle.seek(12, SEEK_SET);	// Directlry searching for the room offset block would be more generic...
 	}
 
-	num = fileReadByte();
+	num = _fileHandle.readByte();
 	while (num) {
 		num--;
 
-		room = fileReadByte();
+		room = _fileHandle.readByte();
 		if (_roomFileOffsets[room] != 0xFFFFFFFF) {
-			_roomFileOffsets[room] = fileReadDwordLE();
+			_roomFileOffsets[room] = _fileHandle.readDwordLE();
 		} else {
-			fileReadDwordLE();
+			_fileHandle.readDwordLE();
 		}
 	}
 }
@@ -182,34 +181,33 @@
 
 	debug(9, "openResourceFile(%s)", filename);
 
-	if (_fileHandle != NULL) {
-		fileClose(_fileHandle);
-		_fileHandle = NULL;
+	if (_fileHandle.isOpen() == true) {
+		_fileHandle.close();
 	}
 
 	strcpy(buf, filename);
-	_fileHandle = fileOpen(buf, 1);
-	if (!_fileHandle) {
+	_fileHandle.open(buf, 1, _encbyte);
+	if (_fileHandle.isOpen() == false) {
 		char *e = strrchr(buf, '/');
 		if (!e)
 			e = buf;
 		do
 			*e = tolower(*e);
 		while (*e++);
-		_fileHandle = fileOpen(buf, 1);
+		_fileHandle.open(buf, 1, _encbyte);
 	}
 
-	if (!_fileHandle) {
+	if (_fileHandle.isOpen() == false) {
 		char *e = strrchr(buf, '/');
 		if (!e)
 			e = buf;
 		do
 			*e = toupper(*e);
 		while (*e++);
-		_fileHandle = fileOpen(buf, 1);
+		_fileHandle.open(buf, 1, _encbyte);
 	}
 
-	return _fileHandle != NULL;
+	return _fileHandle.isOpen();
 }
 
 void Scumm::askForDisk(const char *filename)
@@ -230,48 +228,48 @@
 
 	if (!(_features & GF_AFTER_V6)) {
 		/* Figure out the sizes of various resources */
-		while (!fileEof(_fileHandle)) {
+		while (!_fileHandle.eof()) {
 			blocktype = fileReadDword();
-			itemsize = fileReadDwordBE();
-			if (fileReadFailed(_fileHandle))
+			itemsize = _fileHandle.readDwordBE();
+			if (_fileHandle.ioFailed())
 				break;
 			switch (blocktype) {
 			case MKID('DOBJ'):
-				_numGlobalObjects = fileReadWordLE();
+				_numGlobalObjects = _fileHandle.readWordLE();
 				itemsize -= 2;
 				break;
 			case MKID('DROO'):
-				_numRooms = fileReadWordLE();
+				_numRooms = _fileHandle.readWordLE();
 				itemsize -= 2;
 				break;
 
 			case MKID('DSCR'):
-				_numScripts = fileReadWordLE();
+				_numScripts = _fileHandle.readWordLE();
 				itemsize -= 2;
 				break;
 
 			case MKID('DCOS'):
-				_numCostumes = fileReadWordLE();
+				_numCostumes = _fileHandle.readWordLE();
 				itemsize -= 2;
 				break;
 
 			case MKID('DSOU'):
-				_numSounds = fileReadWordLE();
+				_numSounds = _fileHandle.readWordLE();
 				itemsize -= 2;
 				break;
 			}
-			fileSeek(_fileHandle, itemsize - 8, SEEK_CUR);
+			_fileHandle.seek(itemsize - 8, SEEK_CUR);
 		}
-		clearFileReadFailed(_fileHandle);
-		fileSeek(_fileHandle, 0, SEEK_SET);
+		_fileHandle.clearIOFailed();
+		_fileHandle.seek(0, SEEK_SET);
 	}
 
 	while (1) {
 		blocktype = fileReadDword();
 
-		if (fileReadFailed(_fileHandle))
+		if (_fileHandle.ioFailed())
 			break;
-		itemsize = fileReadDwordBE();
+		itemsize = _fileHandle.readDwordBE();
 
 		numblock++;
 
@@ -282,25 +280,25 @@
 
 		case MKID('DOBJ'):
 			if (_features & GF_AFTER_V8)
-				num = fileReadDwordLE();
+				num = _fileHandle.readDwordLE();
 			else
-				num = fileReadWordLE();
+				num = _fileHandle.readWordLE();
 			assert(num == _numGlobalObjects);
 
 			if (_features & GF_AFTER_V8) {	/* FIXME: Not sure.. */
 				for (i = 0; i < num; i++) {
-					fileSeek(_fileHandle, 40, SEEK_CUR);
-					_objectStateTable[i] = fileReadByte();
-					_objectRoomTable[i] = fileReadByte();
-					_classData[i] = fileReadDwordLE();
+					_fileHandle.seek(40, SEEK_CUR);
+					_objectStateTable[i] = _fileHandle.readByte();
+					_objectRoomTable[i] = _fileHandle.readByte();
+					_classData[i] = _fileHandle.readDwordLE();
 				}
 				memset(_objectOwnerTable, 0xFF, num);
 			} else if (_features & GF_AFTER_V7) {
-				fileRead(_fileHandle, _objectStateTable, num);
-				fileRead(_fileHandle, _objectRoomTable, num);
+				_fileHandle.read(_objectStateTable, num);
+				_fileHandle.read(_objectRoomTable, num);
 				memset(_objectOwnerTable, 0xFF, num);
 			} else {
-				fileRead(_fileHandle, _objectOwnerTable, num);
+				_fileHandle.read(_objectOwnerTable, num);
 				for (i = 0; i < num; i++) {
 					_objectStateTable[i] = _objectOwnerTable[i] >> OF_STATE_SHL;
 					_objectOwnerTable[i] &= OF_OWNER_MASK;
@@ -308,7 +306,7 @@
 			}
 
 			if (!(_features & GF_AFTER_V8)) {
-				fileRead(_fileHandle, _classData, num * sizeof(uint32));
+				_fileHandle.read(_classData, num * sizeof(uint32));
 
 				// Swap flag endian where applicable
 #if defined(SCUMM_BIG_ENDIAN)
@@ -320,7 +318,7 @@
 
 		case MKID('RNAM'):
 		case MKID('ANAM'):
-			fileSeek(_fileHandle, itemsize - 8, SEEK_CUR);
+			_fileHandle.seek(itemsize - 8, SEEK_CUR);
 			break;
 
 		case MKID('DROO'):
@@ -369,10 +367,10 @@
 	int num;
 	int a, b, c;
 
-	while ((num = fileReadWordLE()) != 0) {
-		a = fileReadWordLE();
-		b = fileReadWordLE();
-		c = fileReadWordLE();
+	while ((num = _fileHandle.readWordLE()) != 0) {
+		a = _fileHandle.readWordLE();
+		b = _fileHandle.readWordLE();
+		c = _fileHandle.readWordLE();
 		if (c == 1)
 			defineArray(num, 1, a, b);
 		else
@@ -388,11 +386,11 @@
 	debug(9, "readResTypeList(%s,%x,%s)", resTypeFromId(id), FROM_LE_32(tag), name);
 
 	if (_features & GF_AFTER_V8)
-		num = fileReadDwordLE();
+		num = _fileHandle.readDwordLE();
 	else if (!(_features & GF_OLD_BUNDLE))
-		num = fileReadWordLE();
+		num = _fileHandle.readWordLE();
 	else
-		num = fileReadByte();
+		num = _fileHandle.readByte();
 
 	if (1 || _features & GF_AFTER_V6) {
 		if (num != res.num[id]) {
@@ -409,21 +407,21 @@
 		if (id == rtRoom){
 			for (i = 0; i < num; i++)
 				res.roomno[id][i] = i;
-			fileSeek(_fileHandle, num, SEEK_CUR);
+			_fileHandle.seek(num, SEEK_CUR);
 		} else {
 			for (i = 0; i < num; i++)
-				res.roomno[id][i] = fileReadByte();
+				res.roomno[id][i] = _fileHandle.readByte();
 		}
 		for (i = 0; i < num; i++)
-			res.roomoffs[id][i] = fileReadWordLE();
+			res.roomoffs[id][i] = _fileHandle.readWordLE();
 	} else if (_features & GF_SMALL_HEADER) {
 		for (i = 0; i < num; i++) {
-			res.roomno[id][i] = fileReadByte();
+			res.roomno[id][i] = _fileHandle.readByte();
 			res.roomoffs[id][i] = fileReadDword();
 		}
 	} else {
-		fileRead(_fileHandle, res.roomno[id], num * sizeof(uint8));
-		fileRead(_fileHandle, res.roomoffs[id], num * sizeof(uint32));
+		_fileHandle.read(res.roomno[id], num * sizeof(uint8));
+		_fileHandle.read(res.roomoffs[id], num * sizeof(uint32));
 	}
 
 #if defined(SCUMM_BIG_ENDIAN)
@@ -541,20 +539,20 @@
 	for (i = 0; i < 5; i++) {
 		openRoom(roomNr);
 
-		fileSeek(_fileHandle, fileOffs + _fileOffset, SEEK_SET);
+		_fileHandle.seek(fileOffs + _fileOffset, SEEK_SET);
 
 		if (_features & GF_OLD_BUNDLE) {
-			size = fileReadWordLE();
+			size = _fileHandle.readWordLE();
 		} else if (_features & GF_SMALL_HEADER) {
 			if (!(_features & GF_SMALL_NAMES))
-				fileSeek(_fileHandle, 8, SEEK_CUR);
-			size = fileReadDwordLE();
-			tag = fileReadWordLE();
-			fileSeek(_fileHandle, -6, SEEK_CUR);
+				_fileHandle.seek(8, SEEK_CUR);
+			size = _fileHandle.readDwordLE();
+			tag = _fileHandle.readWordLE();
+			_fileHandle.seek(-6, SEEK_CUR);
 		} else {
 			if (type == rtSound) {
-				fileReadDwordLE();
-				fileReadDwordLE();
+				_fileHandle.readDwordLE();
+				_fileHandle.readDwordLE();
 				return readSoundResource(type, idx);
 			}
 
@@ -564,10 +562,10 @@
 				error("%s %d not in room %d at %d+%d", res.name[type], type, roomNr, _fileOffset, fileOffs);
 			}
 
-			size = fileReadDwordBE();
-			fileSeek(_fileHandle, -8, SEEK_CUR);
+			size = _fileHandle.readDwordBE();
+			_fileHandle.seek(-8, SEEK_CUR);
 		}
-		fileRead(_fileHandle, createResource(type, idx, size), size);
+		_fileHandle.read(createResource(type, idx, size), size);
 
 		/* dump the resource */
 #ifdef DUMP_SCRIPTS
@@ -576,7 +574,7 @@
 		}
 #endif
 
-		if (!fileReadFailed(_fileHandle)) {
+		if (!_fileHandle.ioFailed()) {
 			return 1;
 		}
 
@@ -597,7 +595,7 @@
 	pos = 0;
 
 	basetag = fileReadDword();
-	total_size = fileReadDwordBE();
+	total_size = _fileHandle.readDwordBE();
 
 	debug(8, "  basetag: %c%c%c%c, total_size=%d",
 				(char)((basetag >> 24) & 0xff),
@@ -606,14 +604,14 @@
 
 	//if (_gameId == GID_SAMNMAX || _features & GF_AFTER_V7) {
 	if (basetag == MKID('MIDI') || basetag == MKID('iMUS')) {
-		fileSeek(_fileHandle, -8, SEEK_CUR);
-		fileRead(_fileHandle, createResource(type, idx, total_size + 8), total_size + 8);
+		_fileHandle.seek(-8, SEEK_CUR);
+		_fileHandle.read(createResource(type, idx, total_size + 8), total_size + 8);
 		return 1;
 	} else if (basetag == MKID('SOU ')) {
 		best_pri = -1;
 		while (pos < total_size) {
 			tag = fileReadDword();
-			size = fileReadDwordBE() + 8;
+			size = _fileHandle.readDwordBE() + 8;
 			pos += size;
 
 			pri = -1;
@@ -652,26 +650,26 @@
 			if (pri > best_pri) {
 				best_pri = pri;
 				best_size = size;
-				best_offs = filePos(_fileHandle);
+				best_offs = _fileHandle.pos();
 			}
 
-			fileSeek(_fileHandle, size - 8, SEEK_CUR);
+			_fileHandle.seek(size - 8, SEEK_CUR);
 		}
 
 		if (best_pri != -1) {
-			fileSeek(_fileHandle, best_offs - 8, SEEK_SET);
-			fileRead(_fileHandle, createResource(type, idx, best_size), best_size);
+			_fileHandle.seek(best_offs - 8, SEEK_SET);
+			_fileHandle.read(createResource(type, idx, best_size), best_size);
 			return 1;
 		}
 	} else if (FROM_LE_32(basetag) == 24) {
-		fileSeek(_fileHandle, -12, SEEK_CUR);
-		total_size = fileReadDwordBE();
-		fileSeek(_fileHandle, -8, SEEK_CUR);
-		fileRead(_fileHandle, createResource(type, idx, total_size), total_size);
+		_fileHandle.seek(-12, SEEK_CUR);
+		total_size = _fileHandle.readDwordBE();
+		_fileHandle.seek(-8, SEEK_CUR);
+		_fileHandle.read(createResource(type, idx, total_size), total_size);
 		return 1;
 	} else if (basetag == MKID('Mac0')) {
 		debug(1, "Found base tag Mac0 in sound %d, size %d", idx, total_size);
-		debug(1, "It was at position %d", filePos(_fileHandle));
+		debug(1, "It was at position %d", _fileHandle.pos());
 
 		/* Offset
 		   0x14, 0x1C, 0x20, 0x24 - offsets of channel 1/2/3/4 chunk-
@@ -721,28 +719,28 @@
 		   Maybe I am mistaken when I think it's four byte, some other parts
 		   seem to suggest it's 2 byte oriented, or even variable length...
 		 */
-		fileSeek(_fileHandle, -12, SEEK_CUR);
-		total_size = fileReadDwordBE();
-		fileRead(_fileHandle, createResource(type, idx, total_size), total_size - 8);
+		_fileHandle.seek(-12, SEEK_CUR);
+		total_size = _fileHandle.readDwordBE();
+		_fileHandle.read(createResource(type, idx, total_size), total_size - 8);
 		return 1;
 	} else if (basetag == MKID('Mac1')) {
-		fileSeek(_fileHandle, -12, SEEK_CUR);
-		total_size = fileReadDwordBE();
-		fileRead(_fileHandle, createResource(type, idx, total_size), total_size - 8);
+		_fileHandle.seek(-12, SEEK_CUR);
+		total_size = _fileHandle.readDwordBE();
+		_fileHandle.read(createResource(type, idx, total_size), total_size - 8);
 		return 1;
 	} else if (basetag == MKID('DIGI')) {
 		// Use in Putt-Putt Demo
 		debug(1, "Found base tag DIGI in sound %d, size %d", idx, total_size);
-		debug(1, "It was at position %d", filePos(_fileHandle));
+		debug(1, "It was at position %d", _fileHandle.pos());
 
-		fileSeek(_fileHandle, -12, SEEK_CUR);
-		total_size = fileReadDwordBE();
-		fileRead(_fileHandle, createResource(type, idx, total_size), total_size - 8);
+		_fileHandle.seek(-12, SEEK_CUR);
+		total_size = _fileHandle.readDwordBE();
+		_fileHandle.read(createResource(type, idx, total_size), total_size - 8);
 		return 1;
 	} else if (basetag == MKID('Crea')) {
-		fileSeek(_fileHandle, -12, SEEK_CUR);
-		total_size = fileReadDwordBE();
-		fileRead(_fileHandle, createResource(type, idx, total_size), total_size - 8);
+		_fileHandle.seek(-12, SEEK_CUR);
+		total_size = _fileHandle.readDwordBE();
+		_fileHandle.read(createResource(type, idx, total_size), total_size - 8);
 		return 1;
 	} else {
 		fprintf(stderr, "WARNING: Unrecognized base tag 0x%08lx in sound %d\n", basetag, idx);
@@ -1187,67 +1185,67 @@
 void Scumm::readMAXS()
 {
 	if (_features & GF_AFTER_V8) {
-		fileSeek(_fileHandle, 50 + 50, SEEK_CUR);
-		_numVariables = fileReadDwordLE();	/* ? 1500 */
-		_numBitVariables = fileReadDwordLE();	/* ? 2048 */
-		fileReadDwordLE();					/* 40 */
-		_numScripts = fileReadDwordLE();
-		_numSounds = fileReadDwordLE();
-		_numCharsets = fileReadDwordLE();
-		_numCostumes = fileReadDwordLE();
-		_numRooms = fileReadDwordLE();
-		_numInventory = fileReadDwordLE();
-		_numGlobalObjects = fileReadDwordLE();
-		_numFlObject = fileReadDwordLE();
-		_numLocalObjects = fileReadDwordLE();
-		_numVerbs = fileReadDwordLE();
-		_numNewNames = fileReadDwordLE();
-		fileReadDwordLE();
-		fileReadDwordLE();
-		_numArray = fileReadDwordLE();
+		_fileHandle.seek(50 + 50, SEEK_CUR);
+		_numVariables = _fileHandle.readDwordLE();	/* ? 1500 */
+		_numBitVariables = _fileHandle.readDwordLE();	/* ? 2048 */
+		_fileHandle.readDwordLE();					/* 40 */
+		_numScripts = _fileHandle.readDwordLE();
+		_numSounds = _fileHandle.readDwordLE();
+		_numCharsets = _fileHandle.readDwordLE();
+		_numCostumes = _fileHandle.readDwordLE();
+		_numRooms = _fileHandle.readDwordLE();
+		_numInventory = _fileHandle.readDwordLE();
+		_numGlobalObjects = _fileHandle.readDwordLE();
+		_numFlObject = _fileHandle.readDwordLE();
+		_numLocalObjects = _fileHandle.readDwordLE();
+		_numVerbs = _fileHandle.readDwordLE();
+		_numNewNames = _fileHandle.readDwordLE();
+		_fileHandle.readDwordLE();
+		_fileHandle.readDwordLE();
+		_numArray = _fileHandle.readDwordLE();
 
 		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
 		_numGlobalScripts = 2000;
 
 		_shadowPaletteSize = NUM_SHADOW_PALETTE * 256;
 	} else if (_features & GF_AFTER_V7) {
-		fileSeek(_fileHandle, 50 + 50, SEEK_CUR);
-		_numVariables = fileReadWordLE();
-		_numBitVariables = fileReadWordLE();
-		fileReadWordLE();
-		_numGlobalObjects = fileReadWordLE();
-		_numLocalObjects = fileReadWordLE();
-		_numNewNames = fileReadWordLE();
-		_numVerbs = fileReadWordLE();
-		_numFlObject = fileReadWordLE();
-		_numInventory = fileReadWordLE();
-		_numArray = fileReadWordLE();
-		_numRooms = fileReadWordLE();
-		_numScripts = fileReadWordLE();
-		_numSounds = fileReadWordLE();
-		_numCharsets = fileReadWordLE();
-		_numCostumes = fileReadWordLE();
+		_fileHandle.seek(50 + 50, SEEK_CUR);
+		_numVariables = _fileHandle.readWordLE();
+		_numBitVariables = _fileHandle.readWordLE();
+		_fileHandle.readWordLE();
+		_numGlobalObjects = _fileHandle.readWordLE();
+		_numLocalObjects = _fileHandle.readWordLE();
+		_numNewNames = _fileHandle.readWordLE();
+		_numVerbs = _fileHandle.readWordLE();
+		_numFlObject = _fileHandle.readWordLE();
+		_numInventory = _fileHandle.readWordLE();
+		_numArray = _fileHandle.readWordLE();
+		_numRooms = _fileHandle.readWordLE();
+		_numScripts = _fileHandle.readWordLE();
+		_numSounds = _fileHandle.readWordLE();
+		_numCharsets = _fileHandle.readWordLE();
+		_numCostumes = _fileHandle.readWordLE();
 
 		_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
 		_numGlobalScripts = 2000;
 
 		_shadowPaletteSize = NUM_SHADOW_PALETTE * 256;
 	} else if (_features & GF_AFTER_V6) {
-		_numVariables = fileReadWordLE();
-		fileReadWordLE();
-		_numBitVariables = fileReadWordLE();
-		_numLocalObjects = fileReadWordLE();
-		_numArray = fileReadWordLE();
-		fileReadWordLE();
-		_numVerbs = fileReadWordLE();
-		_numFlObject = fileReadWordLE();
-		_numInventory = fileReadWordLE();
-		_numRooms = fileReadWordLE();
-		_numScripts = fileReadWordLE();
-		_numSounds = fileReadWordLE();
-		_numCharsets = fileReadWordLE();
-		_numCostumes = fileReadWordLE();
-		_numGlobalObjects = fileReadWordLE();
+		_numVariables = _fileHandle.readWordLE();
+		_fileHandle.readWordLE();
+		_numBitVariables = _fileHandle.readWordLE();
+		_numLocalObjects = _fileHandle.readWordLE();
+		_numArray = _fileHandle.readWordLE();
+		_fileHandle.readWordLE();
+		_numVerbs = _fileHandle.readWordLE();
+		_numFlObject = _fileHandle.readWordLE();
+		_numInventory = _fileHandle.readWordLE();
+		_numRooms = _fileHandle.readWordLE();
+		_numScripts = _fileHandle.readWordLE();
+		_numSounds = _fileHandle.readWordLE();
+		_numCharsets = _fileHandle.readWordLE();
+		_numCostumes = _fileHandle.readWordLE();
+		_numGlobalObjects = _fileHandle.readWordLE();
 		_numNewNames = 50;
 
 		_objectRoomTable = NULL;
@@ -1255,20 +1253,20 @@
 
 		_shadowPaletteSize = 256;
 	} else {
-		_numVariables = fileReadWordLE();	/* 800 */
-		fileReadWordLE();						/* 16 */
-		_numBitVariables = fileReadWordLE();	/* 2048 */
-		_numLocalObjects = fileReadWordLE();	/* 200 */
+		_numVariables = _fileHandle.readWordLE();	/* 800 */
+		_fileHandle.readWordLE();						/* 16 */
+		_numBitVariables = _fileHandle.readWordLE();	/* 2048 */
+		_numLocalObjects = _fileHandle.readWordLE();	/* 200 */
 		_numArray = 50;
 		_numVerbs = 100;
 		_numNewNames = 0;
 		_objectRoomTable = NULL;
 
-		fileReadWordLE();						/* 50 */
-		_numCharsets = fileReadWordLE();	/* 9 */
-		fileReadWordLE();						/* 100 */
-		fileReadWordLE();						/* 50 */
-		_numInventory = fileReadWordLE();	/* 80 */
+		_fileHandle.readWordLE();						/* 50 */
+		_numCharsets = _fileHandle.readWordLE();	/* 9 */
+		_fileHandle.readWordLE();						/* 100 */
+		_fileHandle.readWordLE();						/* 50 */
+		_numInventory = _fileHandle.readWordLE();	/* 80 */
 		_numGlobalScripts = 200;
 
 		_shadowPaletteSize = 256;

Index: resource_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource_v2.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- resource_v2.cpp	29 Aug 2002 16:57:43 -0000	1.1
+++ resource_v2.cpp	10 Sep 2002 07:34:27 -0000	1.2
@@ -30,21 +30,21 @@
 	openRoom(-1);
 	openRoom(0);
 
-	if (fileReadWordLE() != 0x0100)
+	if (_fileHandle.readWordLE() != 0x0100)
 		warning("The magic id doesn't match\n");
 
-	_numGlobalObjects = fileReadWordLE();
-	fileSeek(_fileHandle, _numGlobalObjects, SEEK_CUR); // Skip object flags
-	_numRooms = fileReadByte();
-	fileSeek(_fileHandle, _numRooms * 3, SEEK_CUR);
-	_numCostumes = fileReadByte();
-	fileSeek(_fileHandle, _numCostumes * 3, SEEK_CUR);
-	_numScripts = fileReadByte();
-	fileSeek(_fileHandle, _numScripts * 3, SEEK_CUR);
-	_numSounds = fileReadByte();
+	_numGlobalObjects = _fileHandle.readWordLE();
+	_fileHandle.seek(_numGlobalObjects, SEEK_CUR); // Skip object flags
+	_numRooms = _fileHandle.readByte();
+	_fileHandle.seek(_numRooms * 3, SEEK_CUR);
+	_numCostumes = _fileHandle.readByte();
+	_fileHandle.seek(_numCostumes * 3, SEEK_CUR);
+	_numScripts = _fileHandle.readByte();
+	_fileHandle.seek(_numScripts * 3, SEEK_CUR);
+	_numSounds = _fileHandle.readByte();
 
-	clearFileReadFailed(_fileHandle);
-	fileSeek(_fileHandle, 0, SEEK_SET);
+	_fileHandle.clearIOFailed();
+	_fileHandle.seek(0, SEEK_SET);
 
 	// FIXME - I'm not sure for those values yet, they will have to be rechecked
 
@@ -64,9 +64,9 @@
 	_numFlObject = 50;
 	allocateArrays();
 
-	fileReadWordLE(); /* version magic number */
-	fileReadWordLE(); /* nb global objects */
-	fileSeek(_fileHandle, _numGlobalObjects, SEEK_CUR); // Skip object flags
+	_fileHandle.readWordLE(); /* version magic number */
+	_fileHandle.readWordLE(); /* nb global objects */
+	_fileHandle.seek(_numGlobalObjects, SEEK_CUR); // Skip object flags
 	readResTypeList(rtRoom, MKID('ROOM'), "room");
 	readResTypeList(rtCostume, MKID('COST'), "costume");
 	readResTypeList(rtScript, MKID('SCRP'), "script");

Index: resource_v3.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource_v3.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- resource_v3.cpp	21 Aug 2002 16:07:32 -0000	1.1.1.1
+++ resource_v3.cpp	10 Sep 2002 07:34:27 -0000	1.2
@@ -37,37 +37,37 @@
 	openRoom(-1);
 	openRoom(0);
 
-	while (!fileEof(_fileHandle)) {
-		itemsize = fileReadDwordLE();
-		blocktype = fileReadWordLE();
-		if (fileReadFailed(_fileHandle))
+	while (!_fileHandle.eof()) {
+		itemsize = _fileHandle.readDwordLE();
+		blocktype = _fileHandle.readWordLE();
+		if (_fileHandle.ioFailed())
 			break;
 
 		switch (blocktype) {
 		case 0x4E52:	// 'NR'
-			fileReadWordLE();
+			_fileHandle.readWordLE();
 			break;
 		case 0x5230:	// 'R0'
-			_numRooms = fileReadWordLE();
+			_numRooms = _fileHandle.readWordLE();
 			break;
 		case 0x5330:	// 'S0'
-			_numScripts = fileReadWordLE();
+			_numScripts = _fileHandle.readWordLE();
 			break;
 		case 0x4E30:	// 'N0'
-			_numSounds = fileReadWordLE();
+			_numSounds = _fileHandle.readWordLE();
 			break;
 		case 0x4330:	// 'C0'
-			_numCostumes = fileReadWordLE();
+			_numCostumes = _fileHandle.readWordLE();
 			break;
 		case 0x4F30:	// 'O0'
-			_numGlobalObjects = fileReadWordLE();
+			_numGlobalObjects = _fileHandle.readWordLE();
 			break;
 		}
-		fileSeek(_fileHandle, itemsize - 8, SEEK_CUR);
+		_fileHandle.seek(itemsize - 8, SEEK_CUR);
 	}
 
-	clearFileReadFailed(_fileHandle);
-	fileSeek(_fileHandle, 0, SEEK_SET);
+	_fileHandle.clearIOFailed();
+	_fileHandle.seek(0, SEEK_SET);
 
 	/* I'm not sure for those values yet, they will have to be rechecked */
 
@@ -88,19 +88,19 @@
 	allocateArrays();
 
 	while (1) {
-		itemsize = fileReadDwordLE();
+		itemsize = _fileHandle.readDwordLE();
 
-		if (fileReadFailed(_fileHandle))
+		if (_fileHandle.ioFailed())
 			break;
 
-		blocktype = fileReadWordLE();
+		blocktype = _fileHandle.readWordLE();
 
 		numblock++;
 
 		switch (blocktype) {
 
 		case 0x4E52:	// 'NR'
-			fileSeek(_fileHandle, itemsize - 6, SEEK_CUR);
+			_fileHandle.seek(itemsize - 6, SEEK_CUR);
 			break;
 
 		case 0x5230:	// 'R0'
@@ -120,15 +120,15 @@
 			break;
 
 		case 0x4F30:	// 'O0'
-			num = fileReadWordLE();
+			num = _fileHandle.readWordLE();
 			assert(num == _numGlobalObjects);
 			for (i = 0; i != num; i++) {
-				uint32 bits = fileReadByte();
+				uint32 bits = _fileHandle.readByte();
 				byte tmp;
-				bits |= fileReadByte() << 8;
-				bits |= fileReadByte() << 16;
+				bits |= _fileHandle.readByte() << 8;
+				bits |= _fileHandle.readByte() << 16;
 				_classData[i] = bits;
-				tmp = fileReadByte();
+				tmp = _fileHandle.readByte();
 				_objectOwnerTable[i] = tmp & OF_OWNER_MASK;
 				_objectStateTable[i] = tmp >> OF_STATE_SHL;
 			}
@@ -154,8 +154,8 @@
 
 	openRoom(98 + no);
 
-	size = fileReadWordLE();
+	size = _fileHandle.readWordLE();
 
-	fileRead(_fileHandle, createResource(6, no, size), size);
+	_fileHandle.read(createResource(6, no, size), size);
 	openRoom(-1);
 }

Index: resource_v4.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource_v4.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- resource_v4.cpp	21 Aug 2002 16:07:32 -0000	1.1.1.1
+++ resource_v4.cpp	10 Sep 2002 07:34:27 -0000	1.2
@@ -33,8 +33,8 @@
 
 	openRoom(900 + no);
 
-	size = fileReadDwordLE() + 11;
+	size = _fileHandle.readDwordLE() + 11;
 
-	fileRead(_fileHandle, createResource(6, no, size), size);
+	_fileHandle.read(createResource(6, no, size), size);
 	openRoom(-1);
 }

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- scumm.h	8 Sep 2002 01:08:12 -0000	1.12
+++ scumm.h	10 Sep 2002 07:34:27 -0000	1.13
@@ -554,7 +554,7 @@
 
 	/* Should be in Resource class */
 	byte _encbyte;
-	void *_fileHandle;
+	File _fileHandle;
 	char *_resFilePrefix, *_resFilePath;
 	uint32 _fileOffset;
 	char *_exe_name;
@@ -597,9 +597,6 @@
 	virtual void loadCharset(int i);
 	void nukeCharset(int i);
 
-	bool fileReadFailed(void *handle);
-	void clearFileReadFailed(void *handle);
-
 	int _lastLoadedRoom, _roomResource;
 	byte _resFilePathId, _fileReadFailed;
 	byte *findResourceData(uint32 tag, byte *ptr);
@@ -933,34 +930,14 @@
 	bool _keepText;
 
 
-	/* Should be in System class */
-	void fileClose(void *file);
-	void *fileOpen(const char *filename, int mode);
-	void fileSeek(void *file, long offs, int whence);
-	void fileRead(void *handle, void *ptr, uint32 size);
-	bool fileEof(void *handle);
-	uint32 filePos(void *handle);
 	bool checkFixedDisk();
 	int _cdrom;
 
-	int fileReadByte();
-	uint32 fileReadDwordLE();
-	uint32 fileReadDwordBE();
-	int fileReadByte(void *handle);
-	uint32 fileReadDwordLE(void *handle);
-	uint32 fileReadDwordBE(void *handle);
-
 #if defined(SCUMM_LITTLE_ENDIAN)
-	uint32 fileReadDword() { return fileReadDwordLE(); }
-	uint32 fileReadDword(void *handle) { return fileReadDwordLE(handle); }
+	uint32 fileReadDword() { return _fileHandle.readDwordLE(); }
 #elif defined(SCUMM_BIG_ENDIAN)
-	uint32 fileReadDword() { return fileReadDwordBE(); }
-	uint32 fileReadDword(void *handle) { return fileReadDwordBE(handle); }
+	uint32 fileReadDword() { return _fileHandle.readDwordBE(); }
 #endif
-	uint fileReadWordLE();
-	uint fileReadWordBE();
-	uint fileReadWordLE(void *handle);
-	uint fileReadWordBE(void *handle);
 
 	/* Version 5 script opcodes */
 	void o5_actorFollowCamera();

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- scummvm.cpp	1 Sep 2002 16:07:10 -0000	1.13
+++ scummvm.cpp	10 Sep 2002 07:34:27 -0000	1.14
@@ -853,7 +853,7 @@
 void Scumm::dumpResource(char *tag, int idx, byte *ptr)
 {
 	char buf[256];
-	FILE *out;
+	File out;
 
 	uint32 size;
 	if (_features & GF_SMALL_HEADER)
@@ -867,14 +867,14 @@
 	sprintf(buf, "dumps/%s%d.dmp", tag, idx);
 #endif
 
-	out = fopen(buf, "rb");
-	if (!out) {
-		out = fopen(buf, "wb");
-		if (!out)
+	out.open(buf, 1);
+	if (out.isOpen() == false) {
+		out.open(buf, 2);
+		if (out.isOpen() == false)
 			return;
-		fwrite(ptr, size, 1, out);
+		out.write(ptr, size);
 	}
-	fclose(out);
+	out.close();
 }
 
 
@@ -1463,7 +1463,6 @@
 {
 	charset._vm = this;
 	gdi._vm = this;
-	_fileHandle = NULL;
 
 	_maxHeapThreshold = 450000;
 	_minHeapThreshold = 400000;

Index: sys.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sys.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- sys.cpp	31 Aug 2002 13:29:09 -0000	1.4
+++ sys.cpp	10 Sep 2002 07:34:27 -0000	1.5
@@ -23,145 +23,6 @@
 #include "stdafx.h"
 #include "scumm.h"
 
-void *Scumm::fileOpen(const char *filename, int mode)
-{
-	clearFileReadFailed(_fileHandle);
-
-	if (mode == 1)
-		return fopen(filename, "rb");
-
-	error("This should not happen!");
-	return NULL;
-}
-
-void Scumm::fileClose(void *file)
-{
-	if (file)
-		fclose((FILE *)file);
-}
-
-bool Scumm::fileReadFailed(void *file)
-{
-	return _fileReadFailed != 0;
-}
-
-void Scumm::clearFileReadFailed(void *file)
-{
-	_fileReadFailed = false;
-}
-
-bool Scumm::fileEof(void *file)
-{
-	return feof((FILE *)file) != 0;
-}
-
-uint32 Scumm::filePos(void *handle)
-{
-	return ftell((FILE *)handle);
-}
-
-void Scumm::fileSeek(void *file, long offs, int whence)
-{
-	if (fseek((FILE *)file, offs, whence) != 0)
-		clearerr((FILE *)file);
-}
-
-void Scumm::fileRead(void *file, void *ptr, uint32 size)
-{
-	byte *ptr2 = (byte *)ptr;
-
-	if (size == 0)
-		return;
-
-	if ((uint32)fread(ptr2, size, 1, (FILE *)file) != 1) {
-		clearerr((FILE *)file);
-		_fileReadFailed = true;
-	}
-
-	do {
-		*ptr2++ ^= _encbyte;
-	} while (--size);
-}
-
-int Scumm::fileReadByte()
-{
-	byte b;
-
-	if (fread(&b, 1, 1, (FILE *)_fileHandle) != 1) {
-		clearerr((FILE *)_fileHandle);
-		_fileReadFailed = true;
-	}
-	return b ^ _encbyte;
-}
-
-uint Scumm::fileReadWordLE()
-{
-	uint a = fileReadByte();
-	uint b = fileReadByte();
-	return a | (b << 8);
-}
-
-uint32 Scumm::fileReadDwordLE()
-{
-	uint a = fileReadWordLE();
-	uint b = fileReadWordLE();
-	return (b << 16) | a;
-}
-
-uint Scumm::fileReadWordBE()
-{
-	uint b = fileReadByte();
-	uint a = fileReadByte();
-	return a | (b << 8);
-}
-
-uint32 Scumm::fileReadDwordBE()
-{
-	uint b = fileReadWordBE();
-	uint a = fileReadWordBE();
-	return (b << 16) | a;
-}
-
-/* Overloaded versions */
-int Scumm::fileReadByte(void *handle)
-{
-	byte b;
-
-	if (fread(&b, 1, 1, (FILE *)handle) != 1) {
-		clearerr((FILE *)handle);
-		_fileReadFailed = true;
-	}
-	return b ^ _encbyte;
-}
-
-uint Scumm::fileReadWordLE(void *handle)
-{
-	uint a = fileReadByte(handle);
-	uint b = fileReadByte(handle);
-	return a | (b << 8);
-}
-
-uint32 Scumm::fileReadDwordLE(void *handle)
-{
-	uint a = fileReadWordLE(handle);
-	uint b = fileReadWordLE(handle);
-	return (b << 16) | a;
-}
-
-uint Scumm::fileReadWordBE(void *handle)
-{
-	uint b = fileReadByte(handle);
-	uint a = fileReadByte(handle);
-	return a | (b << 8);
-}
-
-uint32 Scumm::fileReadDwordBE(void *handle)
-{
-	uint b = fileReadWordBE(handle);
-	uint a = fileReadWordBE(handle);
-	return (b << 16) | a;
-}
-
 bool Scumm::checkFixedDisk() 
 {
 	return true;





More information about the Scummvm-git-logs mailing list