-#include "common.h"
-#include "newdb.h"
-
-#define LINESIZE 100
-#define NDWARVES 6 /* number of dwarves */
-#define PIRATE NDWARVES /* must be NDWARVES-1 when zero-origin */
-#define DALTLC LOC_NUGGET /* alternate dwarf location */
-#define MAXPARMS 25 /* Max parameters for speak() */
-#define INVLIMIT 7 /* inverntory limit (# of objects) */
-#define INTRANSITIVE -1 /* illegal object number */
-#define SPECIALBASE 300 /* base number of special rooms */
-#define GAMELIMIT 330 /* base limit of turns */
-#define NOVICELIMIT 1000 /* limit of turns for novice */
-#define WARNTIME 30 /* late game starts at game.limit-this */
-#define FLASHTIME 50 /*turns from first warning till blinding flash */
-#define PANICTIME 15 /* time left after closing */
-#define BATTERYLIFE 2500 /* turn limit increment from batteries */
-
-typedef long token_t; /* word token - someday this will be char[TOKLEN+1] */
-typedef long vocab_t; /* index into a vocabulary array */
+#include "dungeon.h"
+
+#define LINESIZE 100
+#define NDWARVES 6 // number of dwarves
+#define PIRATE NDWARVES // must be NDWARVES-1 when zero-origin
+#define DALTLC LOC_NUGGET // alternate dwarf location
+#define MAXPARMS 25 // Max parameters for speak()
+#define INVLIMIT 7 // inverntory limit (# of objects)
+#define INTRANSITIVE -1 // illegal object number
+#define SPECIALBASE 300 // base number of special rooms
+#define GAMELIMIT 330 // base limit of turns
+#define NOVICELIMIT 1000 // limit of turns for novice
+#define WARNTIME 30 // late game starts at game.limit-this
+#define FLASHTIME 50 // turns from first warning till blinding flash
+#define PANICTIME 15 // time left after closing
+#define BATTERYLIFE 2500 // turn limit increment from batteries
+#define WORD_NOT_FOUND -1 // "Word not found" flag value for the vocab hash functions.
+
+typedef long token_t; // word token - someday this will be char[TOKLEN+1]
+typedef long vocab_t; // index into a vocabulary array */
+
+extern const char advent_to_ascii[128];
+extern const char ascii_to_advent[128];
+extern const char new_advent_to_ascii[64];
+extern const char new_ascii_to_advent[128];
+
+enum bugtype {
+ SPECIAL_TRAVEL_500_GT_L_GT_300_EXCEEDS_GOTO_LIST = 20, // 20
+ VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3 = 22, // 22
+ INTRANSITIVE_ACTION_VERB_EXCEEDS_GOTO_LIST, // 23
+ TRANSITIVE_ACTION_VERB_EXCEEDS_GOTO_LIST, // 24
+ CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION, // 25
+ LOCATION_HAS_NO_TRAVEL_ENTRIES, // 26
+ HINT_NUMBER_EXCEEDS_GOTO_LIST, // 27
+ TOO_MANY_PARAMETERS_GIVEN_TO_SETPRM, // 28
+ SPEECHPART_NOT_TRANSITIVE_OR_INTRANSITIVE_OR_UNKNOWN=99, // 99
+ ACTION_RETURNED_PHASE_CODE_BEYOND_END_OF_SWITCH, // 100
+};
+
+/* Alas, declaring this static confuses the coverage analyzer */
+void bug(enum bugtype, const char *) __attribute__((__noreturn__));
+#define BUG(x) bug(x, #x)