diff options
Diffstat (limited to 'engines/simon/vga.cpp')
-rw-r--r-- | engines/simon/vga.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/engines/simon/vga.cpp b/engines/simon/vga.cpp index effa74bb06..03faf53f1b 100644 --- a/engines/simon/vga.cpp +++ b/engines/simon/vga.cpp @@ -152,6 +152,44 @@ void SimonEngine::runVgaScript() { } } +bool SimonEngine::itemIsSiblingOf(uint16 a) { + Item *item; + + CHECK_BOUNDS(a, _objectArray); + + item = _objectArray[a]; + if (item == NULL) + return true; + + return me()->parent == item->parent; +} + +bool SimonEngine::itemIsParentOf(uint16 a, uint16 b) { + Item *item_a, *item_b; + + CHECK_BOUNDS(a, _objectArray); + CHECK_BOUNDS(b, _objectArray); + + item_a = _objectArray[a]; + item_b = _objectArray[b]; + + if (item_a == NULL || item_b == NULL) + return true; + + return derefItem(item_a->parent) == item_b; +} + +bool SimonEngine::vc_maybe_skip_proc_1(uint16 a, int16 b) { + Item *item; + + CHECK_BOUNDS(a, _objectArray); + + item = _objectArray[a]; + if (item == NULL) + return true; + return item->state == b; +} + int SimonEngine::vcReadVarOrWord() { int16 var = vcReadNextWord(); if (var < 0) |