diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/supernova/msn_def.h | 2 | ||||
-rw-r--r-- | engines/supernova/state.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index a8c76a49df..884b467350 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -27,6 +27,8 @@ namespace Supernova { const int kScreenWidth = 320; const int kScreenHeight = 200; +const int kFontWidth = 5; +const int kFontHeight = 8; const int kTextSpeed[] = {19, 14, 10, 7, 4}; const int kMsecPerTick = 55; diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index 98230c2fb8..28ba850b60 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -980,12 +980,14 @@ void GameManager::animationOn() { void GameManager::edit(Common::String &input, int x, int y, uint length) { bool isEditing = true; uint cursorIndex = input.size(); + int overdrawWidth = ((length + 1) * kFontWidth > kScreenWidth - x) ? + kScreenWidth - x : (length + 1) * kFontWidth; while (isEditing) { _vm->_textCursorX = x; _vm->_textCursorY = y; _vm->_textColor = COL_EDIT; - _vm->renderBox(x, y - 1, 320 - x, 10, HGR_EDIT); + _vm->renderBox(x, y - 1, overdrawWidth, 9, HGR_EDIT); for (uint i = 0; i < input.size(); ++i) { // Draw char highlight depending on cursor position if (i == cursorIndex) { |