-/* $NetBSD: extern.h,v 1.6 1997/10/11 02:07:18 lukem Exp $ */
+/* $NetBSD: extern.h,v 1.15 1999/09/14 19:54:47 jsm Exp $ */
/*
* Copyright (c) 1983, 1993
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
#include <unistd.h>
#define BITS (8 * sizeof (int))
#define MAXCUMBER 10
struct room {
- char *name;
+ const char *name;
int link[8];
#define north link[0]
#define south link[1]
#define access link[5]
#define down link[6]
#define flyhere link[7]
- char *desc;
+ const char *desc;
unsigned int objects[NUMOFWORDS];
};
-struct room dayfile[];
-struct room nightfile[];
-struct room *location;
+extern struct room dayfile[];
+extern struct room nightfile[];
+extern struct room *location;
/* object characteristics */
-char *objdes[NUMOFOBJECTS];
-char *objsht[NUMOFOBJECTS];
-char *ouch[NUMOFINJURIES];
-int objwt[NUMOFOBJECTS];
-int objcumber[NUMOFOBJECTS];
+extern const char *const objdes[NUMOFOBJECTS];
+extern const char *const objsht[NUMOFOBJECTS];
+extern const char *const ouch[NUMOFINJURIES];
+extern const int objwt[NUMOFOBJECTS];
+extern const int objcumber[NUMOFOBJECTS];
/* current input line */
#define NWORD 20 /* words per line */
-char words[NWORD][15];
-int wordvalue[NWORD];
-int wordtype[NWORD];
-int wordcount, wordnumber;
+extern char words[NWORD][15];
+extern int wordvalue[NWORD];
+extern int wordtype[NWORD];
+extern int wordcount, wordnumber;
/* state of the game */
-int ourtime;
-int position;
-int direction;
-int left, right, ahead, back;
-int ourclock, fuel, torps;
-int carrying, encumber;
-int rythmn;
-int followfight;
-int ate;
-int snooze;
-int meetgirl;
-int followgod;
-int godready;
-int win;
-int wintime;
-int wiz;
-int tempwiz;
-int matchlight, matchcount;
-int loved;
-int pleasure, power, ego;
-int WEIGHT;
-int CUMBER;
-int notes[NUMOFNOTES];
-unsigned int inven[NUMOFWORDS];
-unsigned int wear[NUMOFWORDS];
-char beenthere[NUMOFROOMS + 1];
-char injuries[NUMOFINJURIES];
+extern int ourtime;
+extern int position;
+extern int direction;
+extern int left, right, ahead, back;
+extern int ourclock, fuel, torps;
+extern int carrying, encumber;
+extern int rythmn;
+extern int followfight;
+extern int ate;
+extern int snooze;
+extern int meetgirl;
+extern int followgod;
+extern int godready;
+extern int win;
+extern int wintime;
+extern int wiz;
+extern int tempwiz;
+extern int matchlight, matchcount;
+extern int loved;
+extern int pleasure, power, ego;
+extern int WEIGHT;
+extern int CUMBER;
+extern int notes[NUMOFNOTES];
+extern unsigned int inven[NUMOFWORDS];
+extern unsigned int wear[NUMOFWORDS];
+extern char beenthere[NUMOFROOMS + 1];
+extern char injuries[NUMOFINJURIES];
-char uname[9];
+extern char username[9];
struct wlist {
- char *string;
+ const char *string;
int value, article;
struct wlist *next;
};
#define HASHSIZE 256
#define HASHMUL 81
#define HASHMASK (HASHSIZE - 1)
-struct wlist *hashtab[HASHSIZE];
-struct wlist wlist[];
+extern struct wlist *hashtab[HASHSIZE];
+extern struct wlist wlist[];
struct objs {
short room;
short obj;
};
-struct objs dayobjs[];
-struct objs nightobjs[];
+extern const struct objs dayobjs[];
+extern const struct objs nightobjs[];
+
+#define DEFAULT_SAVE_FILE ".Bstar"
void blast __P((void));
void bury __P((void));
-int card __P((char *, int));
-int checkout __P((char *));
+int card __P((const char *, int));
+int checkout __P((const char *));
void chime __P((void));
void convert __P((int));
void crash __P((void));
int cypher __P((void));
-void die __P((void));
-void diesig __P((int));
+void die __P((void)) __attribute__((__noreturn__));
+void diesig __P((int)) __attribute__((__noreturn__));
void dig __P((void));
int draw __P((void));
void drink __P((void));
int drive __P((void));
-int drop __P((char *));
+int drop __P((const char *));
int eat __P((void));
void endfly __P((void));
int fight __P((int, int));
int follow __P((void));
void getutmp __P((char *));
int give __P((void));
-int hash __P((char *));
-void initialize __P((char));
+int hash __P((const char *));
+void initialize __P((const char *));
void install __P((struct wlist *));
int jump __P((void));
void kiss __P((void));
int land __P((void));
int launch __P((void));
void light __P((void));
-void live __P((void));
+void live __P((void)) __attribute__((__noreturn__));
void love __P((void));
int move __P((int, int));
void moveenemy __P((int));
void news __P((void));
void newway __P((int));
void notarget __P((void));
+void open_score_file __P((void));
void parse __P((void));
void post __P((char));
void printobjs __P((void));
int put __P((void));
int puton __P((void));
void ravage __P((void));
-void restore __P((void));
+void restore __P((const char *));
int ride __P((void));
-void save __P((void));
+void save __P((const char *));
+char *save_file_name __P((const char *, size_t));
void screen __P((void));
int shoot __P((void));
void succumb __P((int));
int take __P((unsigned int[]));
int takeoff __P((void));
void target __P((void));
-int throw __P((char *));
-int ucard __P((unsigned int *));
+int throw __P((const char *));
+int ucard __P((const unsigned int *));
int use __P((void));
int visual __P((void));
int wearit __P((void));
void whichway __P((struct room));
-int wizard __P((char *));
+int wizard __P((const char *));
void wordinit __P((void));
void writedes __P((void));
int zzz __P((void));
-char *getcom __P((char *, int, char *, char *));
+char *getcom __P((char *, int, const char *, const char *));
char *getword __P((char *, char *, int));
-char *rate __P((void));
-char *truedirec __P((int, char));
-struct wlist *lookup __P((char *));
+const char *rate __P((void));
+const char *truedirec __P((int, char));
+struct wlist *lookup __P((const char *));