X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=misc.c;h=c6733d5fe285f6cc419122c594e93f9f60bea673;hb=17840d0e158e47e6dba3d62b4b8cdcf97071d924;hp=f8aa9def25b8318884e91cf61db239c315f851f7;hpb=94e7cc65050ddfd04a8a1606f8899c7e5be496e8;p=open-adventure.git diff --git a/misc.c b/misc.c index f8aa9de..c6733d5 100644 --- a/misc.c +++ b/misc.c @@ -221,7 +221,7 @@ static char* get_input(void) // Print a blank line printf("\n"); - char* input = ""; + char* input; for (;;) { input = myreadline(input_prompt); @@ -490,7 +490,7 @@ static void tokenize(char* raw, command_t *cmd) /* (ESR) In oldstyle mode, simulate the uppercasing and truncating * effect on raw tokens of packing them into sixbit characters, 5 * to a 32-bit word. This is something the FORTRAN version did - * becuse archaic FORTRAN had no string types. Don Wood's + * because archaic FORTRAN had no string types. Don Wood's * mechanical translation of 2.5 to C retained the packing and * thus this misfeature. * @@ -602,7 +602,7 @@ loc_t put(obj_t object, loc_t where, int pval) * 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) @@ -617,6 +617,13 @@ 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; } @@ -641,7 +648,7 @@ void drop(obj_t object, loc_t where) 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.