long HNTMAX;
long PTEXT[NOBJECTS + 1];
long RTEXT[RTXSIZ + 1];
-long CTEXT[CLSMAX + 1];
long OBJSND[NOBJECTS + 1];
long OBJTXT[NOBJECTS + 1];
long STEXT[LOCSIZ + 1];
long PLAC[NOBJECTS + 1];
long FIXD[NOBJECTS + 1];
long ACTSPK[VRBSIZ + 1];
-long HINTS[HNTSIZ + 1][HINTLEN];
-
static bool is_set(long var, long position)
{
if (loc == OLDLOC) continue;
OLDLOC = loc;
LINES[LINUSE] = -KK;
- if (sect == 14) {
- TRNVLS = TRNVLS + 1;
- if (TRNVLS > TRNSIZ)
- BUG(TOO_MANY_CLASS_OR_TURN_MESSAGES);
- TTEXT[TRNVLS] = LINUSE;
- TRNVAL[TRNVLS] = loc;
- continue;
- }
- if (sect == 10) {
+ if (sect == 10 || sect == 14) {
/* now parsed from YAML */
continue;
}
if (K <= 0 || K > HNTSIZ)
BUG(TOO_MANY_HINTS);
for (int I = 1; I <= 4; I++) {
- HINTS[K][I] = GETNUM(NULL);
+ /* consume - actual arrqy-building now done in YAML. */
+ GETNUM(NULL);
} /* end loop */
HNTMAX = (HNTMAX > K ? HNTMAX : K);
}
static int read_database(FILE* database)
{
-
- /* Clear out the various text-pointer arrays. All text is stored in array
- * lines; each line is preceded by a word pointing to the next pointer (i.e.
- * the word following the end of the line). The pointer is negative if this is
- * first line of a message. The text-pointer arrays contain indices of
- * pointer-words in lines. STEXT(N) is short description of location N.
- * LTEXT(N) is long description. PTEXT(N) points to message for game.prop(N)=0.
- * Successive prop messages are found by chasing pointers. RTEXT contains
- * section 6's stuff. CTEXT(N) points to a player-class message. TTEXT is for
- * section 14. We also clear COND (see description of section 9 for details). */
-
+ /* Clear out the various text-pointer arrays. All text is stored
+ * in array lines; each line is preceded by a word pointing to
+ * the next pointer (i.e. the word following the end of the
+ * line). The pointer is negative if this is first line of a
+ * message. The text-pointer arrays contain indices of
+ * pointer-words in lines. STEXT(N) is short description of
+ * location N. LTEXT(N) is long description. PTEXT(N) points to
+ * message for game.prop(N)=0. Successive prop messages are
+ * found by chasing pointers. RTEXT contains section 6's stuff.
+ * TTEXT is for section 14. We also clear COND (see description
+ * of section 9 for details). */
for (int I = 1; I <= NOBJECTS; I++) {
PTEXT[I] = 0;
OBJSND[I] = 0;
for (int I = 1; I <= RTXSIZ; I++) {
RTEXT[I] = 0;
}
- for (int I = 1; I <= CLSMAX; I++) {
- CTEXT[I] = 0;
- }
for (int I = 1; I <= LOCSIZ; I++) {
STEXT[I] = 0;
LTEXT[I] = 0;
fprintf(header_file, "\n});\n");
}
-static void write_hints(FILE* header_file, long matrix[][HINTLEN], long dim1, long dim2, const char* varname)
-{
- fprintf(header_file, "LOCATION long %s[][%ld] INITIALIZE(= {\n", varname, dim2);
- for (int i = 0; i < dim1; ++i) {
- fprintf(header_file, " {");
- for (int j = 0; j < dim2; ++j) {
- fprintf(header_file, "%ld, ", matrix[i][j]);
- }
- fprintf(header_file, "},\n");
- }
- fprintf(header_file, "});\n");
-}
-
static void write_file(FILE* header_file)
{
fprintf(header_file, "#ifndef DATABASE_H\n");
write_1d(header_file, PLAC, NOBJECTS + 1, "PLAC");
write_1d(header_file, FIXD, NOBJECTS + 1, "FIXD");
write_1d(header_file, ACTSPK, VRBSIZ + 1, "ACTSPK");
- write_hints(header_file, HINTS, HNTSIZ + 1, 5, "HINTS");
fprintf(header_file, "#undef LOCATION\n");
fprintf(header_file, "#undef INITIALIZE\n");