aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-09-13 05:25:35 +0000
committerTravis Howell2004-09-13 05:25:35 +0000
commit4b1ba6a7edfc96b694f1dd8a6c73c173ba864652 (patch)
tree160836d8bd51545cceeed27e38b1f61a960c059f /scumm
parent6611493a567b7f7b85208bb56fa931e7efba7df3 (diff)
downloadscummvm-rg350-4b1ba6a7edfc96b694f1dd8a6c73c173ba864652.tar.gz
scummvm-rg350-4b1ba6a7edfc96b694f1dd8a6c73c173ba864652.tar.bz2
scummvm-rg350-4b1ba6a7edfc96b694f1dd8a6c73c173ba864652.zip
Add Missing pop
svn-id: r15088
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h2
-rw-r--r--scumm/script_v72he.cpp23
-rw-r--r--scumm/script_v90he.cpp21
3 files changed, 42 insertions, 4 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 4e5e167788..a1bd6c9fa0 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -738,6 +738,7 @@ protected:
void o72_dimArray();
void o72_dim2dimArray();
void o72_unknownC1();
+ void o72_unknownCF();
void o72_drawWizImage();
void o72_shuffle();
void o72_jumpToScript();
@@ -829,6 +830,7 @@ protected:
void o90_unknown34();
void o90_unknown36();
void o90_unknown37();
+ void o90_unknown3A();
void o90_unknown9E();
};
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index fb3b1dc1b6..462a116152 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -303,7 +303,7 @@ void ScummEngine_v72he::setupOpcodes() {
OPCODE(o6_pickOneOfDefault),
OPCODE(o6_stampObject),
OPCODE(o72_drawWizImage),
- OPCODE(o6_invalid),
+ OPCODE(o72_unknownCF),
/* D0 */
OPCODE(o6_getDateTime),
OPCODE(o6_stopTalking),
@@ -1405,6 +1405,22 @@ void ScummEngine_v72he::o72_drawWizImage() {
}
}
+void ScummEngine_v72he::o72_unknownCF() {
+ //ArrayHeader *ah;
+ byte string[255];
+
+ copyScriptString(string);
+ int len = resStrLen(string) + 1;
+
+ writeVar(0, 0);
+ //ah = defineArray(0, kStringArray, 0, 0, 0, len);
+ defineArray(0, kStringArray, 0, 0, 0, len);
+ writeArray(0, 0, 0, 0);
+ //memcpy(ah->data, string, len);
+
+ push(readVar(0));
+}
+
void ScummEngine_v72he::shuffleArray(int num, int minIdx, int maxIdx) {
int range = maxIdx - minIdx;
int count = range * 2;
@@ -1964,10 +1980,11 @@ void ScummEngine_v72he::o72_unknownF6() {
}
void ScummEngine_v72he::o72_unknownF8() {
- int a = fetchScriptByte();
+ int id = pop();
+ byte subOp = fetchScriptByte();
push(1);
- debug(1,"stub o72_unknownF8(%d)", a);
+ debug(1,"stub o72_unknownF8: subOp %d, id %d", subOp, id);
}
void ScummEngine_v72he::o72_setFilePath() {
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index 117f835821..c087567adb 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -117,7 +117,7 @@ void ScummEngine_v90he::setupOpcodes() {
/* 38 */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o90_unknown3A),
OPCODE(o6_invalid),
/* 3C */
OPCODE(o6_invalid),
@@ -887,6 +887,25 @@ void ScummEngine_v90he::o90_unknown37() {
debug(1,"o90_unknown37 stub");
}
+void ScummEngine_v90he::o90_unknown3A() {
+ // Array related
+ int subOp = fetchScriptByte();
+
+ switch (subOp) {
+ case 129:
+ fetchScriptWord();
+ pop();
+ pop();
+ pop();
+ pop();
+ pop();
+ break;
+ default:
+ error("o90_unknown3A: Unknown case %d", subOp);
+ }
+ debug(1,"o90_unknown3A stub (%d)", subOp);
+}
+
void ScummEngine_v90he::o90_unknown9E() {
int subOp = fetchScriptByte();
subOp -= 57;