diff options
author | Paul Gilbert | 2016-05-08 23:07:53 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-10 16:38:55 -0400 |
commit | bb8f95ba9d08d9e660b22240a59486166011bd0b (patch) | |
tree | 8a9ed93772aaf04dedbd8797f6cb3ceb4f6469dc /engines/titanic/support | |
parent | 9ce6391a94db959f3dde54ed3d0153e000aa3d5a (diff) | |
download | scummvm-rg350-bb8f95ba9d08d9e660b22240a59486166011bd0b.tar.gz scummvm-rg350-bb8f95ba9d08d9e660b22240a59486166011bd0b.tar.bz2 scummvm-rg350-bb8f95ba9d08d9e660b22240a59486166011bd0b.zip |
TITANIC: Implementing vocab load
Diffstat (limited to 'engines/titanic/support')
-rw-r--r-- | engines/titanic/support/simple_file.cpp | 15 | ||||
-rw-r--r-- | engines/titanic/support/simple_file.h | 5 |
2 files changed, 20 insertions, 0 deletions
diff --git a/engines/titanic/support/simple_file.cpp b/engines/titanic/support/simple_file.cpp index b7f666a1ef..18a75864a8 100644 --- a/engines/titanic/support/simple_file.cpp +++ b/engines/titanic/support/simple_file.cpp @@ -78,6 +78,12 @@ size_t SimpleFile::write(const void *src, size_t count) { return _outStream->write(src, count); } +byte SimpleFile::readByte() { + byte b; + safeRead(&b, 1); + return b; +} + CString SimpleFile::readString() { char c; CString result; @@ -368,13 +374,22 @@ bool SimpleFile::scanf(const char *format, ...) { if (!Common::isSpace(c)) return false; } else if (formatStr.hasPrefix("%d")) { + // Read in a number formatStr = CString(formatStr.c_str() + 2); int *param = (int *)va_arg(va, int *); *param = readNumber(); + } else if (formatStr.hasPrefix("%s")) { + // Read in text until the next space + formatStr = CString(formatStr.c_str() + 2); + CString *str = (CString *)va_arg(va, CString *); + str->clear(); + while (!eos() && (c = readByte()) != ' ') + *str += c; } } va_end(va); + return !eos(); } /*------------------------------------------------------------------------*/ diff --git a/engines/titanic/support/simple_file.h b/engines/titanic/support/simple_file.h index 431df016ad..db453c46c7 100644 --- a/engines/titanic/support/simple_file.h +++ b/engines/titanic/support/simple_file.h @@ -87,6 +87,11 @@ public: virtual size_t write(const void *src, size_t count); /** + * Read a byte + */ + byte readByte(); + + /** * Read a string from the file */ CString readString(); |