X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=advent.h;h=100de43cceb647e6b92bd2db9de80a9a414eb7d8;hb=25230068fe3afb9d1faa9c606413784294700cef;hp=c740c534a4397a3ccd912aa188bf44a2d73ca2e4;hpb=4069bf210b68d0aaa44ca30eff264d7eb93d8d70;p=open-adventure.git diff --git a/advent.h b/advent.h index c740c53..100de43 100644 --- a/advent.h +++ b/advent.h @@ -1,3 +1,10 @@ +/* + * Dungeon types and macros. + * + * SPDX-FileCopyrightText: 1977, 2005 by Will Crowther and Don Woods + * SPDX-FileCopyrightText: 2017 by Eric S. Raymond + * SPDX-License-Identifier: BSD-2-Clause + */ #include #include #include @@ -13,7 +20,7 @@ #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 @@ -32,7 +39,7 @@ #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 @@ -42,7 +49,7 @@ /* 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 "> " @@ -81,7 +88,7 @@ #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 { @@ -200,6 +207,7 @@ struct settings_t { int argc; int optind; FILE *scriptfp; + int debug; }; typedef struct { @@ -233,7 +241,7 @@ 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); @@ -244,6 +252,9 @@ extern int32_t randrange(int32_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 *);