game.abbrev[i] = 0;
if (!(locations[i].description.big == 0 || KEY[i] == 0)) {
int k = KEY[i];
- if (MOD(labs(TRAVEL[k]), 1000) == 1)COND[i] = 2;
+ if (MOD(labs(TRAVEL[k]), 1000) == 1)
+ conditions[i] |= (1 << COND_FORCED);
}
game.atloc[i] = 0;
}
/* Clear the hint stuff. game.hintlc[i] is how long he's been at LOC
* with cond bit i. game.hinted[i] is true iff hint i has been
* used. */
- for (int i = 1; i <= HINT_COUNT; i++) {
+ for (int i = 0; i < HINT_COUNT; i++) {
game.hinted[i] = false;
game.hintlc[i] = 0;
}
game.clshnt = false;
game.novice = false;
game.blklin = true;
+
+#ifdef ODEBUG
+# define NEWFLAGS ((1<<COND_ABOVE)|(1<<COND_FOREST)|(1<<COND_DEEP));
+ int mismatches = 0;
+ for (int i = 0; i < LOCSIZ; i++) {
+ long condbits = conditions[i] & ~NEWFLAGS;
+ if (condbits == COND[i] || COND[i] == 2 && condbits == 0)
+ continue;
+ ++mismatches;
+ printf("Mismatch at %ld: COND=%x consitions=%x\n", COND[i], condbits);
+ }
+ printf("%d condbit mismatches\n", mismatches);
+#endif
}