aboutsummaryrefslogtreecommitdiff
path: root/engines/access/amazon/amazon_scripts.cpp
diff options
context:
space:
mode:
authorStrangerke2014-11-28 13:59:27 +0100
committerPaul Gilbert2014-12-12 22:49:53 -0500
commit27351011799b4c85e0fc7f80acbbbf10dbb78aa9 (patch)
tree6113a2da33f43412fe84b6b1568abe63c3b815e0 /engines/access/amazon/amazon_scripts.cpp
parent3f445384415d18bc4e437c33df67be88dfdb4a0a (diff)
downloadscummvm-rg350-27351011799b4c85e0fc7f80acbbbf10dbb78aa9.tar.gz
scummvm-rg350-27351011799b4c85e0fc7f80acbbbf10dbb78aa9.tar.bz2
scummvm-rg350-27351011799b4c85e0fc7f80acbbbf10dbb78aa9.zip
ACCESS: Finish the implementation of cmdHelp (still a redraw issue)
Diffstat (limited to 'engines/access/amazon/amazon_scripts.cpp')
-rw-r--r--engines/access/amazon/amazon_scripts.cpp47
1 files changed, 45 insertions, 2 deletions
diff --git a/engines/access/amazon/amazon_scripts.cpp b/engines/access/amazon/amazon_scripts.cpp
index ea7df7bcbd..cde1ff8324 100644
--- a/engines/access/amazon/amazon_scripts.cpp
+++ b/engines/access/amazon/amazon_scripts.cpp
@@ -1887,8 +1887,51 @@ void AmazonScripts::cmdHelp() {
if (level < _game->_helpLevel)
_game->_moreHelp = 0;
- _game->drawHelp();
- error("TODO: more cmdHelp");
+ _game->drawHelp(helpMessage);
+
+ while(true) {
+ while(!_vm->shouldQuit() && !_vm->_events->_leftButton)
+ _vm->_events->pollEventsAndWait();
+
+ _vm->_events->debounceLeft();
+
+ static const Common::Rect butn1 = Common::Rect(HELP1COORDS[0][0], HELP1COORDS[0][2], HELP1COORDS[0][1], HELP1COORDS[0][3]);
+ static const Common::Rect butn2 = Common::Rect(HELP1COORDS[1][0], HELP1COORDS[1][2], HELP1COORDS[1][1], HELP1COORDS[1][3]);
+ const Common::Point pt = _vm->_events->_mousePos;
+
+ int choice = -1;
+ if (butn1.contains(pt))
+ choice = 0;
+ else if (butn2.contains(pt))
+ choice = 1;
+
+ if (choice < 0)
+ continue;
+
+ if (choice == 1) {
+ _game->_helpLevel = 0;
+ _game->_moreHelp = 1;
+ _game->_useItem = 0;
+ _vm->_events->hideCursor();
+ _vm->_screen->restoreScreen();
+ _vm->_screen->setPanel(0);
+ _vm->_buffer2.copyFrom(*_vm->_screen);
+ _vm->_screen->restorePalette();
+ _vm->_screen->setPalette();
+ _vm->_events->showCursor();
+ free(_vm->_objectsTable[45]);
+ _vm->_objectsTable[45] = nullptr;
+ _vm->_timers.restoreTimers();
+ break;
+ } else {
+ if ((_game->_moreHelp == 0) || (choice != 0))
+ continue;
+ ++_game->_helpLevel;
+ _game->_useItem = 1;
+ break;
+ }
+ }
+ findNull();
}
void AmazonScripts::cmdCycleBack() {