From 702de7424c1c49ab99494fa5ac0c0268ce1369a0 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 25 Dec 2002 00:04:12 +0000 Subject: more opcodes (we see graphics again, albeit only briefly before it crashes) svn-id: r6106 --- scumm/intern.h | 6 ++++++ scumm/script_v8.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 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 -- cgit v1.2.3