diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index 902f057ebee6..25986f28bad3 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -57,6 +57,7 @@ AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription * _sound = nullptr; _nim = nullptr; _ghostroom = nullptr; + _help = nullptr; _platform = gd->desc.platform; initVariables(); @@ -81,6 +82,7 @@ AvalancheEngine::~AvalancheEngine() { delete _sound; delete _nim; delete _ghostroom; + delete _help; for (int i = 0; i < 31; i++) { for (int j = 0; j < 2; j++) { @@ -165,6 +167,7 @@ Common::ErrorCode AvalancheEngine::initialize() { _sound = new SoundHandler(this); _nim = new Nim(this); _ghostroom = new GhostRoom(this); + _help = new Help(this); _graphics->init(); _dialogs->init(); diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h index 0e19d7cfe223..dfe48b890fa5 100644 --- a/engines/avalanche/avalanche.h +++ b/engines/avalanche/avalanche.h @@ -44,6 +44,7 @@ #include "avalanche/nim.h" #include "avalanche/clock.h" #include "avalanche/ghostroom.h" +#include "avalanche/help.h" #include "common/serializer.h" @@ -89,6 +90,7 @@ class AvalancheEngine : public Engine { SoundHandler *_sound; Nim *_nim; GhostRoom *_ghostroom; + Help *_help; OSystem *_system; diff --git a/engines/avalanche/help.cpp b/engines/avalanche/help.cpp new file mode 100644 index 000000000000..1faa91ccce50 --- /dev/null +++ b/engines/avalanche/help.cpp @@ -0,0 +1,70 @@ +/* ScummVM - Graphic Adventure Engine +* +* ScummVM is the legal property of its developers, whose names +* are too numerous to list here. Please refer to the COPYRIGHT +* file distributed with this source distribution. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. + +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. + +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +*/ + +/* +* This code is based on the original source code of Lord Avalot d'Argent version 1.3. +* Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman. +*/ + +/* Original name: HELPER The help system unit. */ + +#include "avalanche/avalanche.h" +#include "avalanche/help.h" + +namespace Avalanche { + +Help::Help(AvalancheEngine *vm) { + _vm = vm; + + _highlightWas = 0; +} + +void Help::plotButton(int8 y, byte which) { + warning("STUB: Help::plotButton()"); +} + +void Help::getMe(byte which) { + warning("STUB: Help::getMe()"); +} + +Common::String Help::getLine() { + warning("STUB: Help::getLine()"); + return "STUB: Help::getLine()"; +} + +byte Help::checkMouse() { + warning("STUB: Help::checkMouse()"); + return 0; +} + +void Help::continueHelp() { + warning("STUB: Help::continueHelp()"); +} + +/** +* @remarks Originally called 'boot_help' +*/ +void Help::run() { + warning("STUB: Help::run()"); +} + +} // End of namespace Avalanche diff --git a/engines/avalanche/help.h b/engines/avalanche/help.h new file mode 100644 index 000000000000..f2a2656de222 --- /dev/null +++ b/engines/avalanche/help.h @@ -0,0 +1,61 @@ +/* ScummVM - Graphic Adventure Engine +* +* ScummVM is the legal property of its developers, whose names +* are too numerous to list here. Please refer to the COPYRIGHT +* file distributed with this source distribution. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. + +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. + +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +* +*/ + +/* +* This code is based on the original source code of Lord Avalot d'Argent version 1.3. +* Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman. +*/ + +/* Original name: HELPER The help system unit. */ + +#ifndef AVALANCHE_HELP_H +#define AVALANCHE_HELP_H + +namespace Avalanche { +class AvalancheEngine; + +class Help { +public: + Help(AvalancheEngine *vm); + + void run(); + +private: + struct Button { + byte _trigger, _whither; + }; + + AvalancheEngine *_vm; + + Button _buttons[10]; + byte _highlightWas; + + void plotButton(int8 y, byte which); + void getMe(byte which); + Common::String getLine(); // It was a nested function in getMe(). + byte checkMouse(); // Returns clicked-on button, or 0 if none. + void continueHelp(); +}; + +} // End of namespace Avalanche + +#endif // AVALANCHE_HELP_H diff --git a/engines/avalanche/module.mk b/engines/avalanche/module.mk index 6cc5b6684bc5..97ac2b76881e 100644 --- a/engines/avalanche/module.mk +++ b/engines/avalanche/module.mk @@ -18,7 +18,8 @@ MODULE_OBJS = \ timer.o \ nim.o \ clock.o \ - ghostroom.o + ghostroom.o \ + help.o # This module can be built as a plugin ifeq ($(ENABLE_AVALANCHE), DYNAMIC_PLUGIN) diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp index b0524a0d7e11..1a9585e2a3b5 100644 --- a/engines/avalanche/parser.cpp +++ b/engines/avalanche/parser.cpp @@ -2043,8 +2043,7 @@ void Parser::doThat() { } break; case kVerbCodeHelp: - // boot_help(); - warning("STUB: Parser::doThat() - case kVerbCodehelp"); + _vm->_help->run(); break; case kVerbCodeLarrypass: _vm->_dialogs->displayText("Wrong game!");