X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=advent.h;h=93681a630d71084e7ffd9fb3864e12817de208ac;hb=da883d53c09875635a9be1730371bebdaf9ef262;hp=477b8b84652a0f51c15fe7d95098b9ca5fdccf8b;hpb=d61cab352ee4345311eb9dd1a40fe11fb979f463;p=open-adventure.git diff --git a/advent.h b/advent.h index 477b8b8..93681a6 100644 --- a/advent.h +++ b/advent.h @@ -11,17 +11,14 @@ #define MAXTRS 79 #define MAXPARMS 25 #define INVLIMIT 7 -#define INTRANSITIVE -1 /* illegal object number */ - -typedef struct lcg_state -{ - unsigned long a, c, m, x; -} lcg_state; +#define INTRANSITIVE -1 /* illegal object number */ +#define SPECIALBASE 300 /* base umber of special rooms */ typedef long token_t; /* word token - someday this will be char[TOKLEN+1] */ typedef long vocab_t; /* index into a vocabulary array */ struct game_t { + unsigned long lcg_a, lcg_c, lcg_m, lcg_x; long abbnum; long blklin; long bonus; @@ -80,13 +77,12 @@ extern const char ascii_to_advent[]; extern const char advent_to_ascii[]; extern FILE *logfp; extern bool oldstyle, editline, prompt; -extern lcg_state lcgstate; /* b is not needed for POSIX but harmless */ #define READ_MODE "rb" #define WRITE_MODE "wb" extern char* xstrdup(const char*); -extern void packed_to_token(long, char token[6]); +extern void packed_to_token(long, char token[]); extern void newspeak(char*); extern void PSPEAK(vocab_t,int); extern void RSPEAK(vocab_t); @@ -146,6 +142,7 @@ extern int saveresume(FILE *, bool); #define GSTONE(OBJ) ((OBJ) == EMRALD || (OBJ) == RUBY || (OBJ) == AMBER || (OBJ) == SAPPH) #define FOREST(LOC) ((LOC) >= 145 && (LOC) <= 166) #define VOCWRD(LETTRS,SECT) (VOCAB(MAKEWD(LETTRS),SECT)) +#define SPECIAL(LOC) ((LOC) > SPECIALBASE) /* The following two functions were added to fix a bug (game.clock1 decremented * while in forest). They should probably be replaced by using another