aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v7he.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2004-06-05 02:20:40 +0000
committerEugene Sandulenko2004-06-05 02:20:40 +0000
commit33407c63d800035921d36e131508e1078cdf0d28 (patch)
tree1fcc05209dc6d0cae72204a1e22bf8cebbacd1f2 /scumm/script_v7he.cpp
parent9bfd778b54510f82f2447ee133ac9f782e01482c (diff)
downloadscummvm-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.cpp34
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() {