/*
- * There used to be a note that said this:
- *
- * The author - Don Woods - apologises for the style of the code; it
- * is a result of running the original Fortran IV source through a
- * home-brew Fortran-to-C converter.
- *
- * Now that the code has been restructured into something much closer
- * to idiomatic C, the following is more appropriate:
- *
- * ESR apologizes for the remaing gotos (now confined to one function
- * in this file - there used to be over 350 of them, *everywhere*).
- * Applying the Structured Program Theorem can be hard.
- *
* Copyright (c) 1977, 2005 by Will Crowther and Don Woods
* Copyright (c) 2017 by Eric S. Raymond
* SPDX-License-Identifier: BSD-2-clause
* game.prop[TROLL]=TROLL_UNPAID.) Special stuff
* for bear. */
if (game.prop[TROLL] == TROLL_PAIDONCE) {
- pspeak(TROLL, look, TROLL_PAIDONCE, true);
+ pspeak(TROLL, look, true, TROLL_PAIDONCE);
game.prop[TROLL] = TROLL_UNPAID;
move(TROLL2, LOC_NOWHERE);
move(TROLL2 + NOBJECTS, IS_FREE);
kk = (game.loc == game.fixed[STEPS])
? STEPS_UP
: STEPS_DOWN;
- pspeak(obj, look, kk, true);
+ pspeak(obj, look, true, kk);
}
}
}
cmd->obj = NO_OBJECT;
}
-/*
+/*
* This function probably does too many disparate things. It checks for hints,
- * sees if the gamed is closed, checks for darkness, gets user input, increments
- * the turns in the game state, checks to see if we should be closing, gets the
- * command input, and preprocesses some implied verbs in the case that the user
+ * sees if the gamed is closed, checks for darkness, gets user input, increments
+ * the turns in the game state, checks to see if we should be closing, gets the
+ * command input, and preprocesses some implied verbs in the case that the user
* put in a single word motion or object command.
- *
- * This was the lesser evil -- it got rid of a really nasty goto in the main
+ *
+ * This was the lesser evil -- it got rid of a really nasty goto in the main
* input parser/state transition engine. This should be refactored further.
*/
bool get_preprocessed_command_input(command_t *command)
* separate from their respective piles. */
if (game.closed) {
if (game.prop[OYSTER] < 0 && TOTING(OYSTER))
- pspeak(OYSTER, look, 1, true);
+ pspeak(OYSTER, look, true, 1);
for (size_t i = 1; i <= NOBJECTS; i++) {
if (TOTING(i) && game.prop[i] < 0)
game.prop[i] = STASHED(i);
listobjects();
clear_command(&command);
-
+
do {
// Get pre-processed command input from user
command_given = get_preprocessed_command_input(&command);
BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
}
- if(command_given) {
+ if (command_given) {
switch (action(command)) {
case GO_TERMINATE:
return true;
continue; /* back to top of main interpreter loop */
case GO_CLEAROBJ:
clear_command(&command);
- /* FALL THROUGH */
+ /* FALL THROUGH */
case GO_CHECKHINT:
command_given = false;
break;
}
} while (!command_executed);
} while (!command_given);
- }
+ }
}
/* end */