diff --git a/saga/input.cpp b/saga/input.cpp index b3dfbad6979..7d2a2664c52 100644 --- a/saga/input.cpp +++ b/saga/input.cpp @@ -47,6 +47,11 @@ int SagaEngine::processInput() { if (event.kbd.keycode == 'd') _console->attach(); } + if (_interface->_textInput) { + _interface->processAscii(event.kbd.ascii); + return SUCCESS; + } + switch (event.kbd.keycode) { case '#': case '`': diff --git a/saga/interface.cpp b/saga/interface.cpp index 534d48a269d..3e2f8484206 100644 --- a/saga/interface.cpp +++ b/saga/interface.cpp @@ -858,7 +858,8 @@ void Interface::processTextInput(uint16 ascii) { default: if (((ascii >= 'a') && (ascii <='z')) || ((ascii >= '0') && (ascii <='9')) || - ((ascii >= 'A') && (ascii <='Z'))) { + ((ascii >= 'A') && (ascii <='Z')) || + (ascii == ' ')) { if (_textInputStringLength < SAVE_TITLE_SIZE - 1) { ch[0] = ascii; tempWidth = _vm->_font->getStringWidth(SMALL_FONT_ID, ch, 0, 0); diff --git a/saga/interface.h b/saga/interface.h index cd20655e43e..b6b559efcae 100644 --- a/saga/interface.h +++ b/saga/interface.h @@ -212,6 +212,8 @@ public: bool processAscii(uint16 ascii); void processKeyUp(uint16 ascii); + bool _textInput; + private: static void textInputRepeatCallback(void *refCon); @@ -245,6 +247,7 @@ public: } void saveState(Common::OutSaveFile *out); void loadState(Common::InSaveFile *in); + private: void handleMainUpdate(const Point& mousePoint); // main panel update void handleMainClick(const Point& mousePoint); // main panel click @@ -395,7 +398,6 @@ private: Rect _optionSaveRectSlider; Rect _optionSaveRectBottom; - bool _textInput; char _textInputString[SAVE_TITLE_SIZE]; uint _textInputStringLength; uint _textInputPos;