Fold object vocab words into the objects[] structure.
[open-adventure.git] / init.c
diff --git a/init.c b/init.c
index aaa3eaff0e7ee03ec65c0a4d751f7956abdf3bf0..89f9abb0e042623044bcd57e78aac719f14e4678 100644 (file)
--- a/init.c
+++ b/init.c
@@ -23,34 +23,33 @@ void initialise(void)
 
     for (int i = 1; i <= NLOCATIONS; i++) {
         game.abbrev[i] = 0;
-        if (!(locations[i].description.big == 0 || KEY[i] == 0)) {
-            int k = KEY[i];
+        if (!(locations[i].description.big == 0 || TKEY[i] == 0)) {
+            int k = TKEY[i];
             if (MOD(labs(TRAVEL[k]), 1000) == 1)
                conditions[i] |= (1 << COND_FORCED);
         }
         game.atloc[i] = 0;
     }
 
-    /*  Set up the game.atloc and game.link arrays as described above.
+    /*  Set up the game.atloc and game.link arrays.
      *  We'll use the DROP subroutine, which prefaces new objects on the
      *  lists.  Since we want things in the other order, we'll run the
      *  loop backwards.  If the object is in two locs, we drop it twice.
      *  This also sets up "game.place" and "fixed" as copies of "PLAC" and
      *  "FIXD".  Also, since two-placed objects are typically best
      *  described last, we'll drop them first. */
-    for (int i = 1; i <= NOBJECTS; i++) {
-        int k = NOBJECTS + 1 - i;
-        if (FIXD[k] > 0) {
-            DROP(k + NOBJECTS, FIXD[k]);
-            DROP(k, PLAC[k]);
+    for (int i = NOBJECTS; i >= 1; i--) {
+        if (objects[i].fixd > 0) {
+            drop(i + NOBJECTS, objects[i].fixd);
+            drop(i, objects[i].plac);
         }
     }
 
     for (int i = 1; i <= NOBJECTS; i++) {
         int k = NOBJECTS + 1 - i;
-        game.fixed[k] = FIXD[k];
-        if (PLAC[k] != 0 && FIXD[k] <= 0)
-            DROP(k, PLAC[k]);
+        game.fixed[k] = objects[k].fixd;
+        if (objects[k].plac != 0 && objects[k].fixd <= 0)
+            drop(k, objects[k].plac);
     }
 
     /*  Treasure props are initially -1, and are set to 0 the first time
@@ -58,8 +57,8 @@ void initialise(void)
      *  not yet found, so we know when to close the cave. */
     game.tally = 0;
     for (int treasure = 1; treasure <= NOBJECTS; treasure++) {
-       if (object_descriptions[treasure].is_treasure) {
-           if (object_descriptions[treasure].inventory != 0)
+       if (objects[treasure].is_treasure) {
+           if (objects[treasure].inventory != 0)
                game.prop[treasure] = -1;
            game.tally = game.tally - game.prop[treasure];
        }
@@ -178,24 +177,6 @@ void initialise(void)
     game.dloc[5] = LOC_COMPLEX;
     game.dloc[6] = game.chloc;
 
-    /*  Other random flags and counters, as follows:
-     * game.abbnum     How often we should print non-abbreviated descriptions
-     * game.bonus      Used to determine amount of bonus if he reaches closing
-     * game.clock1     Number of turns from finding last treasure till closing
-     * game.clock2     Number of turns from first warning till blinding flash
-     * game.conds      Min value for cond(loc) if loc has any hints
-     * game.detail     How often we've said "not allowed to give more detail"
-     * game.dkill      # of dwarves killed (unused in scoring, needed for msg)
-     * game.foobar     Current progress in saying "FEE FIE FOE FOO".
-     * game.holdng     Number of objects being carried
-     * igo             How many times he's said "go XXX" instead of "XXX"
-     * game.iwest      How many times he's said "west" instead of "w"
-     * game.knfloc     0 if no knife here, loc if knife here, -1 after caveat
-     * game.limit      Lifetime of lamp (not set here)
-     * game.numdie     Number of times killed so far
-     * game.trnluz     # points lost so far due to number of turns used
-     * game.turns      Tallies how many commands he's given (ignores yes/no)
-     */
     game.turns = 0;
     game.trnluz = 0;
     game.lmwarn = false;
@@ -208,9 +189,9 @@ void initialise(void)
     game.dkill = 0;
     game.foobar = 0;
     game.bonus = 0;
-    game.clock1 = 30;
-    game.clock2 = 50;
-    game.conds = SETBIT(11);
+    game.clock1 = WARNTIME;
+    game.clock2 = FLASHTIME;
+    game.conds = setbit(11);
     game.saved = 0;
     game.closng = false;
     game.panic = false;