#include "advent.h"
#include "database.h"
-#include "newdb.h"
/*
* Initialisation
* 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, OBJSND, OBJTXT).
* 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:
* apply to players whose scores are higher than the previous N but not
* higher than this N. Note that these scores probably change with every
* modification (and particularly expansion) of the program.
- * SECTION 11: Hints. Each line contains a hint number (add 10 to get cond
+ * Section 11: Hints. Each line contains a hint number (add 10 to get cond
* 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
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;
}
/* 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 < HINT_COUNT; i++) {
game.hinted[i] = false;
game.hintlc[i] = 0;
}
* game.limit Lifetime of lamp (not set here)
* maximum_deaths 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;