Jason S. Ninneman
b15ada0065
Remove erroneous comment about PRNG usage.
2017-06-13 20:43:42 +03:00
Eric S. Raymond
725cb0aee7
Fix things so seed doesn't cost clock time.
2017-06-13 20:43:42 +03:00
Jason S. Ninneman
b77e14a6ae
Launder seed generation through rand() to ensure seed diversity.
...
This doesn't affect reproducibility because a) the seed value written to logs is the output of this process, and b) the argument to the seed command *doesn't* get laundered.
2017-06-13 20:43:42 +03:00
Jason S. Ninneman
0c26368412
Remove an obfuscation scheme for the reservoir magic word.
2017-06-13 20:43:42 +03:00
Jason S. Ninneman
e4d145d727
Really mean it about strict C99 compliance.
2017-06-13 20:43:42 +03:00
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