aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/intern.h4
-rw-r--r--scumm/script_v2.cpp7
-rw-r--r--scumm/vars.cpp3
3 files changed, 11 insertions, 3 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index d00399fcfc..7be574c5fc 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -278,6 +278,10 @@ protected:
byte VAR_SENTENCE_VERB;
byte VAR_SENTENCE_OBJECT1;
byte VAR_SENTENCE_OBJECT2;
+
+ byte VAR_ACTIVE_VERB;
+ byte VAR_ACTIVE_OBJECT1;
+ byte VAR_ACTIVE_OBJECT2;
};
class Scumm_v4 : public Scumm_v3 {
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 3bd005b13d..39762e6597 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -853,9 +853,9 @@ void Scumm_v2::o2_doSentence() {
warning("TODO o2_doSentence(%d, %d, %d): execute", st->verb, st->objectA, st->objectB);
// FIXME / TODO: The following is hackish, and probably incomplete, but it works somewhat.
- _scummVars[8] = st->verb;
- _scummVars[9] = st->objectA;
- _scummVars[10] = st->objectB;
+ _scummVars[VAR_ACTIVE_VERB] = st->verb;
+ _scummVars[VAR_ACTIVE_OBJECT1] = st->objectA;
+ _scummVars[VAR_ACTIVE_OBJECT2] = st->objectB;
runVerbCode(st->objectA, st->verb, 0, 0, NULL);
break;
@@ -867,6 +867,7 @@ void Scumm_v2::o2_doSentence() {
_scummVars[VAR_SENTENCE_VERB] = st->verb;
_scummVars[VAR_SENTENCE_OBJECT1] = st->objectA;
_scummVars[VAR_SENTENCE_OBJECT2] = st->objectB;
+
o2_drawSentence();
break;
}
diff --git a/scumm/vars.cpp b/scumm/vars.cpp
index 42179556a7..9940fa5cc5 100644
--- a/scumm/vars.cpp
+++ b/scumm/vars.cpp
@@ -106,6 +106,9 @@ void Scumm_v2::setupScummVars() {
VAR_OVERRIDE = 5;
VAR_MACHINE_SPEED = 6;
VAR_CHARCOUNT = 7;
+ VAR_ACTIVE_VERB = 8;
+ VAR_ACTIVE_OBJECT1 = 9;
+ VAR_ACTIVE_OBJECT2 = 10;
VAR_NUM_ACTOR = 11;
VAR_CURRENT_LIGHTS = 12;
VAR_CURRENTDRIVE = 13;