Commit graph

40 commits

Author SHA1 Message Date
Eric S. Raymond
7bf56ac60e Simplify build: nested makefiles considered harmful. 2017-06-13 20:43:42 +03:00
Jason S. Ninneman
0b02f361de Move database compilation out into its own tool (for now). 2017-06-13 20:43:42 +03:00
Jason S. Ninneman
372fc1fbef Apply further polish and add in a couple of missing size variables. 2017-06-13 20:43:41 +03:00
Jason S. Ninneman
e281f895d4 Factor out handling of variables populated from the database.
This reorganization is a first step toward handling database compilation separately.
2017-06-13 20:43:41 +03:00
Jason S. Ninneman
6fb8265577 Ensure the ZZZZ magic word is reproducible.
This happens by making the SEED command also regenerate the magic word.
2017-06-13 20:43:41 +03:00
Eric S. Raymond
c88f981387 Flush log on interrupt, just for convenience. 2017-06-13 20:43:41 +03:00
Eric S. Raymond
d9d2629854 Repeatable seeding is working. 2017-06-13 20:43:41 +03:00
Eric S. Raymond
ff467f276b Implement fallback handler that looks at the raw command buffer.
With database cinpilation not broken this time...
2017-06-13 20:43:41 +03:00
Eric S. Raymond
341bf61139 Once again, take srand()/random() out of the initialization chain.
They have exactly the wrong kind of randomness for this job - not
returning consistent sequences across different platforms or C library
versions, and because pseodorandom not really better than sampling
the clock.
2017-06-13 20:43:41 +03:00
Eric S. Raymond
eb91f49dd5 Reapply "Clean up logic for exiting input loop and scoring." 2017-06-13 20:43:41 +03:00
Jason S. Ninneman
cd0e90bdb4 Remove disused label. 2017-06-13 20:43:41 +03:00
Eric S. Raymond
06795f691f Revert SEED handling and comment orocessing. It broke database compilation.
This code is remarkably like the game it implements - a maze of twisty
little FORTRANisms, all alike.  Very easy to get lost.
2017-06-13 20:43:41 +03:00
Eric S. Raymond
9ef91255bc Clean up logic for exiting input loop and scoring. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
016bcf2ff2 Seed command fully implemented but apparently buggy.
Dwarf appearance is not yet reproducible.
2017-06-13 20:43:40 +03:00
Eric S. Raymond
1c4150055a Implement stub handler for SEED command. Not hooked up to PRNG yet. 2017-06-13 20:43:40 +03:00
Jason S. Ninneman
24f327cc09 Add seedable PRNG using an adaptation the original LCG algorithm. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
aa7e291bc6 Revert structurization changes, they broke database compilation...
...bug showing only if adventure.data was absent.  We'll need to sneak up
on this more carefully.
2017-06-13 20:43:40 +03:00
Eric S. Raymond
3f57114791 Revert a variable name previously changed to be out of the way.
Also, make output from replays easier to interpret by adding prompts.
2017-06-13 20:43:40 +03:00
Eric S. Raymond
ba7561a27a More structurization. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
bef99090db More globals to the game structure. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
4f0e04404e More global-to-structure moves. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
485ca59432 More comment cleanup. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
f8dc7dbdf1 Fixed case in a comment. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
cb477da7ec Move more globals into the state structure. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
91bfd55c1c Begin gathering saveable game state into a structure. Not yet complete.
No logic changes.  A bunch of globals turn into fields (with the same names
except for lowercasing) in struct game_t.

Eventually this will allow drastic simplification of the save/load logic.
2017-06-13 20:43:40 +03:00
Eric S. Raymond
ec4c0c8cd0 Input source is parametrized all the way down.
This means that, potentially, do_command() could be called on any text file
pointer and the right thing would happen.
2017-06-13 20:43:40 +03:00
Eric S. Raymond
00321f3388 Begin factoring out the command interpreter. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
0ad8d13f27 Added oldstyle option. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
c16e4cb078 Fix capitalization glitches. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
0eda56fae9 Add -l option to enable command logging. 2017-06-13 20:43:40 +03:00
Eric S. Raymond
42e6e7cdb7 Fix strange inside-out organization of the input routines.
Seems to have nbben a result of FORTRAN not having anything like a
stream object that can be passed around.

A step towards logging and log replay.
2017-06-13 20:43:39 +03:00
Eric S. Raymond
7f91b85809 More magic-number elimination. 2017-06-13 20:43:39 +03:00
Eric S. Raymond
301f38586b Fix up case on all comments to make them more readable. No code changes.
The all-capsing was a FORTRAN remnant.Also, we change a few FORTRANisms
so they are less confusing in this C context; ".TRUE." and ".FALSE." become
"true" and "false", "MOD" is mapped to % in places tha t are like C expressions
and (usually) "modulo" in places that aren't.
2017-06-13 20:43:39 +03:00
Eric S. Raymond
936a4a27b5 More boolification.
Constants and formals have been converted, but not globals yet.
2017-06-13 20:43:39 +03:00
Eric S. Raymond
6ef3e68c0c Replace fDATIME with ANSI/POSIX clock_gettime(). Rip out DOS/AMIGA shims.
The thinking here is that we simplify life by going pure ANSI/POSIX.
This is a text game.  If it ever runs on anything but Unix again it's
almost certain to be on something like WSL that supplies a
POSIX-conformant text console.
2017-06-13 20:43:39 +03:00
Eric S. Raymond
333dc72920 Remove a remnant of the old non-licensing. 2017-06-13 20:43:39 +03:00
Eric S. Raymond
51f7b01c15 Use prototypes and bools. 2017-06-13 20:43:39 +03:00
Eric S. Raymond
afddd9b263 Partially ANSIfy C, fix compiler warnings. 2017-06-13 20:43:39 +03:00
Eric S. Raymond
3a9c44f910 Minimal forward-port to modern C - just enough to get it to compile. 2017-06-13 20:43:39 +03:00
Eric S. Raymond
f16343f8dc Don Wood's 430-point Adventure 2.5 from 1995, from rec.games.int-fiction. 2017-06-13 20:43:39 +03:00