- bool blooded; // has player drunk of dragon's blood?
- long abbrev[NLOCATIONS + 1]; // has location been seen?
- long atloc[NLOCATIONS + 1]; // head of object linked list per location
- long dseen[NDWARVES + 1]; // true if dwarf has seen him
- loc_t dloc[NDWARVES + 1]; // location of dwarves, initially hard-wired in
- loc_t odloc[NDWARVES + 1]; // prior loc of each dwarf, initially garbage
- loc_t fixed[NOBJECTS + 1]; // fixed location of object (if not IS_FREE)
- long link[NOBJECTS * 2 + 1]; // object-list links
- loc_t place[NOBJECTS + 1]; // location of object
- long hinted[NHINTS]; // hinted[i] = true iff hint i has been used.
- long hintlc[NHINTS]; // hintlc[i] = how long at LOC with cond bit i
- long prop[NOBJECTS + 1]; // object state array */
+ 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 {
+ 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.
+ int lc; // hints[i].lc = show int at LOC with cond bit i
+ } hints[NHINTS];
+ obj_t link[NOBJECTS * 2 + 1];// object-list links