diff options
author | Eugene Sandulenko | 2004-06-05 02:20:40 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2004-06-05 02:20:40 +0000 |
commit | 33407c63d800035921d36e131508e1078cdf0d28 (patch) | |
tree | 1fcc05209dc6d0cae72204a1e22bf8cebbacd1f2 /scumm/script_v7he.cpp | |
parent | 9bfd778b54510f82f2447ee133ac9f782e01482c (diff) | |
download | scummvm-rg350-33407c63d800035921d36e131508e1078cdf0d28.tar.gz scummvm-rg350-33407c63d800035921d36e131508e1078cdf0d28.tar.bz2 scummvm-rg350-33407c63d800035921d36e131508e1078cdf0d28.zip |
Implement o7_readINI(), well, we pretend that we don't have .ini file.
Fix bug in stringLen() function.
svn-id: r13931
Diffstat (limited to 'scumm/script_v7he.cpp')
-rw-r--r-- | scumm/script_v7he.cpp | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp index 896240e4cb..705b0df951 100644 --- a/scumm/script_v7he.cpp +++ b/scumm/script_v7he.cpp @@ -386,6 +386,10 @@ const char *ScummEngine_v7he::getOpcodeDesc(byte i) { void ScummEngine_v7he::o7_objectX() { + if (_heversion <= 71) { + o6_invalid(); + } + int object = pop(); int objnum = getObjectIndex(object); @@ -399,6 +403,10 @@ void ScummEngine_v7he::o7_objectX() { void ScummEngine_v7he::o7_objectY() { + if (_heversion <= 71) { + o6_invalid(); + } + int object = pop(); int objnum = getObjectIndex(object); @@ -453,7 +461,7 @@ byte ScummEngine_v7he::stringLen(byte *ptr) { c = *ptr++; if (len == c) - return 1; + return 0; do { len++; @@ -464,18 +472,32 @@ byte ScummEngine_v7he::stringLen(byte *ptr) { c = *ptr++; } while (c); - return len+1; + return len; } void ScummEngine_v7he::o7_readINI() { int len; + int type; + int retval; + // we pretend that we don't have .ini file len = resStrLen(_scriptPointer); - debug(1, "stub o7_readINI(\"%s\")", _scriptPointer); _scriptPointer += len + 1; - pop(); - push(0); - + type = pop(); + + switch (type) { + case 1: // number + push(0); + break; + case 2: // string + defineArray(0, 4, 0, 0); + retval = readVar(0); + writeArray(0, 0, 0, 0); + push(retval); // var ID string + break; + default: + warning("o7_readINI(..., %d): read-ini string not implemented", type); + } } void ScummEngine_v7he::o7_unknownF4() { |