aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/intern.h6
-rw-r--r--scumm/script_v8.cpp51
2 files changed, 49 insertions, 8 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 30ce168d00..4ec16ea0ab 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -418,6 +418,7 @@ protected:
void o8_printCursor();
void o8_printDebug();
void o8_printSystem();
+ void o8_blastText();
void o8_cursorCommand();
void o8_resourceRoutines();
@@ -430,6 +431,11 @@ protected:
void o8_system();
void o8_kludge();
void o8_kludge2();
+
+ void o8_getObjectImageX();
+ void o8_getObjectImageY();
+ void o8_getObjectImageWidth();
+ void o8_getObjectImageHeight();
};
diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp
index bff070757f..a1326158b4 100644
--- a/scumm/script_v8.cpp
+++ b/scumm/script_v8.cpp
@@ -214,9 +214,9 @@ void Scumm_v8::setupOpcodes()
OPCODE(o6_setState),
OPCODE(o6_setOwner),
/* 8C */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o6_panCameraTo),
+ OPCODE(o6_actorFollowCamera),
+ OPCODE(o6_setCameraAt),
OPCODE(o6_invalid),
/* 90 */
OPCODE(o6_invalid),
@@ -227,7 +227,7 @@ void Scumm_v8::setupOpcodes()
OPCODE(o8_printCursor),
OPCODE(o8_printDebug),
OPCODE(o8_printSystem),
- OPCODE(o6_invalid),
+ OPCODE(o8_blastText),
/* 98 */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
@@ -339,10 +339,10 @@ void Scumm_v8::setupOpcodes()
OPCODE(o6_distObjectObject),
OPCODE(o6_distPtPt),
/* F0 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o8_getObjectImageX),
+ OPCODE(o8_getObjectImageY),
+ OPCODE(o8_getObjectImageWidth),
+ OPCODE(o8_getObjectImageHeight),
/* F4 */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
@@ -645,24 +645,34 @@ void Scumm_v8::o8_arrayOps()
void Scumm_v8::o8_printLine()
{
+ // FIXME
decodeParseString(0, 0);
}
void Scumm_v8::o8_printCursor()
{
+ // FIXME
decodeParseString(1, 0);
}
void Scumm_v8::o8_printDebug()
{
+ // FIXME
decodeParseString(2, 0);
}
void Scumm_v8::o8_printSystem()
{
+ // FIXME
decodeParseString(3, 0);
}
+void Scumm_v8::o8_blastText()
+{
+ // FIXME
+ decodeParseString(2, 0);
+}
+
void Scumm_v8::o8_cursorCommand()
{
// TODO
@@ -1170,6 +1180,31 @@ void Scumm_v8::o8_kludge2()
}
}
+void Scumm_v8::o8_getObjectImageX()
+{
+ int i = getObjectIndex(pop());
+ push(_objs[i].x_pos);
+}
+
+void Scumm_v8::o8_getObjectImageY()
+{
+ int i = getObjectIndex(pop());
+ push(_objs[i].y_pos);
+}
+
+void Scumm_v8::o8_getObjectImageWidth()
+{
+ int i = getObjectIndex(pop());
+ push(_objs[i].width);
+}
+
+void Scumm_v8::o8_getObjectImageHeight()
+{
+ int i = getObjectIndex(pop());
+ push(_objs[i].height);
+}
+
+
/*
From http://scummrev.mixnmojo.com/specs/CMIOpcodes.shtml