* possible an emulation of the original UI.
*/
if (settings.oldstyle) {
- cmd->raw1[TOKLEN+TOKLEN] = cmd->raw1[TOKLEN+TOKLEN] = '\0';
- for (int i = 0; i < strlen(cmd->raw1); i++)
- cmd->raw1[i] = toupper(cmd->raw1[i]);
- for (int i = 0; i < strlen(cmd->raw2); i++)
- cmd->raw2[i] = toupper(cmd->raw2[i]);
+ cmd->raw1[TOKLEN + TOKLEN] = cmd->raw2[TOKLEN + TOKLEN] = '\0';
+ for (size_t i = 0; i < strlen(cmd->raw1); i++)
+ cmd->raw1[i] = toupper(cmd->raw1[i]);
+ for (size_t i = 0; i < strlen(cmd->raw2); i++)
+ cmd->raw2[i] = toupper(cmd->raw2[i]);
}
}
bool silent_yes()
{
- char* reply;
bool outcome;
for (;;) {
- reply = get_input();
+ char* reply = get_input();
if (reply == NULL) {
// LCOV_EXCL_START
// Should be unreachable. Reply should never be NULL
/* Print message X, wait for yes/no answer. If yes, print Y and return true;
* if no, print Z and return false. */
{
- char* reply;
bool outcome;
for (;;) {
speak(question);
- reply = get_input();
+ char* reply = get_input();
if (reply == NULL) {
// LCOV_EXCL_START
// Should be unreachable. Reply should never be NULL
/* FIXME: Magic numbers related to vocabulary */
ref_num = get_motion_vocab_id(word);
if (ref_num != WORD_NOT_FOUND)
- return (ref_num + 0); // FIXME: replace with a proper hash
+ return MOTION_WORD(ref_num);
ref_num = get_object_vocab_id(word);
if (ref_num != WORD_NOT_FOUND)
- return (ref_num + 1000); // FIXME: replace with a proper hash
+ return OBJECT_WORD(ref_num);
ref_num = get_action_vocab_id(word);
if (ref_num != WORD_NOT_FOUND)
- return (ref_num + 2000); // FIXME: replace with a proper hash
+ return ACTION_WORD(ref_num);
ref_num = get_special_vocab_id(word);
if (ref_num != WORD_NOT_FOUND)
- return (ref_num + 3000); // FIXME: replace with a proper hash
+ return SPECIAL_WORD(ref_num);
// Check for the reservoir magic word.
if (strcasecmp(word, game.zzword) == 0)
- return (PART + 2000); // FIXME: replace with a proper hash
+ return ACTION_WORD(PART);
return (WORD_NOT_FOUND);
}
// LCOV_EXCL_STOP
/* end */
+
+void state_change(long obj, long state)
+/* Object must have a change-message list for this to be useful; only some do */
+{
+ game.prop[obj] = state;
+ pspeak(obj, change, state, true);
+}
\ No newline at end of file