/*
* I/O and support routines.
*
- * Copyright (c) 1977, 2005 by Will Crowther and Don Woods
- * Copyright (c) 2017 by Eric S. Raymond
- * SPDX-License-Identifier: BSD-2-clause
+ * SPDX-FileCopyrightText: 1977, 2005 by Will Crowther and Don Woods
+ * SPDX-FileCopyrightText: 2017 by Eric S. Raymond
+ * SPDX-License-Identifier: BSD-2-Clause
*/
#include <unistd.h>
// Print a blank line
printf("\n");
- char* input = "";
+ char* input;
for (;;) {
input = myreadline(input_prompt);
* negated game.prop values for the repository objects. */
{
move(object, where);
- return STASHED(pval);
+ return (-1) - pval;; // Needs to stay sinchronized with STASHED
}
void carry(obj_t object, loc_t where)
return;
game.place[object] = CARRIED;
+ /*
+ * Without this conditional your inventory is overcounted
+ * when you pick up the bird while it's caged. This fixes
+ * a cosmetic bug in the original.
+ *
+ * Possibly this check should be skipped whwn oldstyle is on.
+ */
if (object != BIRD)
++game.holdng;
}
if (game.place[object] == CARRIED)
if (object != BIRD)
/* The bird has to be weightless. This ugly hack (and the
- * corresponding code in the drop function) brought to you
+ * corresponding code in the carry function) brought to you
* by the fact that when the bird is caged, we need to be able
* to either 'take bird' or 'take cage' and have the right thing
* happen.
}
void set_seed(int32_t seedval)
-/* Set the LCG seed */
+/* Set the LCG1 seed */
{
game.lcg_x = seedval % LCG_M;
if (game.lcg_x < 0) {
{
int32_t old_x = game.lcg_x;
game.lcg_x = (LCG_A * game.lcg_x + LCG_C) % LCG_M;
+ if (settings.debug) {
+ printf("# random %d\n", old_x); // LCOV_EXCL_LINE
+ }
return old_x;
}