aboutsummaryrefslogtreecommitdiff
path: root/queen
diff options
context:
space:
mode:
authorGregory Montoir2004-01-13 14:43:13 +0000
committerGregory Montoir2004-01-13 14:43:13 +0000
commit2f85714c605dfbe722d7e2b3d797aebd7808f3e1 (patch)
tree6f3bf45ecf351f2b465aa4597f5b6eb4eab92fae /queen
parentc39aa04c318b991337daecf7e348ad6044656b36 (diff)
downloadscummvm-rg350-2f85714c605dfbe722d7e2b3d797aebd7808f3e1.tar.gz
scummvm-rg350-2f85714c605dfbe722d7e2b3d797aebd7808f3e1.tar.bz2
scummvm-rg350-2f85714c605dfbe722d7e2b3d797aebd7808f3e1.zip
- wrong sentence was spoken when Joe was trying to 'pick up' a person
- clear command before switching rooms - clear texts at the end of cutaway (fix minor glitch in interview intro) svn-id: r12361
Diffstat (limited to 'queen')
-rw-r--r--queen/command.cpp5
-rw-r--r--queen/cutaway.cpp3
-rw-r--r--queen/display.cpp2
-rw-r--r--queen/queen.cpp1
4 files changed, 7 insertions, 4 deletions
diff --git a/queen/command.cpp b/queen/command.cpp
index 8d4759e96c..67e43d237f 100644
--- a/queen/command.cpp
+++ b/queen/command.cpp
@@ -95,11 +95,11 @@ void CmdState::init() {
Command::Command(QueenEngine *vm)
: _vm(vm) {
-
_cmdText._vm = vm;
}
void Command::clear(bool clearTexts) {
+ debug(6, "Command::clear(%d)", clearTexts);
_cmdText.clear();
if (clearTexts) {
_vm->display()->clearTexts(CmdText::COMMAND_Y_POS, CmdText::COMMAND_Y_POS);
@@ -152,6 +152,7 @@ void Command::executeCurrentAction() {
if (comMax == 0) {
sayInvalidAction(_state.selAction, _state.subject[0], _state.subject[1]);
+ clear(true);
cleanupCurrentAction();
return;
}
@@ -852,7 +853,7 @@ void Command::sayInvalidAction(Verb action, int16 subj1, int16 subj2) {
if (subj1 < 0) {
_vm->logic()->makeJoeSpeak(14);
} else {
- int16 img = _vm->logic()->objectData(subj2)->image;
+ int16 img = _vm->logic()->objectData(subj1)->image;
if (img == -4 || img == -3) {
// Trying to get a person
_vm->logic()->makeJoeSpeak(20);
diff --git a/queen/cutaway.cpp b/queen/cutaway.cpp
index b9aa46b1a0..78d301d5ef 100644
--- a/queen/cutaway.cpp
+++ b/queen/cutaway.cpp
@@ -965,6 +965,9 @@ void Cutaway::run(char *nextFilename) {
}
} // for()
+
+ _vm->display()->clearTexts(0, 198);
+ // XXX lines 1887-1895 in cutaway.c
stop();
diff --git a/queen/display.cpp b/queen/display.cpp
index e809f6ce87..c3b70dc220 100644
--- a/queen/display.cpp
+++ b/queen/display.cpp
@@ -749,7 +749,7 @@ void Display::horizontalScroll(int16 scroll) {
}
void Display::setDirtyBlock(uint16 x, uint16 y, uint16 w, uint16 h) {
- if (!_fullRefresh) {
+ if (_fullRefresh < 2) {
uint16 ex = (x + w - 1) / D_BLOCK_W;
uint16 ey = (y + h - 1) / D_BLOCK_H;
x /= D_BLOCK_W;
diff --git a/queen/queen.cpp b/queen/queen.cpp
index 82cc858956..61cae4e2e4 100644
--- a/queen/queen.cpp
+++ b/queen/queen.cpp
@@ -316,7 +316,6 @@ void QueenEngine::go() {
for (;;) {
// queen.c lines 4080-4104
if (_logic->newRoom() > 0) {
- _display->clearTexts(151, 151);
_logic->update();
_logic->oldRoom(_logic->currentRoom());
_logic->currentRoom(_logic->newRoom());