diff options
Diffstat (limited to 'engines/hugo/schedule.cpp')
-rw-r--r-- | engines/hugo/schedule.cpp | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/engines/hugo/schedule.cpp b/engines/hugo/schedule.cpp index 45a2b77826..ca1583921e 100644 --- a/engines/hugo/schedule.cpp +++ b/engines/hugo/schedule.cpp @@ -1529,28 +1529,22 @@ void Scheduler_v1d::runScheduler() { } void Scheduler_v1d::promptAction(act *action) { - Utils::promptBox(_vm->_file->fetchString(action->a3.promptIndex)); - - warning("STUB: doAction(act3)"); - // TODO: The answer of the player is not handled currently! Once it'll be read in the messageBox, uncomment this block -#if 0 - char response[256]; - // TODO: Put user input in response - - Utils::strlwr(response); - if (action->a3.encodedFl) { - warning("Encrypted flag set"); - decodeString(response); - } + Common::String response; + + response = Utils::promptBox(_vm->_file->fetchString(action->a3.promptIndex)); + + response.toLowercase(); + + char resp[256]; + strncpy(resp, response.c_str(), 256); + + if (action->a3.encodedFl) + decodeString(resp); - if (strstr(response, _vm->_file->fetchString(action->a3.responsePtr[0])) + if (strstr(resp, _vm->_file->fetchString(action->a3.responsePtr[0]))) insertActionList(action->a3.actPassIndex); else insertActionList(action->a3.actFailIndex); -#endif - - // HACK: As the answer is not read, currently it's always considered correct - insertActionList(action->a3.actPassIndex); } /** @@ -1578,19 +1572,22 @@ const char *Scheduler_v2d::getCypher() const { } void Scheduler_v2d::promptAction(act *action) { - Utils::promptBox(_vm->_file->fetchString(action->a3.promptIndex)); - warning("STUB: doAction(act3), expecting answer %s", _vm->_file->fetchString(action->a3.responsePtr[0])); + Common::String response; + + response = Utils::promptBox(_vm->_file->fetchString(action->a3.promptIndex)); + response.toLowercase(); - // TODO: The answer of the player is not handled currently! Once it'll be read in the messageBox, uncomment this block -#if 0 - char *response = Utils::Box(BOX_PROMPT, "%s", _vm->_file->fetchString(action->a3.promptIndex)); + debug(1, "doAction(act3), expecting answer %s", _vm->_file->fetchString(action->a3.responsePtr[0])); bool found = false; - char *tmpStr; // General purpose string ptr + const char *tmpStr; // General purpose string ptr - for (dx = 0; !found && (action->a3.responsePtr[dx] != -1); dx++) { + char resp[256]; + strncpy(resp, response.c_str(), 256); + + for (int dx = 0; !found && (action->a3.responsePtr[dx] != -1); dx++) { tmpStr = _vm->_file->fetchString(action->a3.responsePtr[dx]); - if (strstr(Utils::strlwr(response) , tmpStr)) + if (strstr(Utils::strlwr(resp), tmpStr)) found = true; } @@ -1598,10 +1595,6 @@ void Scheduler_v2d::promptAction(act *action) { insertActionList(action->a3.actPassIndex); else insertActionList(action->a3.actFailIndex); -#endif - - // HACK: As the answer is not read, currently it's always considered correct - insertActionList(action->a3.actPassIndex); } /** |