aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/room.cpp
diff options
context:
space:
mode:
authorMatthew Stewart2018-07-27 01:59:01 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commitf412328181baaac3ec6726de3bd9b914731cc551 (patch)
tree654036cd532542e22a2ce2be7741d73a411bab9d /engines/startrek/room.cpp
parentb2213cac9b2766b62e29368394837fbe261233d3 (diff)
downloadscummvm-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.cpp20
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) {