X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=077e3a996d200dde709fda3215035b194f5c9c99;hp=39050542c091a62927399a0d2a166a08bce353f8;hb=065caace647f86770df0d7bb9f1a3a1ffdd0f188;hpb=7f2c118e56a761debfb0559462a8914f582fcb82 diff --git a/main.c b/main.c index 3905054..077e3a9 100644 --- a/main.c +++ b/main.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include "advent.h" #include "linenoise/linenoise.h" @@ -28,18 +27,23 @@ #define DIM(a) (sizeof(a)/sizeof(a[0])) struct game_t game = { - .chloc = LOC_DEADEND12, - .chloc2 = LOC_DEADEND13, .dloc[1] = LOC_KINGHALL, .dloc[2] = LOC_WESTBANK, .dloc[3] = LOC_Y2, .dloc[4] = LOC_ALIKE3, .dloc[5] = LOC_COMPLEX, + + /* Sixth dwarf is special (the pirate). He always starts at his + * chest's eventual location inside the maze. This loc is saved + * in chloc for ref. The dead end in the other maze has its + * loc stored in chloc2. */ .dloc[6] = LOC_DEADEND12, - .abbnum = 5, - .clock1 = WARNTIME, - .clock2 = FLASHTIME, - .blklin = true + .chloc = LOC_DEADEND12, + .chloc2 = LOC_DEADEND13, + .abbnum = 5, + .clock1 = WARNTIME, + .clock2 = FLASHTIME, + .blklin = true }; FILE *logfp = NULL, *rfp = NULL; @@ -133,17 +137,8 @@ int main(int argc, char *argv[]) linenoiseHistorySetMaxLen(350); - /* Initialize our LCG PRNG with parameters tested against - * Knuth vol. 2. by the original authors */ - game.lcg_a = 1093; - game.lcg_c = 221587; - game.lcg_m = 1048576; - srand(time(NULL)); - long seedval = (long)rand(); - set_seed(seedval); - /* Initialize game variables */ - initialise(); + long seedval = initialise(); /* Start-up, dwarf stuff */ make_zzword(game.zzword); @@ -384,9 +379,12 @@ static bool dwarfmove(void) if (PCT(50)) game.dloc[j] = 0; } + + /* Alternate initial loc for dwarf, in case one of them + * starts out on top of the adventurer. */ for (int i = 1; i <= NDWARVES - 1; i++) { if (game.dloc[i] == game.loc) - game.dloc[i] = DALTLC; + game.dloc[i] = DALTLC; // game.odloc[i] = game.dloc[i]; } rspeak(DWARF_RAN); @@ -1143,7 +1141,7 @@ Lookup: rspeak(DONT_KNOW, command.wd1, command.wd1x); goto L2600; } - /* FIXME: magic numbers related to vocabulary */ + /* FIXME: magic numbers related to vocabulary */ kmod = MOD(defn, 1000); switch (defn / 1000) { case 0: