More fixed limits (NOBJECTS, LOCSIZ) stop being fixed.
authorEric S. Raymond <esr@thyrsus.com>
Sat, 24 Jun 2017 14:18:33 +0000 (10:18 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 24 Jun 2017 14:18:33 +0000 (10:18 -0400)
Makefile
common.h
dungeon.c
init.c
newdungeon.py

index a24e39ac1871702880b4ad9dc3907f4a96635e75..9021f686d11ef7980b01c18c29a42aa8cc722c9c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -59,6 +59,8 @@ saveresume.o: advent.h database.h common.h newdb.h
 
 common.o:      common.h
 
+dungeon.o:     common.h newdb.h
+
 newdb.o:       newdb.c newdb.h
        $(CC) $(CCFLAGS) $(DBX) -c newdb.c
 
index 670767ead0b2232703e1a6e91ab69ed3f42fa5aa..6ef74b05e928b7c4604e16d4e5c29c6e5e3af01a 100644 (file)
--- a/common.h
+++ b/common.h
@@ -2,9 +2,6 @@
 #define COMMON_H
 /* maximum size limits shared by dungeon compiler and runtime */
 
-#define LOCSIZ         185
-#define NOBJECTS       100
-
 extern const char advent_to_ascii[128];
 extern const char ascii_to_advent[128];
 
index 19ec17fc66dce9da1f05669087568ae973d46a28..a8b5f16e59af9a099160c63d2d64f2a55ac10095 100644 (file)
--- a/dungeon.c
+++ b/dungeon.c
@@ -17,6 +17,7 @@
 #include <stdlib.h>
 #include <stdbool.h>
 #include <unistd.h>
+#include "newdb.h"
 #include "common.h"
 
 // Global variables for use in functions below that can gradually disappear as code is cleaned up
diff --git a/init.c b/init.c
index c197143eef49085194b3a8f4dd6cacb553bc27fb..b7c0249db649c6da3e40ea6d3618c4d247da4a2c 100644 (file)
--- a/init.c
+++ b/init.c
  *     12600 words of message text (LINES, LINSIZ).
  *     885 travel options (TRAVEL, TRVSIZ).
  *     330 vocabulary words (KTAB, ATAB, TABSIZ).
- *     185 locations (KEY, COND, game.abbrev, game.atloc, LOCSIZ).
- *     100 objects (PLAC, game.place, FIXD, game.fixed, game.link (twice),
- *                   ogame.prop).
  *      35 "action" verbs (ACTSPK, VRBSIZ).
- *      12 different player classifications (CTEXT, CVAL, CLSMAX).
- *      20 hints (game.hintlc, game.hinted, HINTS, HNTSIZ).
- *        5 "# of turns" threshholds (TRNSIZ).
  *  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:
  *     1000 non-synonymous vocabulary words
  *     300 locations
  *     100 objects
- *  Note:
- *   - the object count limit has been abstracted as NOBJECTS
- *   - the random message limit has been abstracted as RTXSIZ
- *   - maximum locations limit has been abstracted as LOCSIZ
  */
 
 /*  Description of the database format
@@ -347,11 +337,10 @@ void initialise(void)
      * 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)
-     * NDEATHS         Number of reincarnation messages available (up to 5)
      * 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)
-     * Logicals were explained earlier */
+     */
     game.turns = 0;
     game.trnluz = 0;
     game.lmwarn = false;
index 7f70741d331f62aebe962f47a8e09434db3dbf6b..36144744dae6ac31b1e6d819e4ecc713cd125d8f 100755 (executable)
@@ -70,6 +70,8 @@ extern obituary_t obituaries[];
 extern hint_t hints[];
 extern long conditions[];
 
+#define LOCSIZ         {}
+#define NOBJECTS       {}
 #define NHINTS         {}
 #define NCLASSES       {}
 #define NDEATHS                {}
@@ -338,6 +340,8 @@ if __name__ == "__main__":
     )
 
     h = h_template.format(
+        len(db["locations"]),
+        len(db["object_descriptions"]),
         len(db["hints"]),
         len(db["classes"]),
         len(db["obituaries"]),