+ int conds; // min value for cond[loc] if loc has any hints
+ int detail; // level of detail in descriptions
+
+ /* dflag controls the level of activation of dwarves:
+ * 0 No dwarf stuff yet (wait until reaches Hall Of Mists)
+ * 1 Reached Hall Of Mists, but hasn't met first dwarf
+ * 2 Met first dwarf, others start moving, no knives thrown yet
+ * 3 A knife has been thrown (first set always misses)
+ * 3+ Dwarves are mad (increases their accuracy) */
+ int dflag;
+
+ int dkill; // dwarves killed
+ int dtotal; // total dwarves (including pirate) in loc
+ int foobar; // progress in saying "FEE FIE FOE FOO".
+ int holdng; // number of objects being carried
+ int igo; // # uses of "go" instead of a direction
+ int iwest; // # times he's said "west" instead of "w"
+ loc_t knfloc; // knife location; LOC_NOWERE if none, -1 after caveat
+ turn_t limit; // lifetime of lamp
+ loc_t loc; // where player is now
+ loc_t newloc; // where player is going
+ turn_t numdie; // number of times killed so far
+ loc_t oldloc; // where player was
+ loc_t oldlc2; // where player was two moves ago
+ obj_t oldobj; // last object player handled
+ int saved; // point penalty for saves
+ int tally; // count of treasures gained
+ int thresh; // current threshold for endgame scoring tier
+ bool seenbigwords; // have we red the graffiti in the Giant's Room?
+ turn_t trnluz; // # points lost so far due to turns used
+ turn_t turns; // counts commands given (ignores yes/no)
+ char zzword[TOKLEN + 1]; // randomly generated magic word from bird
+ struct {
+ int abbrev; // has location been seen?
+ int atloc; // head of object linked list per location
+ } locs[NLOCATIONS + 1];
+ struct {
+ int seen; // true if dwarf has seen him
+ loc_t loc; // location of dwarves, initially hard-wired in
+ loc_t oldloc; // prior loc of each dwarf, initially garbage
+ } dwarves[NDWARVES + 1];
+ struct {
+#ifdef FOUNDBOOL
+ bool found; // has the location of this object bween found?
+#endif
+ loc_t fixed; // fixed location of object (if not IS_FREE)
+ int prop; // object state */
+ loc_t place; // location of object
+ } objects[NOBJECTS + 1];
+ struct {
+ bool used; // hints[i].used = true iff hint i has been used.
+#ifndef FOUNDBOOL
+ int lc; // hints[i].lc = show int at LOC with cond bit i
+#else
+ int lc; // hints[i].lc = show int at LOC with cond bit i
+#endif
+ } hints[NHINTS];
+ obj_t link[NOBJECTS * 2 + 1];// object-list links
+};
+
+/*
+ * Game application settings - settings, but not state of the game, per se.
+ * This data is not saved in a saved game.
+ */
+struct settings_t {
+ FILE *logfp;
+ bool oldstyle;
+ bool prompt;
+ char **argv;
+ int argc;
+ int optind;
+ FILE *scriptfp;
+ int debug;