diff options
author | Paul Gilbert | 2014-08-17 22:32:26 -0400 |
---|---|---|
committer | Paul Gilbert | 2014-08-17 22:32:26 -0400 |
commit | 7fef53b68ccddcb8ed93c567456c73fe503ee006 (patch) | |
tree | 610d09d0c8b8fab0d99ca01b44d7cfa327bef0c5 | |
parent | 9e98a1edcc7610e9ccdb00026a7d9eb349b0c2ee (diff) | |
download | scummvm-rg350-7fef53b68ccddcb8ed93c567456c73fe503ee006.tar.gz scummvm-rg350-7fef53b68ccddcb8ed93c567456c73fe503ee006.tar.bz2 scummvm-rg350-7fef53b68ccddcb8ed93c567456c73fe503ee006.zip |
ACCESS: Implemented cmdEndObject
-rw-r--r-- | engines/access/resources.cpp | 13 | ||||
-rw-r--r-- | engines/access/resources.h | 2 | ||||
-rw-r--r-- | engines/access/scripts.cpp | 25 | ||||
-rw-r--r-- | engines/access/scripts.h | 4 |
4 files changed, 34 insertions, 10 deletions
diff --git a/engines/access/resources.cpp b/engines/access/resources.cpp index 40daf2b121..f0d74ccd2a 100644 --- a/engines/access/resources.cpp +++ b/engines/access/resources.cpp @@ -76,4 +76,17 @@ const int RMOUSE[10][2] = { { 142, 177 }, { 178, 212 }, { 213, 248 }, { 249, 283 }, { 284, 318 } }; +const char *LOOK_MESSAGE = "LOOKING THERE REVEALS NOTHING OF INTEREST."; +const char *GET_MESSAGE = "YOU CAN'T TAKE THAT."; +const char *OPEN_MESSAGE = "THAT DOESN'T OPEN."; +const char *MOVE_MESSAGE = "THAT WON'T MOVE."; +const char *USE_MESSAGE = "THAT DOESN'T SEEM TO WORK."; +const char *GO_MESSAGE = "YOU CAN'T CLIMB THAT."; +const char *HELP_MESSAGE = "THIS OBJECT REQUIRES NO HINTS"; +const char *TALK_MESSAGE = "THERE SEEMS TO BE NO RESPONSE."; +const char *const GENERAL_MESSAGES[] = { + LOOK_MESSAGE, OPEN_MESSAGE, MOVE_MESSAGE, GET_MESSAGE, USE_MESSAGE, + GO_MESSAGE, TALK_MESSAGE, HELP_MESSAGE, HELP_MESSAGE, USE_MESSAGE +}; + } // End of namespace Access diff --git a/engines/access/resources.h b/engines/access/resources.h index 678cbc0614..241ed3a636 100644 --- a/engines/access/resources.h +++ b/engines/access/resources.h @@ -56,6 +56,8 @@ extern const int OVEROFFDLY[]; extern const int RMOUSE[10][2]; +extern const char *const GENERAL_MESSAGES[]; + } // End of namespace Access #endif /* ACCESS_RESOURCES_H */ diff --git a/engines/access/scripts.cpp b/engines/access/scripts.cpp index 2e4e2adca6..fba947a174 100644 --- a/engines/access/scripts.cpp +++ b/engines/access/scripts.cpp @@ -22,6 +22,7 @@ #include "common/scummsys.h" #include "access/access.h" +#include "access/resources.h" #include "access/scripts.h" #define SCRIPT_START_BYTE 0xE0 @@ -90,7 +91,7 @@ int Scripts::executeScript() { void Scripts::executeCommand(int commandIndex) { static const ScriptMethodPtr COMMAND_LIST[] = { - &Scripts::CMDOBJECT, &Scripts::CMDENDOBJECT, &Scripts::cmdJumpLook, + &Scripts::CMDOBJECT, &Scripts::cmdEndObject, &Scripts::cmdJumpLook, &Scripts::cmdJumpHelp, &Scripts::cmdJumpGet, &Scripts::cmdJumpMove, &Scripts::cmdJumpUse, &Scripts::cmdJumpTalk, &Scripts::cmdNull, &Scripts::cmdPrint, &Scripts::cmdRetPos, &Scripts::cmdAnim, @@ -126,7 +127,9 @@ void Scripts::CMDOBJECT() { _vm->_bubbleBox->load(_data); } -void Scripts::CMDENDOBJECT() { error("TODO ENDOBJECT"); } +void Scripts::cmdEndObject() { + printString(GENERAL_MESSAGES[_vm->_room->_selectCommand]); +} void Scripts::cmdJumpLook() { if (_vm->_room->_selectCommand == 0) @@ -175,18 +178,22 @@ void Scripts::cmdNull() { #define PRINT_TIMER 25 -void Scripts::cmdPrint() { - _vm->_fonts._printOrg = Common::Point(20, 42); - _vm->_fonts._printStart = Common::Point(20, 42); - _vm->_timers[PRINT_TIMER]._timer = 50; - _vm->_timers[PRINT_TIMER]._initTm = 50; - _vm->_timers[PRINT_TIMER]._flag = true; - +void Scripts::cmdPrint() { // Get a text line for display Common::String msg; byte c; while ((c = (char)_data->readByte()) != '\0') msg += c; + + printString(msg); +} + +void Scripts::printString(const Common::String &msg) { + _vm->_fonts._printOrg = Common::Point(20, 42); + _vm->_fonts._printStart = Common::Point(20, 42); + _vm->_timers[PRINT_TIMER]._timer = 50; + _vm->_timers[PRINT_TIMER]._initTm = 50; + _vm->_timers[PRINT_TIMER]._flag = true; // Display the text in a bubble, and wait for a keypress or mouse click _vm->_bubbleBox->placeBubble(msg); diff --git a/engines/access/scripts.h b/engines/access/scripts.h index 70d79c4b65..ac2bae005c 100644 --- a/engines/access/scripts.h +++ b/engines/access/scripts.h @@ -38,13 +38,15 @@ private: const byte *_rawData; Common::MemoryReadStream *_data; int _specialFunction; + + void printString(const Common::String &msg); protected: AccessEngine *_vm; virtual void executeSpecial(int commandIndex, int param1, int param2) = 0; virtual void executeCommand(int commandIndex); void CMDOBJECT(); - void CMDENDOBJECT(); + void cmdEndObject(); void cmdJumpLook(); void cmdJumpHelp(); void cmdJumpGet(); |