aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/script_e1.cpp
diff options
context:
space:
mode:
authorTravis Howell2009-03-05 21:38:17 +0000
committerTravis Howell2009-03-05 21:38:17 +0000
commite75178f383edd20ad8ab1b74dead78b2199f9476 (patch)
treea2527fe4740043845bb789d0890b5b8bf0cdb46c /engines/agos/script_e1.cpp
parent05b4370c21b3abf7a1ff6aa83194cf95ab73579c (diff)
downloadscummvm-rg350-e75178f383edd20ad8ab1b74dead78b2199f9476.tar.gz
scummvm-rg350-e75178f383edd20ad8ab1b74dead78b2199f9476.tar.bz2
scummvm-rg350-e75178f383edd20ad8ab1b74dead78b2199f9476.zip
Add minor verb code differences in Elvira 1/2.
svn-id: r39136
Diffstat (limited to 'engines/agos/script_e1.cpp')
-rw-r--r--engines/agos/script_e1.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/engines/agos/script_e1.cpp b/engines/agos/script_e1.cpp
index 15fea99a93..ddc57bac45 100644
--- a/engines/agos/script_e1.cpp
+++ b/engines/agos/script_e1.cpp
@@ -327,7 +327,7 @@ void AGOSEngine_Elvira1::setupOpcodes() {
OPCODE(o_closeWindow),
OPCODE(oe1_menu),
OPCODE(o_invalid),
- OPCODE(o_addBox),
+ OPCODE(oe1_addBox),
/* 236 */
OPCODE(o_delBox),
OPCODE(o_enableBox),
@@ -755,6 +755,40 @@ void AGOSEngine_Elvira1::oe1_menu() {
drawMenuStrip(a, b);
}
+void AGOSEngine_Elvira1::oe1_addBox() {
+ // 235: add item box
+ uint flags = 0;
+ uint id = getVarOrWord();
+ uint params = id / 1000;
+ uint x, y, w, h, verb;
+ Item *item;
+
+ id = id % 1000;
+
+ if (params & 1)
+ flags |= kBFInvertTouch;
+ if (params & 2)
+ flags |= kBFInvertSelect;
+ if (params & 4)
+ flags |= kBFBoxItem;
+ if (params & 8)
+ flags |= kBFToggleBox;
+ if (params & 16)
+ flags |= kBFDragBox;
+
+ x = getVarOrWord();
+ y = getVarOrWord();
+ w = getVarOrWord();
+ h = getVarOrWord();
+ item = getNextItemPtrStrange();
+ verb = getVarOrWord();
+ if (x >= 1000) {
+ verb += 0x4000;
+ x -= 1000;
+ }
+ defineBox(id, x, y, w, h, flags, verb, item);
+}
+
void AGOSEngine_Elvira1::oe1_bitClear() {
// 251: set bit off
int var = getVarOrWord();