#define LCG_M 1048576L
#define LINESIZE 1024
-#define TOKLEN 5 // # sigificant characters in a token */
+#define TOKLEN 5 // # outputting characters in a token */
#define NDWARVES 6 // number of dwarves
#define PIRATE NDWARVES // must be NDWARVES-1 when zero-origin
#define DALTLC LOC_NUGGET // alternate dwarf location
#define WRITE_MODE "wb" // b is not needed for POSIX but harmless
/* Special object-state values - integers > 0 are object-specific */
-#define STATE_NOTFOUND -1 // 'Not found" state of treasures */
+#define STATE_NOTFOUND -1 // 'Not found" state of treasures
#define STATE_FOUND 0 // After discovered, before messed with
#define STATE_IN_CAVITY 1 // State value common to all gemstones
/* Map a state property value to a negative range, where the object cannot be
* picked up but the value can be recovered later. Avoid colliding with -1,
- * which has its own meaning. */
+ * which has its own meaning as STATE_NOTFOUND. */
#define STASHED(obj) (-1 - game.prop[obj])
#define PROMPT "> "
#define FOREST(LOC) CNDBIT(LOC, COND_FOREST)
#define OUTSID(LOC) (CNDBIT(LOC, COND_ABOVE) || FOREST(LOC))
#define INSIDE(LOC) (!OUTSID(LOC) || LOC == LOC_BUILDING)
-#define INDEEP(LOC) ((LOC) >= LOC_MISTHALL && !OUTSID(LOC))
+#define INDEEP(LOC) CNDBIT((LOC),COND_DEEP)
#define BUG(x) bug(x, #x)
enum bugtype {
int argc;
int optind;
FILE *scriptfp;
+ int debug;
};
typedef struct {
extern void pspeak(vocab_t, enum speaktype, bool, int, ...);
extern void rspeak(vocab_t, ...);
extern void echo_input(FILE*, const char*, const char*);
-extern bool silent_yes(void);
-extern bool yes(const char*, const char*, const char*);
+extern bool silent_yes_or_no(void);
+extern bool yes_or_no(const char*, const char*, const char*);
extern void juggle(obj_t);
extern void move(obj_t, loc_t);
-extern loc_t put(obj_t, int, int);
+extern loc_t put(obj_t, loc_t, int);
extern void carry(obj_t, loc_t);
extern void drop(obj_t, loc_t);
extern int atdwrf(loc_t);
extern int score(enum termination);
extern void terminate(enum termination) __attribute__((noreturn));
extern int savefile(FILE *, int32_t);
+#if defined ADVENT_AUTOSAVE
+extern void autosave(void);
+#endif
extern int suspend(void);
extern int resume(void);
extern int restore(FILE *);