diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/agi/agi.h | 2 | ||||
-rw-r--r-- | engines/agi/op_cmd.cpp | 3 | ||||
-rw-r--r-- | engines/agi/text.cpp | 4 |
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(); |