diff options
author | Nicola Mettifogo | 2007-04-03 22:03:21 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2007-04-03 22:03:21 +0000 |
commit | e3c25e6d203d22405ed406cd063b28a1aae11074 (patch) | |
tree | 09965b9a5e25f3b00ff0a5838a3ab937c3809496 /engines/parallaction/parser.cpp | |
parent | 4c151928fa4cbf61f02c424fe98f7473e96e4d39 (diff) | |
download | scummvm-rg350-e3c25e6d203d22405ed406cd063b28a1aae11074.tar.gz scummvm-rg350-e3c25e6d203d22405ed406cd063b28a1aae11074.tar.bz2 scummvm-rg350-e3c25e6d203d22405ed406cd063b28a1aae11074.zip |
- added a new archive member variable to Disk, to decouple resource archives from location archives
- made Script use a stream as input with overall simplification of Disk routines
svn-id: r26379
Diffstat (limited to 'engines/parallaction/parser.cpp')
-rw-r--r-- | engines/parallaction/parser.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/engines/parallaction/parser.cpp b/engines/parallaction/parser.cpp index ee420b2e5f..45b19544a3 100644 --- a/engines/parallaction/parser.cpp +++ b/engines/parallaction/parser.cpp @@ -29,13 +29,12 @@ namespace Parallaction { char _tokens[20][40]; -Script::Script(const char* s, bool disposeSource) : _src(s), _disposeSource(disposeSource) { - _pos = const_cast<char*>(_src); +Script::Script(Common::SeekableReadStream *input, bool disposeSource) : _input(input), _disposeSource(disposeSource) { } Script::~Script() { if (_disposeSource) - free(const_cast<char*>(_src)); + delete _input; } char *Script::readLine(char *buf, size_t bufSize) { @@ -44,12 +43,13 @@ char *Script::readLine(char *buf, size_t bufSize) { char v2 = 0; for ( _si = 0; _si<bufSize; _si++) { - v2 = *_pos++; - if (v2 == 0xA || v2 == -1) break; - if (v2 != -1 && _si < bufSize) buf[_si] = v2; + v2 = _input->readSByte(); + + if (v2 == 0xA || _input->eos()) break; + if (!_input->eos() && _si < bufSize) buf[_si] = v2; } - if (_si == 0 && v2 == -1) + if (_si == 0 && _input->eos()) return 0; buf[_si] = 0xA; |