diff options
Diffstat (limited to 'engines/access/amazon')
-rw-r--r-- | engines/access/amazon/amazon_game.cpp | 6 | ||||
-rw-r--r-- | engines/access/amazon/amazon_game.h | 5 | ||||
-rw-r--r-- | engines/access/amazon/amazon_resources.cpp | 7 | ||||
-rw-r--r-- | engines/access/amazon/amazon_resources.h | 3 | ||||
-rw-r--r-- | engines/access/amazon/amazon_scripts.cpp | 29 | ||||
-rw-r--r-- | engines/access/amazon/amazon_scripts.h | 6 |
6 files changed, 52 insertions, 4 deletions
diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp index 663d6996d2..857d1b3551 100644 --- a/engines/access/amazon/amazon_game.cpp +++ b/engines/access/amazon/amazon_game.cpp @@ -51,7 +51,9 @@ AmazonEngine::AmazonEngine(OSystem *syst, const AccessGameDescription *gameDesc) _rawInactiveX = 0; _rawInactiveY = 0; _inactiveYOff = 0; + Common::fill(&_esTabTable[0], &_esTabTable[100], 0); + _hintLevel = 0; } AmazonEngine::~AmazonEngine() { @@ -182,6 +184,10 @@ void AmazonEngine::setupGame() { _player->_playerY = _player->_rawPlayer.y = TRAVEL_POS[_player->_roomNumber][1]; } +void AmazonEngine::drawHelp() { + error("TODO: drawHelp"); +} + } // End of namespace Amazon } // End of namespace Access diff --git a/engines/access/amazon/amazon_game.h b/engines/access/amazon/amazon_game.h index 848af85f30..c331830501 100644 --- a/engines/access/amazon/amazon_game.h +++ b/engines/access/amazon/amazon_game.h @@ -93,10 +93,15 @@ public: int &_aniFlag; int &_allenFlag; int &_noSound; + + // Other game specific fields + int _hintLevel; public: AmazonEngine(OSystem *syst, const AccessGameDescription *gameDesc); virtual ~AmazonEngine(); + + void drawHelp(); }; } // End of namespace Amazon diff --git a/engines/access/amazon/amazon_resources.cpp b/engines/access/amazon/amazon_resources.cpp index b7a2472a3c..1f666e1abb 100644 --- a/engines/access/amazon/amazon_resources.cpp +++ b/engines/access/amazon/amazon_resources.cpp @@ -1187,6 +1187,13 @@ const byte FONT6x6_DATA[] = { 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x4d, 0x4f, 0x56, 0x49, }; +const char *const NO_HELP_MESSAGE = + "WE ARE UNABLE TO PROVIDE YOU WITH ANY MORE HINTS. YOUR IQ \ +HAS DECREASED SO FAR THAT WE CAN NO LONGER PUT THE HINTS IN TERMS \ +YOU CAN UNDERSTAND."; +const char *const NO_HINTS_MESSAGE = + "THE HELP SYSTEM HAS BEEN TURNED OFF FOR THIS GAME."; + } // End of namespace Amazon } // End of namespace Access diff --git a/engines/access/amazon/amazon_resources.h b/engines/access/amazon/amazon_resources.h index 838bd29b70..d618ca54c2 100644 --- a/engines/access/amazon/amazon_resources.h +++ b/engines/access/amazon/amazon_resources.h @@ -49,6 +49,9 @@ extern const int FONT6x6_INDEX[]; extern const byte FONT6x6_DATA[]; +extern const char *const NO_HELP_MESSAGE; +extern const char *const NO_HINTS_MESSAGE; + } // End of namespace Amazon } // End of namespace Access diff --git a/engines/access/amazon/amazon_scripts.cpp b/engines/access/amazon/amazon_scripts.cpp index 38cf9d6a84..104473ac7d 100644 --- a/engines/access/amazon/amazon_scripts.cpp +++ b/engines/access/amazon/amazon_scripts.cpp @@ -22,6 +22,8 @@ #include "common/scummsys.h" #include "access/access.h" +#include "access/amazon/amazon_game.h" +#include "access/amazon/amazon_resources.h" #include "access/amazon/amazon_scripts.h" namespace Access { @@ -29,6 +31,7 @@ namespace Access { namespace Amazon { AmazonScripts::AmazonScripts(AccessEngine *vm) : Scripts(vm) { + _game = (AmazonEngine *)_vm; } void AmazonScripts::executeSpecial(int commandIndex, int param1, int param2) { @@ -75,7 +78,7 @@ typedef void(AmazonScripts::*AmazonScriptMethodPtr)(); void AmazonScripts::executeCommand(int commandIndex) { static const AmazonScriptMethodPtr COMMAND_LIST[] = { - &AmazonScripts::CMDHELP, &AmazonScripts::CMDCYCLEBACK, + &AmazonScripts::cmdHelp, &AmazonScripts::CMDCYCLEBACK, &AmazonScripts::CMDCHAPTER, &AmazonScripts::cmdSetHelp, &AmazonScripts::cmdCenterPanel, &AmazonScripts::cmdMainPanel, &AmazonScripts::CMDRETFLASH @@ -87,8 +90,28 @@ void AmazonScripts::executeCommand(int commandIndex) { Scripts::executeCommand(commandIndex); } -void AmazonScripts::CMDHELP() { - error("TODO CMDHELP"); +void AmazonScripts::cmdHelp() { + Common::String helpMessage = readString(); + + if (_game->_helpLevel == 0) { + _game->_timers.saveTimers(); + _game->_useItem = 0; + + if (_game->_noHints) { + printString(NO_HELP_MESSAGE); + return; + } else if (_game->_hintLevel == 0) { + printString(NO_HINTS_MESSAGE); + return; + } + } + + int level = _game->_hintLevel - 1; + if (level < _game->_helpLevel) + _game->_moreHelp = 0; + + _game->drawHelp(); + error("TODO: more cmdHelp"); } void AmazonScripts::CMDCYCLEBACK() { diff --git a/engines/access/amazon/amazon_scripts.h b/engines/access/amazon/amazon_scripts.h index c9a889e3ad..978ef0105c 100644 --- a/engines/access/amazon/amazon_scripts.h +++ b/engines/access/amazon/amazon_scripts.h @@ -30,12 +30,16 @@ namespace Access { namespace Amazon { +class AmazonEngine; + class AmazonScripts: public Scripts { +private: + AmazonEngine *_game; protected: virtual void executeSpecial(int commandIndex, int param1, int param2); virtual void executeCommand(int commandIndex); - void CMDHELP(); + void cmdHelp(); void CMDCYCLEBACK(); void CMDCHAPTER(); void cmdSetHelp(); |