diff options
author | Matthew Stewart | 2018-07-27 01:59:01 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | f412328181baaac3ec6726de3bd9b914731cc551 (patch) | |
tree | 654036cd532542e22a2ce2be7741d73a411bab9d /engines/startrek/room.cpp | |
parent | b2213cac9b2766b62e29368394837fbe261233d3 (diff) | |
download | scummvm-rg350-f412328181baaac3ec6726de3bd9b914731cc551.tar.gz scummvm-rg350-f412328181baaac3ec6726de3bd9b914731cc551.tar.bz2 scummvm-rg350-f412328181baaac3ec6726de3bd9b914731cc551.zip |
STARTREK: Implement text input boxes
Needed for SINS mission with the keypads
Diffstat (limited to 'engines/startrek/room.cpp')
-rw-r--r-- | engines/startrek/room.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp index b5149b5ecf..a8a4b490f4 100644 --- a/engines/startrek/room.cpp +++ b/engines/startrek/room.cpp @@ -475,9 +475,23 @@ void Room::showGameOverMenu() { // TODO: takes an optional parameter? // TODO: finish. Shouldn't do this within a room due to deletion of current room? } -int Room::showKeypad(const Common::String &code) { - // TODO - return 3; +int Room::showCodeInputBox(const char * const *codes) { + Common::String inputString = _vm->showCodeInputBox(); + + // ENHANCEMENT: Extra condition for "nothing entered" + if (inputString.empty()) + return -1; + + int retval = 0; + int code = 0; + + while (codes[code] != nullptr) { + if (strcmp(codes[code], inputString.c_str()) == 0) + retval = code + 1; + code++; + } + + return retval; } void Room::playVoc(Common::String filename) { |