Gut and rebuild YES() with cleaner approach that doesn't rely on packing.
[open-adventure.git] / advent.h
index c5abaa6661cc917ec9fb1ad25687ba624ae512e0..d23d8fd0a54948d71b83e073f9b5925b150c6980 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -14,6 +14,7 @@
 #define INTRANSITIVE   -1              /* illegal object number */
 #define SPECIALBASE    300             /* base number of special rooms */
 #define WARNTIME       30              /* late game starts at game.limit-this */
+#define PANICTIME      15              /* time left after closing */
 
 typedef long token_t;  /* word token - someday this will be char[TOKLEN+1] */
 typedef long vocab_t;  /* index into a vocabulary array */
@@ -82,17 +83,19 @@ extern bool oldstyle, editline, prompt;
 /* b is not needed for POSIX but harmless */
 #define READ_MODE "rb"
 #define WRITE_MODE "wb"
+extern void* xmalloc(size_t size);
 extern char* xstrdup(const char*);
 extern void packed_to_token(long, char token[]);
-extern void newspeak(const char*);
+extern void speak(const char*);
 extern void PSPEAK(vocab_t,int);
 extern void RSPEAK(vocab_t);
 extern void SETPRM(long,long,long);
 extern bool GETIN(FILE *,token_t*,token_t*,token_t*,token_t*);
-extern long YES(FILE *,vocab_t,vocab_t,vocab_t);
+extern void echo_input(FILE*, char*, char*);
+extern char* get_input(void);
+extern bool YES(vocab_t, vocab_t, vocab_t);
 extern long GETTXT(bool,bool,bool);
 extern token_t MAKEWD(long);
-extern void TYPE0(void);
 extern long VOCAB(long,long);
 extern void JUGGLE(long);
 extern void MOVE(long,long);
@@ -105,7 +108,6 @@ extern bool TSTBIT(long,int);
 extern long RNDVOC(long,long);
 extern void BUG(long) __attribute__((noreturn));
 extern bool MAPLIN(FILE *);
-extern void TYPE(void);
 extern void DATIME(long*, long*);
 
 enum termination {endgame, quitgame, scoregame};
@@ -113,7 +115,8 @@ enum termination {endgame, quitgame, scoregame};
 extern void set_seed(long);
 extern unsigned long get_next_lcg_value(void);
 extern long randrange(long);
-extern void score(enum termination);
+extern long score(enum termination);
+extern void terminate(enum termination) __attribute__((noreturn));
 extern int suspend(FILE *);
 extern int resume(FILE *);
 extern int restore(FILE *);