- unsigned long lcg_a, lcg_c, lcg_m, lcg_x;
- long abbnum; // How often to print non-abbreviated descriptions
- long bonus;
- long chloc;
- long chloc2;
- long clock1; // # turns from finding last treasure till closing
- long clock2; // # turns from first warning till blinding flash
- bool clshnt; // has player read the clue in the endgame?
- bool closed; // whether we're all the way closed
- bool closng; // whether it's closing time yet
- long conds; // min value for cond(loc) if loc has any hints
- long detail;
-
- /* 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) */
- long dflag;
-
- long dkill;
- long dtotal;
- long foobar; // current progress in saying "FEE FIE FOE FOO".
- long holdng; // number of objects being carried
- long iwest; // How many times he's said "west" instead of "w"
- long knfloc; // 0 if no knife here, loc if knife , -1 after caveat
- long limit; // lifetime of lamp (not set here)
- bool lmwarn; // has player been warned about lamp going dim?
- long loc;
- long newloc;
- bool novice; // asked for instructions at start-up?
- long numdie; // number of times killed so far
- long oldloc;
- long oldlc2;
- long oldobj;
- bool panic; // has player found out he's trapped in the cave?
- long saved; // point penalty for saves
- long tally;
- long thresh;
- long trndex;
- long trnluz; // # points lost so far due to number of turns used
- long turns; // how many commands he's given (ignores yes/no)
- bool wzdark; // whether the loc he's leaving was dark
- char zzword[6]; // randomly generated magic word from bird
- bool blooded; // has player drunk of dragon's blood?
- long abbrev[NLOCATIONS + 1];
- long atloc[NLOCATIONS + 1];
- long dseen[NDWARVES + 1]; // true if dwarf has seen him
- long dloc[NDWARVES + 1]; // location of dwarves, initially hard-wired in
- long odloc[NDWARVES + 1]; // prior loc of each dwarf, initially garbage
- long fixed[NOBJECTS + 1];
- long link[NOBJECTS * 2 + 1];
- long place[NOBJECTS + 1];
- long hinted[NHINTS]; // hintlc[i] is how long he's been at LOC with cond bit i
- long hintlc[NHINTS]; // hinted[i] is true iff hint i has been used.
- long prop[NOBJECTS + 1];
+ int32_t lcg_x;
+ int32_t abbnum; // How often to print int descriptions
+ score_t bonus; // What kind of finishing bonus we are getting
+ loc_t chloc; // pirate chest location
+ loc_t chloc2; // pirate chest alternate location
+ turn_t clock1; // # turns from finding last treasure to close
+ turn_t clock2; // # turns from warning till blinding flash
+ bool32_t clshnt; // has player read the clue in the endgame?
+ bool32_t closed; // whether we're all the way closed
+ bool32_t closng; // whether it's closing time yet
+ bool32_t lmwarn; // has player been warned about lamp going dim?
+ bool32_t novice; // asked for instructions at start-up?
+ bool32_t panic; // has player found out he's trapped?
+ bool32_t wzdark; // whether the loc he's leaving was dark
+ bool32_t blooded; // has player drunk of dragon's blood?
+ int32_t conds; // min value for cond[loc] if loc has any hints
+ int32_t 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 1t 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) */
+ int32_t dflag;
+
+ int32_t dkill; // dwarves killed
+ int32_t dtotal; // total dwarves (including pirate) in loc
+ int32_t foobar; // progress in saying "FEE FIE FOE FOO".
+ int32_t holdng; // number of objects being carried
+ int32_t igo; // # uses of "go" instead of a direction
+ int32_t 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
+ int32_t saved; // point penalty for saves
+ int32_t tally; // count of treasures gained
+ int32_t thresh; // current threshold for endgame scoring tier
+ bool32_t 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 {
+ int32_t abbrev; // has location been seen?
+ int32_t atloc; // head of object linked list per location
+ } locs[NLOCATIONS + 1];
+ struct {
+ int32_t 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)
+ int32_t prop; // object state
+ loc_t place; // location of object
+ } objects[NOBJECTS + 1];
+ struct {
+ bool32_t used; // hints[i].used = true iff hint i has been used.
+ int32_t lc; // hints[i].lc = show int at LOC with cond bit i
+ } hints[NHINTS];
+ obj_t link[NOBJECTS * 2 + 1]; // object-list links