aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-05-31 09:21:15 +0000
committerMartin Kiewitz2010-05-31 09:21:15 +0000
commit7001d3e6157dc9fe601a5f0e2195a367755a344b (patch)
tree94f4e9cf9c6dcb43c42b9ef030400d3e352c12ce
parent66d4bddb30498419cebf0478a83b77ca3abb8131 (diff)
downloadscummvm-rg350-7001d3e6157dc9fe601a5f0e2195a367755a344b.tar.gz
scummvm-rg350-7001d3e6157dc9fe601a5f0e2195a367755a344b.tar.bz2
scummvm-rg350-7001d3e6157dc9fe601a5f0e2195a367755a344b.zip
SCI: when getting invalid chars in kReadNumber don't error() out, but create a warning - we get invalid chars in the intro of lsl5, cause currently unknown
svn-id: r49344
-rw-r--r--engines/sci/engine/kstring.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp
index 13ec1bfc88..69090c4335 100644
--- a/engines/sci/engine/kstring.cpp
+++ b/engines/sci/engine/kstring.cpp
@@ -151,9 +151,13 @@ reg_t kReadNumber(EngineState *s, int argc, reg_t *argv) {
source++;
}
while (*source) {
+ if ((*source < '0') || (*source > '9')) {
+ // TODO: this happens in lsl5 right in the intro -> we get '1' '3' 0xCD 0xCD 0xCD 0xCD 0xCD
+ // find out why this happens and fix it
+ warning("Invalid character in kReadNumber input");
+ break;
+ }
result *= 10;
- if ((*source < '0') || (*source > '9'))
- error("Invalid character in kReadNumber input");
result += *source - 0x30;
source++;
}