aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2005-04-10 13:16:49 +0000
committerMax Horn2005-04-10 13:16:49 +0000
commit0553720ca0cf56b5d755bd824a7f0afd79db3060 (patch)
tree8c202bb09027cc26e0a14c42c644b8460bc30cee
parent232860bc44f6fc6706e554288992483ce0966918 (diff)
downloadscummvm-rg350-0553720ca0cf56b5d755bd824a7f0afd79db3060.tar.gz
scummvm-rg350-0553720ca0cf56b5d755bd824a7f0afd79db3060.tar.bz2
scummvm-rg350-0553720ca0cf56b5d755bd824a7f0afd79db3060.zip
Read the RNAM data (might be useful for debugging)
svn-id: r17510
-rw-r--r--scumm/resource.cpp19
-rw-r--r--scumm/resource_v4.cpp12
2 files changed, 22 insertions, 9 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp
index 43199daeff..781195d43c 100644
--- a/scumm/resource.cpp
+++ b/scumm/resource.cpp
@@ -345,10 +345,15 @@ void ScummEngine::readIndexFile() {
break;
case MKID('RNAM'):
- // Names of rooms. Maybe we should read them and put them
- // into a table, for use by the debugger?
- _fileHandle->seek(itemsize - 8, SEEK_CUR);
- debug(9, "found RNAM block, skipping");
+ // Names of rooms. Maybe we should put them into a table, for use by the debugger?
+ for (int room; (room = _fileHandle->readByte()); ) {
+ char buf[10];
+ _fileHandle->read(buf, 9);
+ buf[9] = 0;
+ for (i = 0; i < 9; i++)
+ buf[i] ^= 0xFF;
+ debug(5, "Room %d: '%s'\n", room, buf);
+ }
break;
case MKID('DLFL'):
@@ -994,7 +999,8 @@ void ScummEngine_v5::readMAXS(int blockSize) {
void ScummEngine_v8::readMAXS(int blockSize) {
debug(9, "readMAXS: MAXS has blocksize %d", blockSize);
- _fileHandle->seek(50 + 50, SEEK_CUR); // 176 - 8
+ _fileHandle->seek(50, SEEK_CUR); // Skip over SCUMM engine version
+ _fileHandle->seek(50, SEEK_CUR); // Skip over data file version
_numVariables = _fileHandle->readUint32LE(); // 1500
_numBitVariables = _fileHandle->readUint32LE(); // 2048
_fileHandle->readUint32LE(); // 40
@@ -1023,7 +1029,8 @@ void ScummEngine_v8::readMAXS(int blockSize) {
void ScummEngine_v7::readMAXS(int blockSize) {
debug(9, "readMAXS: MAXS has blocksize %d", blockSize);
- _fileHandle->seek(50 + 50, SEEK_CUR);
+ _fileHandle->seek(50, SEEK_CUR); // Skip over SCUMM engine version
+ _fileHandle->seek(50, SEEK_CUR); // Skip over data file version
_numVariables = _fileHandle->readUint16LE();
_numBitVariables = _fileHandle->readUint16LE();
_fileHandle->readUint16LE();
diff --git a/scumm/resource_v4.cpp b/scumm/resource_v4.cpp
index afcb39a7e8..a17b0ef7eb 100644
--- a/scumm/resource_v4.cpp
+++ b/scumm/resource_v4.cpp
@@ -87,9 +87,15 @@ void ScummEngine_v4::readIndexFile() {
switch (blocktype) {
case 0x4E52: // 'NR'
- // Names of rooms. Maybe we should read them and put them
- // into a table, for use by the debugger?
- _fileHandle->seek(itemsize - 6, SEEK_CUR);
+ // Names of rooms. Maybe we should put them into a table, for use by the debugger?
+ for (int room; (room = _fileHandle->readByte()); ) {
+ char buf[10];
+ _fileHandle->read(buf, 9);
+ buf[9] = 0;
+ for (int i = 0; i < 9; i++)
+ buf[i] ^= 0xFF;
+ debug(5, "Room %d: '%s'\n", room, buf);
+ }
break;
case 0x5230: // 'R0'