/*
- * I/O and support riutines.
+ * I/O and support routines.
*
* Copyright (c) 1977, 2005 by Will Crowther and Don Woods
* Copyright (c) 2017 by Eric S. Raymond
/* I/O routines (speak, pspeak, rspeak, sspeak, get_input, yes) */
static void vspeak(const char* msg, bool blank, va_list ap)
+/* Engine for various speak functions */
{
// Do nothing if we got a null pointer.
if (msg == NULL)
}
void speak(const char* msg, ...)
+/* speak a specified string */
{
va_list ap;
va_start(ap, msg);
}
void sspeak(const int msg, ...)
+/* Speak a message from the arbitrary-messages list */
{
va_list ap;
va_start(ap, msg);
// Print a blank line
printf("\n");
- char* input;
- while (true) {
+ char* input = "";
+ for (;;) {
input = myreadline(input_prompt);
if (input == NULL) // Got EOF; return with it.
return (input);
}
-bool silent_yes(void)
+bool silent_yes_or_no(void)
{
bool outcome = false;
free(firstword);
- if (yes == 0 ||
- y == 0) {
+ if (yes == 0 || y == 0) {
outcome = true;
break;
- } else if (no == 0 ||
- n == 0) {
+ } else if (no == 0 || n == 0) {
outcome = false;
break;
} else
}
-bool yes(const char* question, const char* yes_response, const char* no_response)
+bool yes_or_no(const char* question, const char* yes_response, const char* no_response)
/* Print message X, wait for yes/no answer. If yes, print Y and return true;
* if no, print Z and return false. */
{
if (!*str)
return false; // LCOV_EXCL_LINE
- // Check for non-digit chars in the rest of the stirng.
+ // Check for non-digit chars in the rest of the string.
while (*str) {
if (!isdigit(*str))
return false;
static void tokenize(char* raw, command_t *cmd)
{
/*
- * Be caereful about modifing this. We do not want to nuke the
+ * Be careful about modifying this. We do not want to nuke the
* the speech part or ID from the previous turn.
*/
memset(&cmd->word[0].raw, '\0', sizeof(cmd->word[0].raw));
cmd->state = EMPTY;
}
-
void juggle(obj_t object)
/* Juggle an object by picking it up and putting it down again, the purpose
* being to get the object to the front of the chain of things at its loc. */
void drop(obj_t object, loc_t where)
/* Place an object at a given loc, prefixing it onto the game.atloc list. Decr
- * game.holdng if the object was being toted. */
+ * game.holdng if the object was being toted. No state change on the object. */
{
if (object > NOBJECTS)
game.fixed[object - NOBJECTS] = where;
}
// LCOV_EXCL_STOP
-/* end */
-
void state_change(obj_t obj, int state)
/* Object must have a change-message list for this to be useful; only some do */
{