diff options
author | Travis Howell | 2006-10-22 13:20:11 +0000 |
---|---|---|
committer | Travis Howell | 2006-10-22 13:20:11 +0000 |
commit | 2e5210a18c798d611d340e581a51b5a96a5354c7 (patch) | |
tree | 270e6ea7fd87474dd1fcef07f7ef30b04e7c9932 | |
parent | 25c38db499c34807f6b277b8f9a8f1b3d32dbc6d (diff) | |
download | scummvm-rg350-2e5210a18c798d611d340e581a51b5a96a5354c7.tar.gz scummvm-rg350-2e5210a18c798d611d340e581a51b5a96a5354c7.tar.bz2 scummvm-rg350-2e5210a18c798d611d340e581a51b5a96a5354c7.zip |
Add extra opcode for Elvira 2
svn-id: r24438
-rw-r--r-- | engines/agos/agos.h | 1 | ||||
-rw-r--r-- | engines/agos/debug.h | 4 | ||||
-rw-r--r-- | engines/agos/script_e2.cpp | 12 | ||||
-rw-r--r-- | engines/agos/script_ww.cpp | 1 | ||||
-rw-r--r-- | engines/agos/vga.cpp | 1 |
5 files changed, 17 insertions, 2 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h index 363a72242b..cc5c695b90 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -1138,6 +1138,7 @@ public: void oe2_moveDirn(); void oe2_pObj(); void oe2_loadUserGame(); + void oe2_drawItem(); void oe2_setDoorOpen(); void oe2_setDoorClosed(); void oe2_setDoorLocked(); diff --git a/engines/agos/debug.h b/engines/agos/debug.h index d070e5515d..6daeb74304 100644 --- a/engines/agos/debug.h +++ b/engines/agos/debug.h @@ -527,7 +527,7 @@ static const char *const elvira2_opcodeNameTable[256] = { "WWW|MOVE_BOX", /* 112 */ NULL, - NULL, + "IBWW|DRAW_ITEM", "IB|DO_ICONS", "IBJ|IS_CLASS", /* 116 */ @@ -760,7 +760,7 @@ static const char *const waxworks_opcodeNameTable[256] = { "WWW|MOVE_BOX", /* 112 */ NULL, - NULL, + "IBWW|DRAW_ITEM", "IB|DO_ICONS", "IBJ|IS_CLASS", /* 116 */ diff --git a/engines/agos/script_e2.cpp b/engines/agos/script_e2.cpp index 67805423d2..a5ae01dff2 100644 --- a/engines/agos/script_e2.cpp +++ b/engines/agos/script_e2.cpp @@ -51,6 +51,7 @@ void AGOSEngine::setupElvira2Opcodes(OpcodeProc *op) { op[95] = &AGOSEngine::oe1_nextMaster; op[98] = &AGOSEngine::o1_animate; op[99] = &AGOSEngine::o1_stopAnimate; + op[113] = &AGOSEngine::oe2_drawItem; op[123] = &AGOSEngine::oe1_setTime; op[127] = &AGOSEngine::o1_playTune; op[144] = &AGOSEngine::oe2_setDoorOpen; @@ -95,6 +96,17 @@ void AGOSEngine::oe2_loadUserGame() { getStringPtrByID(getNextStringID()); } +void AGOSEngine::oe2_drawItem() { + // 113: draw item + Item *i = getNextItemPtr(); + int a = getVarOrByte(); + int x = getVarOrWord(); + int y = getVarOrWord(); + mouseOff(); + draw_icon_c(_windowArray[a % 8], itemGetIconNumber(i), x, y); + mouseOn(); +} + void AGOSEngine::oe2_setDoorOpen() { // 144: set door open Item *i = getNextItemPtr(); diff --git a/engines/agos/script_ww.cpp b/engines/agos/script_ww.cpp index 662afb3297..fcd73de34a 100644 --- a/engines/agos/script_ww.cpp +++ b/engines/agos/script_ww.cpp @@ -61,6 +61,7 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) { op[99] = &AGOSEngine::o1_stopAnimate; op[105] = &AGOSEngine::oww_menu; op[106] = &AGOSEngine::oww_textMenu; + op[113] = &AGOSEngine::oe2_drawItem; op[123] = &AGOSEngine::oe1_setTime; op[127] = &AGOSEngine::o1_playTune; op[144] = &AGOSEngine::oe2_setDoorOpen; diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp index fa66b41c8c..04f1903a66 100644 --- a/engines/agos/vga.cpp +++ b/engines/agos/vga.cpp @@ -146,6 +146,7 @@ void AGOSEngine::setupElvira2VideoOpcodes(VgaOpcodeProc *op) { op[54] = &AGOSEngine::vc54_dissolveOut; op[57] = &AGOSEngine::vc57_blackPalette; op[56] = &AGOSEngine::vc56_fullScreen; + op[58] = &AGOSEngine::vc58_checkCodeWheel; op[59] = &AGOSEngine::vc59_skipIfNotEGA; } |