aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/access/resources.cpp13
-rw-r--r--engines/access/resources.h2
-rw-r--r--engines/access/scripts.cpp25
-rw-r--r--engines/access/scripts.h4
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();