Eric S. Raymond
62ee15c892
Pack more globals into the game block structure.
2017-06-07 00:41:51 -04:00
Eric S. Raymond
bb78ca96ce
Capture clock variables into the game-state block.
2017-06-07 00:15:31 -04:00
Eric S. Raymond
ab04fe4d41
More more globals into the game state block.
2017-06-06 21:46:17 -04:00
Eric S. Raymond
07c0020a7a
First step in game state encapsulation: the dwarf & pirate locations.
2017-06-06 21:34:11 -04:00
Eric S. Raymond
e4f8218d9c
Gotoectomy+.
2017-06-06 20:32:00 -04:00
Eric S. Raymond
d8e8bc8e89
Gotoectomy.
2017-06-06 20:01:01 -04:00
Eric S. Raymond
978168523a
Magic-number elimination.
2017-06-06 11:12:00 -04:00
Eric S. Raymond
fd10d380df
Abstract out NOBJECTS (formerly magic number 100).
2017-06-06 10:44:25 -04:00
Eric S. Raymond
4d6078d8a8
Replace homebrew IABS() with C kubrary labs(3).
2017-06-06 09:21:46 -04:00
Eric S. Raymond
d402e09411
Header consolidation - main.h, misc.h, and share.h merge to advent.h.
...
For a project this small size with a small type ontology, it's better
C style to have one header where all the assumptions about types and
structures are immediately visible.
This is a first step towards turning all that global state into a handful
of structures - probably just two, one saveable as a binary game state.
2017-06-02 15:06:33 -04:00
Michael Jarvis
40ccd3d80d
use char, not signed char
2017-06-01 17:45:29 -05:00
Jason S. Ninneman
c9ba5831c9
Remove erroneous comment about PRNG usage.
2017-05-30 17:19:01 -07:00
Eric S. Raymond
6a6670e3ca
Fix things so seed doesn't cost clock time.
2017-05-30 20:08:55 -04:00
Jason S. Ninneman
71fcc814f8
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-05-30 14:58:55 -07:00
Jason S. Ninneman
fda1abed97
Remove an obfuscation scheme for the reservoir magic word.
2017-05-29 13:34:34 -07:00
Jason S. Ninneman
519d8f07e6
Really mean it about strict C99 compliance.
2017-05-29 09:30:37 -07:00
Eric S. Raymond
5ae76995d2
Simplify build: nested makefiles considered harmful.
2017-05-29 01:33:59 -04:00
Jason S. Ninneman
f0528b0ded
Move database compilation out into its own tool (for now).
2017-05-28 21:46:54 -07:00
Jason S. Ninneman
d6b59a1c12
Apply further polish and add in a couple of missing size variables.
2017-05-28 17:21:04 -07:00
Jason S. Ninneman
df46df6979
Factor out handling of variables populated from the database.
...
This reorganization is a first step toward handling database compilation separately.
2017-05-28 15:42:05 -07:00
Jason S. Ninneman
f9eca41f3a
Ensure the ZZZZ magic word is reproducible.
...
This happens by making the SEED command also regenerate the magic word.
2017-05-26 16:34:16 -07:00
Eric S. Raymond
5c4fdc35eb
Flush log on interrupt, just for convenience.
2017-05-26 07:22:24 -04:00
Eric S. Raymond
7763e1aa22
Repeatable seeding is working.
2017-05-25 18:52:39 -04:00
Eric S. Raymond
79ef3e38c2
Implement fallback handler that looks at the raw command buffer.
...
With database cinpilation not broken this time...
2017-05-25 18:21:38 -04:00
Eric S. Raymond
6ba9a7de7f
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-05-24 23:36:25 -04:00
Eric S. Raymond
3a2c0ca199
Reapply "Clean up logic for exiting input loop and scoring."
2017-05-24 22:51:36 -04:00
Jason S. Ninneman
ba1369310d
Remove disused label.
2017-05-24 15:43:34 -07:00
Eric S. Raymond
31837249f8
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-05-24 18:24:09 -04:00
Eric S. Raymond
c703bd78d9
Clean up logic for exiting input loop and scoring.
2017-05-24 11:16:59 -04:00
Eric S. Raymond
cf219e920b
Seed command fully implemented but apparently buggy.
...
Dwarf appearance is not yet reproducible.
2017-05-24 09:06:41 -04:00
Eric S. Raymond
65c081a0ac
Implement stub handler for SEED command. Not hooked up to PRNG yet.
2017-05-24 08:30:06 -04:00
Jason S. Ninneman
8a8770375e
Add seedable PRNG using an adaptation the original LCG algorithm.
2017-05-23 23:37:56 -07:00
Eric S. Raymond
484ca4e9fd
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-05-24 00:17:19 -04:00
Eric S. Raymond
f9eb6383f1
Revert a variable name previously changed to be out of the way.
...
Also, make output from replays easier to interpret by adding prompts.
2017-05-23 22:29:24 -04:00
Eric S. Raymond
f72141fbe3
More structurization.
2017-05-23 20:59:21 -04:00
Eric S. Raymond
f68f3a1205
More globals to the game structure.
2017-05-23 20:34:53 -04:00
Eric S. Raymond
c3add5c206
More global-to-structure moves.
2017-05-23 20:22:35 -04:00
Eric S. Raymond
50ed247042
More comment cleanup.
2017-05-23 19:49:49 -04:00
Eric S. Raymond
bbe68abd30
Fixed case in a comment.
2017-05-23 19:45:18 -04:00
Eric S. Raymond
fa1f859162
Move more globals into the state structure.
2017-05-23 19:40:34 -04:00
Eric S. Raymond
42189d79d7
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-05-23 18:47:04 -04:00
Eric S. Raymond
dc9d9e467b
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-05-23 15:57:38 -04:00
Eric S. Raymond
c6867b374a
Begin factoring out the command interpreter.
2017-05-23 14:48:41 -04:00
Eric S. Raymond
935d8b8e68
Added oldstyle option.
2017-05-23 11:28:56 -04:00
Eric S. Raymond
f89f63c6d1
Fix capitalization glitches.
2017-05-23 09:18:28 -04:00
Eric S. Raymond
943b3a62e6
Add -l option to enable command logging.
2017-05-23 08:57:35 -04:00
Eric S. Raymond
040f19adde
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-05-22 21:26:14 -04:00
Eric S. Raymond
01b2c05cbb
More magic-number elimination.
2017-05-22 20:51:55 -04:00
Eric S. Raymond
18767d52dd
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-05-21 13:12:24 -04:00
Eric S. Raymond
17ad4891ee
More boolification.
...
Constants and formals have been converted, but not globals yet.
2017-05-18 17:28:18 -04:00