From e75178f383edd20ad8ab1b74dead78b2199f9476 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Thu, 5 Mar 2009 21:38:17 +0000 Subject: Add minor verb code differences in Elvira 1/2. svn-id: r39136 --- engines/agos/script_e1.cpp | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'engines/agos/script_e1.cpp') 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(); -- cgit v1.2.3