Remove unused code
[open-adventure.git] / dungeon.c
index 6c6fcfdf1e9639116c52fce8f3a78a28a64af24a..725152d44c096166a6f6765a16eb35fa000ce6a0 100644 (file)
--- a/dungeon.c
+++ b/dungeon.c
@@ -5,9 +5,7 @@
 
 /*  Current limits:
  *     12600 words of message text (LINES, LINSIZ).
- *     885 travel options (TRAVEL, TRVSIZ).
  *     330 vocabulary words (KTAB, ATAB, TABSIZ).
- *      35 "action" verbs (ACTSPK, VRBSIZ).
  *  There are also limits which cannot be exceeded due to the structure of
  *  the database.  (E.G., The vocabulary uses n/1000 to determine word type,
  *  so there can't be more than 1000 words.)  These upper limits are:
  *  The data file contains several sections.  Each begins with a line containing
  *  a number identifying the section, and ends with a line containing "-1".
  *
- *  Section 3: Travel table.  Each line contains a location number (X), a second
- *     location number (Y), and a list of motion numbers (see section 4).
- *     each motion represents a verb which will go to Y if currently at X.
- *     Y, in turn, is interpreted as follows.  Let M=Y/1000, N=Y mod 1000.
- *             If N<=300       it is the location to go to.
- *             If 300<N<=500   N-300 is used in a computed goto to
- *                                     a section of special code.
- *             If N>500        message N-500 from section 6 is printed,
- *                                     and he stays wherever he is.
- *     Meanwhile, M specifies the conditions on the motion.
- *             If M=0          it's unconditional.
- *             If 0<M<100      it is done with M% probability.
- *             If M=100        unconditional, but forbidden to dwarves.
- *             If 100<M<=200   he must be carrying object M-100.
- *             If 200<M<=300   must be carrying or in same room as M-200.
- *             If 300<M<=400   game.prop(M % 100) must *not* be 0.
- *             If 400<M<=500   game.prop(M % 100) must *not* be 1.
- *             If 500<M<=600   game.prop(M % 100) must *not* be 2, etc.
- *     If the condition (if any) is not met, then the next *different*
- *     "destination" value is used (unless it fails to meet *its* conditions,
- *     in which case the next is found, etc.).  Typically, the next dest will
- *     be for one of the same verbs, so that its only use is as the alternate
- *     destination for those verbs.  For instance:
- *             15      110022  29      31      34      35      23      43
- *             15      14      29
- *     This says that, from loc 15, any of the verbs 29, 31, etc., will take
- *     him to 22 if he's carrying object 10, and otherwise will go to 14.
- *             11      303008  49
- *             11      9       50
- *     This says that, from 11, 49 takes him to 8 unless game.prop(3)=0, in which
- *     case he goes to 9.  Verb 50 takes him to 9 regardless of game.prop(3).
  *  Section 4: Vocabulary.  Each line contains a number (n), a tab, and a
  *     five-letter word.  Call M=N/1000.  If M=0, then the word is a motion
  *     verb for use in travelling (see section 3).  Else, if M=1, the word is
  *     or "attack").  Else, if M=3, the word is a special case verb (such as
  *     "dig") and N % 1000 is an index into section 6.  Objects from 50 to
  *     (currently, anyway) 79 are considered treasures (for pirate, closeout).
- *  Section 7: Object locations.  Each line contains an object number and its
- *     initial location (zero (or omitted) if none).  If the object is
- *     immovable, the location is followed by a "-1".  If it has two locations
- *     (e.g. the grate) the first location is followed with the second, and
- *     the object is assumed to be immovable.
- *  Section 8: Action defaults.  Each line contains an "action-verb" number and
- *     the index (in section 6) of the default message for the verb.
  *  Section 0: End of database.
  *
  * Other sections are obsolete and ignored */
 
 #define LINESIZE 100
-#define CLSMAX 12
 #define LINSIZ 12600
-#define TRNSIZ 5
 #define TABSIZ 330
 #define VRBSIZ 35
-#define TRVSIZ 885
 #define TOKLEN 5
 
 #include <stdio.h>
@@ -96,17 +53,10 @@ static long OLDLOC;
 static long LINUSE;
 
 // Storage for what comes out of the database
-long TRVS;
-long TRNVLS;
 long TABNDX;
-long KEY[NLOCATIONS + 1];
 long LINES[LINSIZ + 1];
-long TRAVEL[TRVSIZ + 1];
 long KTAB[TABSIZ + 1];
 long ATAB[TABSIZ + 1];
-long PLAC[NOBJECTS + 1];
-long FIXD[NOBJECTS + 1];
-long ACTSPK[VRBSIZ + 1];
 
 static long GETTXT(long SKIP, long ONEWRD, long UPPER)
 {
@@ -209,7 +159,7 @@ static long GETNUM(FILE *source)
      *  scanned).  If we're at the end of the line or encounter an illegal
      *  character (not a digit, hyphen, or blank), we return 0. */
 
-    long DIGIT, GETNUM, SIGN;
+    long DIGIT, GETNUM, sign;
 
     if (source != NULL) MAPLIN(source);
     GETNUM = 0;
@@ -220,9 +170,9 @@ static long GETNUM(FILE *source)
     }
 
     if (INLINE[LNPOSN] != 9) {
-        SIGN = 1;
+        sign = 1;
     } else {
-        SIGN = -1;
+        sign = -1;
         LNPOSN = LNPOSN + 1;
     }
     while (!(LNPOSN > LNLENG || INLINE[LNPOSN] == 0)) {
@@ -235,15 +185,14 @@ static long GETNUM(FILE *source)
         LNPOSN = LNPOSN + 1;
     }
 
-    GETNUM = GETNUM * SIGN;
+    GETNUM = GETNUM * sign;
     LNPOSN = LNPOSN + 1;
     return (GETNUM);
 }
 
 /*  Sections 1, 2, 5, 6, 10, 14.  Skip these, they're all in YAML now. */
-static void read_messages(FILE* database, long sect)
+static void read_messages(FILE* database)
 {
-    long KK = LINUSE;
     while (true) {
        do {
            if (NULL == fgets(INLINE + 1, sizeof(INLINE) - 1, database)) {
@@ -256,7 +205,7 @@ static void read_messages(FILE* database, long sect)
 }
 
 /*  The stuff for section 3 is encoded here.  Each "from-location" gets a
- *  contiguous section of the "TRAVEL" array.  Each entry in travel is
+ *  contiguous section of the "travel" array.  Each entry in travel is
  *  newloc*1000 + KEYWORD (from section 4, motion verbs), and is negated if
  *  this is the last entry for this location.  KEY(N) is the index in travel
  *  of the first option at location N. */
@@ -264,20 +213,7 @@ static void read_section3_stuff(FILE* database)
 {
     long loc;
     while ((loc = GETNUM(database)) != -1) {
-        long newloc = GETNUM(NULL);
-        long L;
-        if (KEY[loc] == 0) {
-            KEY[loc] = TRVS;
-        } else {
-            TRAVEL[TRVS - 1] = -TRAVEL[TRVS - 1];
-        }
-        while ((L = GETNUM(NULL)) != 0) {
-            TRAVEL[TRVS] = newloc * 1000 + L;
-            TRVS = TRVS + 1;
-            if (TRVS == TRVSIZ)
-                BUG(TOO_MANY_TRAVEL_OPTIONS);
-        }
-        TRAVEL[TRVS - 1] = -TRAVEL[TRVS - 1];
+       /* Now done from YAML */
     }
 }
 
@@ -301,17 +237,16 @@ static void read_initial_locations(FILE* database)
 {
     long OBJ;
     while ((OBJ = GETNUM(database)) != -1) {
-        PLAC[OBJ] = GETNUM(NULL);
-        FIXD[OBJ] = GETNUM(NULL);
+       /* all done from YAML now */
     }
 }
 
-/*  Read default message numbers for action verbs, store in ACTSPK. */
+/*  Read default message numbers for action verbs. */
 static void read_action_verb_message_nr(FILE* database)
 {
     long verb;
     while ((verb = GETNUM(database)) != -1) {
-        ACTSPK[verb] = GETNUM(NULL);
+       /* now declared in YAML */
     }
 }
 
@@ -345,8 +280,6 @@ static void read_sound_text(FILE* database)
 {
     long K;
     while ((K = GETNUM(database)) != -1) {
-        long KK = GETNUM(NULL);
-        long I = GETNUM(NULL);
        /* this stuff is in YAML now */
     }
 }
@@ -362,13 +295,8 @@ static int read_database(FILE* database)
      *  pointer-words in lines. PTEXT(N) points to
      *  message for game.prop(N)=0.  Successive prop messages are
      *  found by chasing pointers. */
-    for (int I = 1; I <= NLOCATIONS; I++) {
-        KEY[I] = 0;
-    }
 
     LINUSE = 1;
-    TRVS = 1;
-    TRNVLS = 0;
 
     /*  Start new data section.  Sect is the section number. */
 
@@ -379,10 +307,10 @@ static int read_database(FILE* database)
         case 0:
             return (0);
         case 1:
-            read_messages(database, sect);
+            read_messages(database);
             break;
         case 2:
-            read_messages(database, sect);
+            read_messages(database);
             break;
         case 3:
             read_section3_stuff(database);
@@ -391,10 +319,10 @@ static int read_database(FILE* database)
             read_vocabulary(database);
             break;
         case 5:
-            read_messages(database, sect);
+            read_messages(database);
             break;
         case 6:
-            read_messages(database, sect);
+            read_messages(database);
             break;
         case 7:
             read_initial_locations(database);
@@ -406,7 +334,7 @@ static int read_database(FILE* database)
             read_conditions(database);
             break;
         case 10:
-            read_messages(database, sect);
+            read_messages(database);
             break;
         case 11:
             read_hints(database);
@@ -417,7 +345,7 @@ static int read_database(FILE* database)
             read_sound_text(database);
             break;
         case 14:
-            read_messages(database, sect);
+            read_messages(database);
             break;
         default:
             BUG(INVALID_SECTION_NUMBER_IN_DATABASE);
@@ -472,13 +400,8 @@ static void write_file(FILE* header_file)
     fprintf(header_file, "\n");
 
     // content variables
-    write_1d(header_file, KEY, NLOCATIONS + 1, "KEY");
-    write_1d(header_file, TRAVEL, TRVSIZ + 1, "TRAVEL");
     write_1d(header_file, KTAB, TABSIZ + 1, "KTAB");
     write_1d(header_file, ATAB, TABSIZ + 1, "ATAB");
-    write_1d(header_file, PLAC, NOBJECTS + 1, "PLAC");
-    write_1d(header_file, FIXD, NOBJECTS + 1, "FIXD");
-    write_1d(header_file, ACTSPK, VRBSIZ + 1, "ACTSPK");
 
     fprintf(header_file, "#undef LOCATION\n");
     fprintf(header_file, "#undef INITIALIZE\n");