#include <stdio.h>
#include <stdbool.h>
#include <getopt.h>
+#include <string.h>
#include "main.h"
#include "misc.h"
PARMS[26], PLACE[101], PTEXT[101], RTEXT[278],
SETUP = 0, TABSIZ = 330;
signed char INLINE[LINESIZE+1], MAP1[129], MAP2[129];
+signed char raw_input[LINESIZE+1];
long ABBNUM, ACTSPK[36], AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BONUS,
BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST, CHLOC, CHLOC2,
int main(int argc, char *argv[]) {
int ch;
+ time_t starttime = time(NULL);
/* Adventure (rev 2: 20 treasures) */
lcgstate.a = 1093;
lcgstate.c = 221587;
lcgstate.m = 1048576;
- set_seed_from_time();
+ set_seed((long)starttime);
/* Read the database if we have not yet done so */
LIMIT=330;
if(NOVICE)LIMIT=1000;
+ if (logfp)
+ fprintf(logfp, "seed %ld\n", starttime);
for (;;) {
do_command(stdin);
}
/* Gee, I don't understand. */
L3000: SETPRM(1,WD1,WD1X);
- RSPEAK(254);
- goto L2600;
+ /* This is a kludge. The command parser we inherited from the base 2.5
+ * barfs on numeric tokens. It will fall through to here when it sees
+ * seed NNNN. Instead of barfing, go straight to the action processor
+ * where it will examine the raw input. This will fo away when we get
+ * rid of the obfuscated FORTRANoid input processing.
+ */
+ if (strncmp(raw_input, "seed", 4) == 0) {
+ I=4090; K=34;
+ goto Laction;
+ } else {
+ RSPEAK(254);
+ goto L2600;
+ }
/* Verb and object analysis moved to separate module. */