[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