aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agi/agi.h2
-rw-r--r--engines/agi/op_cmd.cpp3
-rw-r--r--engines/agi/text.cpp4
3 files changed, 5 insertions, 4 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index c2af0c5c6e..189eb7ddff 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -1076,7 +1076,7 @@ public:
char *agiSprintf(const char *);
void writeStatus();
void writePrompt();
- void clearPrompt();
+ void clearPrompt(bool useBlackBg = false);
void clearLines(int, int, int);
void flushLines(int, int);
bool predictiveDialog();
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index 23ccee2e5d..d1db9564b3 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -1442,7 +1442,8 @@ void cmdPreventInput(AgiGame *state, uint8 *p) {
state->_vm->newInputMode(INPUT_NONE);
state->inputEnabled = false;
- state->_vm->clearPrompt();
+ // Always clear with black background. Fixes bug #3080041.
+ state->_vm->clearPrompt(true);
}
void cmdGetString(AgiGame *state, uint8 *p) {
diff --git a/engines/agi/text.cpp b/engines/agi/text.cpp
index 9ac60c0e67..9ac416e70e 100644
--- a/engines/agi/text.cpp
+++ b/engines/agi/text.cpp
@@ -676,11 +676,11 @@ void AgiEngine::writePrompt() {
_gfx->doUpdate();
}
-void AgiEngine::clearPrompt() {
+void AgiEngine::clearPrompt(bool useBlackBg) {
int l;
l = _game.lineUserInput;
- clearLines(l, l, _game.colorBg);
+ clearLines(l, l, useBlackBg ? 0 : _game.colorBg);
flushLines(l, l);
_gfx->doUpdate();