X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=init.c;h=c197143eef49085194b3a8f4dd6cacb553bc27fb;hp=0e52a32c5ce3d66b35f0cf3743d0675c07e32d3a;hb=985137d9c7ed18ee0777622874efe944218cae6a;hpb=c84d37091899d4bfcd747dd4afd182d81c3720b3 diff --git a/init.c b/init.c index 0e52a32..c197143 100644 --- a/init.c +++ b/init.c @@ -5,7 +5,6 @@ #include "advent.h" #include "database.h" -#include "newdb.h" /* * Initialisation @@ -15,15 +14,13 @@ * 12600 words of message text (LINES, LINSIZ). * 885 travel options (TRAVEL, TRVSIZ). * 330 vocabulary words (KTAB, ATAB, TABSIZ). - * 185 locations (LTEXT, STEXT, KEY, COND, game.abbrev, game.atloc, - * LOCSND, LOCSIZ). + * 185 locations (KEY, COND, game.abbrev, game.atloc, LOCSIZ). * 100 objects (PLAC, game.place, FIXD, game.fixed, game.link (twice), - * PTEXT, game.prop, OBJSND, OBJTXT). + * ogame.prop). * 35 "action" verbs (ACTSPK, VRBSIZ). - * 277 random messages (RTEXT, RTXSIZ). * 12 different player classifications (CTEXT, CVAL, CLSMAX). * 20 hints (game.hintlc, game.hinted, HINTS, HNTSIZ). - * 5 "# of turns" threshholds (TTEXT, TRNVAL, TRNSIZ). + * 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: @@ -135,8 +132,7 @@ * bit; see section 9), the number of turns he must be at the right loc(s) * before triggering the hint, the points deducted for taking the hint, * the message number (section 6) of the question, and the message number - * of the hint. These values are stashed in the "hints" array. HNTMAX is - * set to the max hint number (<= HNTSIZ). + * of the hint. These values are stashed in the "hints" array. * Section 12: Unused in this version. * Section 13: Sounds and text. Each line contains either 2 or 3 numbers. If * 2 (call them N and S), N is a location and message ABS(S) from section @@ -185,7 +181,8 @@ void initialise(void) game.abbrev[i] = 0; if (!(locations[i].description.big == 0 || KEY[i] == 0)) { int k = KEY[i]; - if (MOD(labs(TRAVEL[k]), 1000) == 1)COND[i] = 2; + if (MOD(labs(TRAVEL[k]), 1000) == 1) + conditions[i] |= (1 << COND_FORCED); } game.atloc[i] = 0; } @@ -226,7 +223,7 @@ void initialise(void) /* Clear the hint stuff. game.hintlc[i] is how long he's been at LOC * with cond bit i. game.hinted[i] is true iff hint i has been * used. */ - for (int i = 1; i <= HNTMAX; i++) { + for (int i = 0; i < NHINTS; i++) { game.hinted[i] = false; game.hintlc[i] = 0; } @@ -350,18 +347,12 @@ 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) - * maximum_deaths Number of reincarnation messages available (up to 5) + * NDEATHS Number of reincarnation messages available (up to 5) * game.numdie Number of times killed so far - * game.thresh Next #turns threshhold (-1 if none) - * game.trndex Index in TRNVAL of next threshold (db section 14) * 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.trndex = 1; - game.thresh = -1; - if (TRNVLS > 0) - game.thresh = MOD(TRNVAL[1], 100000) + 1; game.trnluz = 0; game.lmwarn = false; game.iwest = 0;