aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/intern.h2
-rw-r--r--scumm/script_v6.cpp12
2 files changed, 12 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 71b99544c1..23b1ff78ad 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -375,6 +375,8 @@ protected:
void o6_pickVarRandom();
void o6_getDateTime();
void o6_unknownE0();
+ void o6_localizeArray();
+ void o6_shuffle();
byte VAR_VIDEONAME;
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index a8493cf96e..a4cb3496bd 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -309,7 +309,7 @@ void Scumm_v6::setupOpcodes()
OPCODE(o6_getAnimateVariable),
OPCODE(o6_invalid),
/* D4 */
- OPCODE(o6_invalid),
+ OPCODE(o6_shuffle),
OPCODE(o6_jumpToScript),
OPCODE(o6_band),
OPCODE(o6_bor),
@@ -326,7 +326,7 @@ void Scumm_v6::setupOpcodes()
/* E0 */
OPCODE(o6_unknownE0),
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o6_localizeArray),
OPCODE(o6_pickVarRandom),
/* E4 */
OPCODE(o6_invalid),
@@ -2972,6 +2972,10 @@ static void sub_FEE_7822(int num, int16 arg_1, int16 arg_2) {
};
}
+void Scumm_v6::o6_shuffle() {
+ sub_FEE_7822(fetchScriptWord(), pop(), pop());
+}
+
void Scumm_v6::o6_pickVarRandom() {
warning("void Scumm_v6::o6_pickVarRandom()");
@@ -3049,6 +3053,10 @@ void Scumm_v6::o6_unknownE0() {
return;
}
+void Scumm_v6::o6_localizeArray() {
+ warning("stub localizeArray(%d)", pop());
+}
+
void Scumm_v6::decodeParseString(int m, int n)
{
byte b;