aboutsummaryrefslogtreecommitdiff
path: root/engines/queen/resource.cpp
diff options
context:
space:
mode:
authorGregory Montoir2007-02-25 22:24:11 +0000
committerGregory Montoir2007-02-25 22:24:11 +0000
commitca597dbf50bbc5c43a07f306e2407dd314411077 (patch)
tree43c20cdd4a3cec2c15e12788a5d271c8a4816cf2 /engines/queen/resource.cpp
parentc9f652dc1fb40f87d35a3700163b5e36dc6df0dd (diff)
downloadscummvm-rg350-ca597dbf50bbc5c43a07f306e2407dd314411077.tar.gz
scummvm-rg350-ca597dbf50bbc5c43a07f306e2407dd314411077.tar.bz2
scummvm-rg350-ca597dbf50bbc5c43a07f306e2407dd314411077.zip
reduced code dup, Queen::LineReader -> SeekableReadStream::readLine
svn-id: r25871
Diffstat (limited to 'engines/queen/resource.cpp')
-rw-r--r--engines/queen/resource.cpp35
1 files changed, 12 insertions, 23 deletions
diff --git a/engines/queen/resource.cpp b/engines/queen/resource.cpp
index a7e029f0ce..0319d90a3f 100644
--- a/engines/queen/resource.cpp
+++ b/engines/queen/resource.cpp
@@ -90,10 +90,6 @@ Resource::~Resource() {
}
ResourceEntry *Resource::resourceEntry(const char *filename) const {
- if (filename[0] == 0 || strlen(filename) >= 14) {
- uint8 *p = 0;
- *p = 0x1234;
- }
assert(filename[0] && strlen(filename) < 14);
Common::String entryName(filename);
@@ -129,6 +125,18 @@ uint8 *Resource::loadFile(const char *filename, uint32 skipBytes, uint32 *size)
return dstBuf;
}
+void Resource::loadTextFile(const char *filename, Common::StringList &stringList) {
+ debug(7, "Resource::loadTextFile('%s')", filename);
+ ResourceEntry *re = resourceEntry(filename);
+ assert(re != NULL);
+ seekResourceFile(re->bundle, re->offset);
+ char buf[512];
+ Common::SeekableSubReadStream stream(&_resourceFile, re->offset, re->offset + re->size);
+ while (stream.readLine(buf, 512)) {
+ stringList.push_back(buf);
+ }
+}
+
bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
memset(ver, 0, sizeof(DetectedGameVersion));
@@ -306,25 +314,6 @@ Common::File *Resource::findSound(const char *filename, uint32 *size) {
return NULL;
}
-LineReader::LineReader(char *buffer, uint32 bufsize) : _buffer(buffer), _bufSize(bufsize), _current(0) {
-}
-
-LineReader::~LineReader() {
- delete[] _buffer;
-}
-
-char *LineReader::nextLine() {
- char *startOfLine = _buffer + _current;
- char *curPos = startOfLine;
- while (curPos < _buffer + _bufSize && *curPos++ != 0xd) ;
- *(curPos - 1) = '\0'; // '\r'
- if (curPos < _buffer + _bufSize) {
- *curPos = '\0'; // '\n'
- _current = (curPos - _buffer) + 1;
- }
- return startOfLine;
-}
-
} // End of namespace Queen
#ifdef PALMOS_68K