aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2011-09-26 00:11:45 +0300
committerFilippos Karapetis2011-09-26 00:11:45 +0300
commitbd6a05bdd4e71548aadc2c846b6ab16d4d486a2e (patch)
tree738226c08fb6dae17821195655546136fa7ad0fe /engines
parentecddcc12b77b318304fd8f0d323aaa64a4b46aa5 (diff)
downloadscummvm-rg350-bd6a05bdd4e71548aadc2c846b6ab16d4d486a2e.tar.gz
scummvm-rg350-bd6a05bdd4e71548aadc2c846b6ab16d4d486a2e.tar.bz2
scummvm-rg350-bd6a05bdd4e71548aadc2c846b6ab16d4d486a2e.zip
AGI: Fix bug #3080041 - "AGI Mother Goose: White bar in intro"
Diffstat (limited to 'engines')
-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();