[Scummvm-cvs-logs] SF.net SVN: scummvm: [28349] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Tue Jul 31 03:43:32 CEST 2007


Revision: 28349
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28349&view=rev
Author:   drmccoy
Date:     2007-07-30 18:43:32 -0700 (Mon, 30 Jul 2007)

Log Message:
-----------
Minor DataIO-cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/gob/cdrom.cpp
    scummvm/trunk/engines/gob/dataio.cpp
    scummvm/trunk/engines/gob/dataio.h
    scummvm/trunk/engines/gob/game.cpp
    scummvm/trunk/engines/gob/init.cpp
    scummvm/trunk/engines/gob/inter_v1.cpp
    scummvm/trunk/engines/gob/inter_v2.cpp

Modified: scummvm/trunk/engines/gob/cdrom.cpp
===================================================================
--- scummvm/trunk/engines/gob/cdrom.cpp	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/cdrom.cpp	2007-07-31 01:43:32 UTC (rev 28349)
@@ -68,29 +68,30 @@
 	_vm->_dataIO->getUnpackedData(tmp);
 
 	handle = _vm->_dataIO->openData(tmp);
+	DataStream *stream = _vm->_dataIO->openAsStream(handle, true);
 
-	version = _vm->_dataIO->readUint16(handle);
-	startChunk = _vm->_dataIO->readUint16(handle);
-	_numTracks = _vm->_dataIO->readUint16(handle);
+	version = stream->readUint16LE();
+	startChunk = stream->readUint16LE();
+	_numTracks = stream->readUint16LE();
 
 	if (version != 3)
 		error("%s: Unknown version %d", fname, version);
 
-	_vm->_dataIO->seekData(handle, 50, SEEK_SET);
+	stream->seek(50);
 
 	for (int i = 0; i < startChunk; i++) {
-		pos = _vm->_dataIO->readUint16(handle);
+		pos = stream->readUint16LE();
 
 		if (!pos)
 			break;
 
-		_vm->_dataIO->seekData(handle, pos, SEEK_CUR);
+		stream->skip(pos);
 	}
 
 	_LICbuffer = new byte[_numTracks * 22];
-	_vm->_dataIO->readData(handle, _LICbuffer, _numTracks * 22);
+	stream->read(_LICbuffer, _numTracks * 22);
 
-	_vm->_dataIO->closeData(handle);
+	delete stream;
 }
 
 void CDROM::freeLICbuffer() {

Modified: scummvm/trunk/engines/gob/dataio.cpp
===================================================================
--- scummvm/trunk/engines/gob/dataio.cpp	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/dataio.cpp	2007-07-31 01:43:32 UTC (rev 28349)
@@ -480,41 +480,16 @@
 	return new DataStream(*this, handle, size, dispose);
 }
 
-int32 DataIO::readData(int16 handle, byte *buf, uint16 size) {
-	int32 res;
+uint32 DataIO::getPos(int16 handle) {
+	uint32 resPos;
 
-	res = readChunk(handle, buf, size);
-	if (res >= 0)
-		return res;
+	resPos = getChunkPos(handle);
+	if (resPos != 0xFFFFFFFF)
+		return resPos;
 
-	return file_getHandle(handle)->read(buf, size);
+	return file_getHandle(handle)->pos();
 }
 
-byte DataIO::readByte(int16 handle) {
-	byte buf;
-
-	readData(handle, &buf, 1);
-	return ((byte) buf);
-}
-
-uint16 DataIO::readUint16(int16 handle) {
-	byte buf[2];
-
-	readData(handle, buf, 2);
-	return READ_LE_UINT16(buf);
-}
-
-uint32 DataIO::readUint32(int16 handle) {
-	byte buf[4];
-
-	readData(handle, buf, 4);
-	return READ_LE_UINT32(buf);
-}
-
-int32 DataIO::writeData(int16 handle, byte *buf, uint16 size) {
-	return file_getHandle(handle)->write(buf, size);
-}
-
 void DataIO::seekData(int16 handle, int32 pos, int16 from) {
 	int32 resPos;
 
@@ -525,14 +500,14 @@
 	file_getHandle(handle)->seek(pos, from);
 }
 
-uint32 DataIO::getPos(int16 handle) {
-	uint32 resPos;
+int32 DataIO::readData(int16 handle, byte *buf, uint16 size) {
+	int32 res;
 
-	resPos = getChunkPos(handle);
-	if (resPos != 0xFFFFFFFF)
-		return resPos;
+	res = readChunk(handle, buf, size);
+	if (res >= 0)
+		return res;
 
-	return file_getHandle(handle)->pos();
+	return file_getHandle(handle)->read(buf, size);
 }
 
 int32 DataIO::getDataSize(const char *name) {

Modified: scummvm/trunk/engines/gob/dataio.h
===================================================================
--- scummvm/trunk/engines/gob/dataio.h	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/dataio.h	2007-07-31 01:43:32 UTC (rev 28349)
@@ -83,13 +83,6 @@
 			Common::File::AccessMode mode = Common::File::kFileReadMode);
 	DataStream *openAsStream(int16 handle, bool dispose = false);
 
-	int32 readData(int16 handle, byte *buf, uint16 size);
-	byte readByte(int16 handle);
-	uint16 readUint16(int16 handle);
-	uint32 readUint32(int16 handle);
-	int32 writeData(int16 handle, byte *buf, uint16 size);
-	void seekData(int16 handle, int32 pos, int16 from);
-	uint32 getPos(int16 handle);
 	int32 getDataSize(const char *name);
 	byte *getData(const char *path);
 	DataStream *getDataStream(const char *path);
@@ -123,6 +116,10 @@
 	uint32 getChunkPos(int16 handle) const;
 	int32 getChunkSize(const char *chunkName);
 
+	uint32 getPos(int16 handle);
+	void seekData(int16 handle, int32 pos, int16 from);
+	int32 readData(int16 handle, byte *buf, uint16 size);
+
 friend class DataStream;
 };
 

Modified: scummvm/trunk/engines/gob/game.cpp
===================================================================
--- scummvm/trunk/engines/gob/game.cpp	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/game.cpp	2007-07-31 01:43:32 UTC (rev 28349)
@@ -174,8 +174,10 @@
 	} else
 		handle = _extHandle;
 
+	DataStream *stream = _vm->_dataIO->openAsStream(handle);
+
 	debugC(7, kDebugFileIO, "off: %d size: %d", offset, tableSize);
-	_vm->_dataIO->seekData(handle, offset + tableSize, SEEK_SET);
+	stream->seek(offset + tableSize);
 	realSize = size;
 	if (isPacked)
 		dataBuf = new byte[size + 2];
@@ -185,11 +187,13 @@
 	dataPtr = dataBuf;
 	while (size > 32000) {
 		// BUG: huge->far conversion. Need normalization?
-		_vm->_dataIO->readData(handle, dataPtr, 32000);
+		stream->read(dataPtr, 32000);
 		size -= 32000;
 		dataPtr += 32000;
 	}
-	_vm->_dataIO->readData(handle, dataPtr, size);
+	stream->read(dataPtr, size);
+
+	delete stream;
 	if (commonHandle != -1) {
 		_vm->_dataIO->closeData(commonHandle);
 		_extHandle = _vm->_dataIO->openData(_curExtFile);
@@ -421,23 +425,26 @@
 	if (_extHandle < 0)
 		return;
 
-	count = _vm->_dataIO->readUint16(_extHandle);
+	DataStream *stream = _vm->_dataIO->openAsStream(_extHandle);
+	count = stream->readUint16LE();
 
-	_vm->_dataIO->seekData(_extHandle, 0, SEEK_SET);
+	stream->seek(0);
 	_extTable = new ExtTable;
 	_extTable->items = 0;
 	if (count)
 		_extTable->items = new ExtItem[count];
 
-	_extTable->itemsCount = _vm->_dataIO->readUint16(_extHandle);
-	_extTable->unknown = _vm->_dataIO->readByte(_extHandle);
+	_extTable->itemsCount = stream->readUint16LE();
+	_extTable->unknown = stream->readByte();
 
 	for (int i = 0; i < count; i++) {
-		_extTable->items[i].offset = _vm->_dataIO->readUint32(_extHandle);
-		_extTable->items[i].size = _vm->_dataIO->readUint16(_extHandle);
-		_extTable->items[i].width = _vm->_dataIO->readUint16(_extHandle);
-		_extTable->items[i].height = _vm->_dataIO->readUint16(_extHandle);
+		_extTable->items[i].offset = stream->readUint32LE();
+		_extTable->items[i].size = stream->readUint16LE();
+		_extTable->items[i].width = stream->readUint16LE();
+		_extTable->items[i].height = stream->readUint16LE();
 	}
+
+	delete stream;
 }
 
 void Game::loadImFile(void) {

Modified: scummvm/trunk/engines/gob/init.cpp
===================================================================
--- scummvm/trunk/engines/gob/init.cpp	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/init.cpp	2007-07-31 01:43:32 UTC (rev 28349)
@@ -147,11 +147,13 @@
 	handle = _vm->_dataIO->openData(buffer);
 
 	if (handle >= 0) {
-		// Get variables count
-		_vm->_dataIO->seekData(handle, 0x2C, SEEK_SET);
-		varsCount = _vm->_dataIO->readUint16(handle);
-		_vm->_dataIO->closeData(handle);
+		DataStream *stream = _vm->_dataIO->openAsStream(handle, true);
 
+		stream->seek(0x2C);
+		varsCount = stream->readUint16LE();
+
+		delete stream;
+
 		_vm->_global->_inter_variables = new byte[varsCount * 4];
 		_vm->_global->_inter_variablesSizes = new byte[varsCount * 4];
 		_vm->_global->clearVars(varsCount);
@@ -178,9 +180,12 @@
 			_vm->_draw->closeScreen();
 		} else if ((imdHandle = _vm->_dataIO->openData("coktel.clt")) >= 0) {
 			_vm->_draw->initScreen();
+
+			stream = _vm->_dataIO->openAsStream(imdHandle, true);
 			_vm->_util->clearPalette();
-			_vm->_dataIO->readData(imdHandle, (byte *) _vm->_draw->_vgaPalette, 768);
-			_vm->_dataIO->closeData(imdHandle);
+			stream->read((byte *) _vm->_draw->_vgaPalette, 768);
+			delete stream;
+
 			imdHandle = _vm->_dataIO->openData("coktel.ims");
 			if (imdHandle >= 0) {
 				byte *sprBuf;

Modified: scummvm/trunk/engines/gob/inter_v1.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v1.cpp	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/inter_v1.cpp	2007-07-31 01:43:32 UTC (rev 28349)
@@ -2225,22 +2225,23 @@
 	WRITE_VAR(1, 1);
 	handle = _vm->_dataIO->openData(_vm->_global->_inter_resStr);
 	if (handle >= 0) {
+		DataStream *stream = _vm->_dataIO->openAsStream(handle, true);
+
 		_vm->_draw->animateCursor(4);
 		if (offset < 0)
-			_vm->_dataIO->seekData(handle, -offset - 1, SEEK_END);
+			stream->seek(-offset - 1, SEEK_END);
 		else
-			_vm->_dataIO->seekData(handle, offset, SEEK_SET);
+			stream->seek(offset);
 
 		if (((dataVar >> 2) == 59) && (size == 4))
-			WRITE_VAR(59, _vm->_dataIO->readUint32(handle));
+			WRITE_VAR(59, stream->readUint32LE());
 		else
-			retSize = _vm->_dataIO->readData(handle,
-					_vm->_global->_inter_variables + dataVar, size);
+			retSize = stream->read(_vm->_global->_inter_variables + dataVar, size);
 
-		_vm->_dataIO->closeData(handle);
-
 		if (retSize == size)
 			WRITE_VAR(1, 0);
+
+		delete stream;
 	}
 
 	if (_vm->_game->_extHandle >= 0)

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2007-07-31 01:21:25 UTC (rev 28348)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2007-07-31 01:43:32 UTC (rev 28349)
@@ -1903,25 +1903,27 @@
 	if (handle < 0)
 		return false;
 
+	DataStream *stream = _vm->_dataIO->openAsStream(handle, true);
+
 	_vm->_draw->animateCursor(4);
 	if (offset < 0)
-		_vm->_dataIO->seekData(handle, -offset - 1, SEEK_END);
+		stream->seek(-offset - 1, SEEK_END);
 	else
-		_vm->_dataIO->seekData(handle, offset, SEEK_SET);
+		stream->seek(offset);
 
 	if (((dataVar >> 2) == 59) && (size == 4)) {
-		WRITE_VAR(59, _vm->_dataIO->readUint32(handle));
+		WRITE_VAR(59, stream->readUint32LE());
 		// The scripts in some versions divide through 256^3 then,
 		// effectively doing a LE->BE conversion
 		if ((_vm->_platform != Common::kPlatformPC) && (VAR(59) < 256))
 			WRITE_VAR(59, SWAP_BYTES_32(VAR(59)));
 	} else
-		retSize = _vm->_dataIO->readData(handle, buf, size);
+		retSize = stream->read(buf, size);
 
 	if (retSize == size)
 		WRITE_VAR(1, 0);
 
-	_vm->_dataIO->closeData(handle);
+	delete stream;
 	return false;
 }
 


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