open-adventure.git
7 years agoHistory clarification.
Eric S. Raymond [Tue, 30 May 2017 00:37:53 +0000 (20:37 -0400)]
History clarification.

7 years agoAdvent doesn't need automake 24/head
David James Sherman [Tue, 30 May 2017 20:11:53 +0000 (20:11 +0000)]
Advent doesn't need automake

7 years agoAdd .gitlab-ci.yml
David James Sherman [Tue, 30 May 2017 16:36:10 +0000 (16:36 +0000)]
Add .gitlab-ci.yml

7 years agoUpdate reservoir test to reflect the magic word fix. 23/head
Jason S. Ninneman [Mon, 29 May 2017 21:41:15 +0000 (14:41 -0700)]
Update reservoir test to reflect the magic word fix.

7 years agoFix a bug in RNDVOC() that prevented the reservoir magic word for working.
Jason S. Ninneman [Mon, 29 May 2017 21:22:52 +0000 (14:22 -0700)]
Fix a bug in RNDVOC() that prevented the reservoir magic word for working.

To do this, I first had to refactor the code into proper C, just so I could understand it. Then I found another layer of encryption around the value itself. Finally, I discovered that the line to actually set the new magic word was placed such that it was using a global index instead of the local one.

7 years agoMake RNDVOC() into better C.
Jason S. Ninneman [Mon, 29 May 2017 20:59:06 +0000 (13:59 -0700)]
Make RNDVOC() into better C.

7 years agoRemove an obfuscation scheme for the reservoir magic word.
Jason S. Ninneman [Mon, 29 May 2017 20:34:34 +0000 (13:34 -0700)]
Remove an obfuscation scheme for the reservoir magic word.

7 years agogitignore the database compilation products. 22/head
Jason S. Ninneman [Mon, 29 May 2017 17:58:17 +0000 (10:58 -0700)]
gitignore the database compilation products.

7 years agoDon't build with two -std options.
Jason S. Ninneman [Mon, 29 May 2017 17:57:47 +0000 (10:57 -0700)]
Don't build with two -std options.

7 years agoReally mean it about strict C99 compliance. 21/head
Jason S. Ninneman [Mon, 29 May 2017 16:30:37 +0000 (09:30 -0700)]
Really mean it about strict C99 compliance.

7 years agoAdd a qualification.
Eric S. Raymond [Mon, 29 May 2017 16:01:28 +0000 (12:01 -0400)]
Add a qualification.

7 years agoThe ADVENTURE variable is no more.
Eric S. Raymond [Mon, 29 May 2017 16:00:44 +0000 (12:00 -0400)]
The ADVENTURE variable is no more.

7 years agoMinor build tweaks.
Eric S. Raymond [Mon, 29 May 2017 15:39:19 +0000 (11:39 -0400)]
Minor build tweaks.

7 years agoMove the if for GCC 4 to an elseif so it does not interfere with MacOS 19/head 20/head
Warren Melnick [Mon, 29 May 2017 14:52:51 +0000 (10:52 -0400)]
Move the if for GCC 4 to an elseif so it does not interfere with MacOS

7 years agoTest for >= gcc 4, and change to g99 -std=gnu99 for the compiler if it is found.
Warren Melnick [Mon, 29 May 2017 14:42:37 +0000 (10:42 -0400)]
Test for >= gcc 4, and  change to g99 -std=gnu99 for the compiler if it is found.

7 years agoTypo fixes.
Eric S. Raymond [Mon, 29 May 2017 13:14:56 +0000 (09:14 -0400)]
Typo fixes.

7 years agoUpdate history.txt.
Eric S. Raymond [Mon, 29 May 2017 13:08:44 +0000 (09:08 -0400)]
Update history.txt.

7 years agoDon't assume gcc.
Eric S. Raymond [Mon, 29 May 2017 13:02:02 +0000 (09:02 -0400)]
Don't assume gcc.

7 years agoMacOS port fix.
Eric S. Raymond [Mon, 29 May 2017 12:50:17 +0000 (08:50 -0400)]
MacOS port fix.

7 years agoRemove 'compile' upon 'make clean'. 17/head
Jason S. Ninneman [Mon, 29 May 2017 05:53:03 +0000 (22:53 -0700)]
Remove 'compile' upon 'make clean'.

Also remove a disused rule.

7 years agoSimplify build: nested makefiles considered harmful.
Eric S. Raymond [Mon, 29 May 2017 05:33:59 +0000 (01:33 -0400)]
Simplify build: nested makefiles considered harmful.

7 years agoBegin "Functional Changes" section.
Eric S. Raymond [Mon, 29 May 2017 05:16:08 +0000 (01:16 -0400)]
Begin "Functional Changes" section.

7 years agoMove database compilation out into its own tool (for now). 15/head
Jason S. Ninneman [Mon, 29 May 2017 04:46:54 +0000 (21:46 -0700)]
Move database compilation out into its own tool (for now).

7 years agoApply further polish and add in a couple of missing size variables.
Jason S. Ninneman [Mon, 29 May 2017 00:21:04 +0000 (17:21 -0700)]
Apply further polish and add in a couple of missing size variables.

7 years agoFactor out handling of variables populated from the database. 14/head
Jason S. Ninneman [Sun, 28 May 2017 22:42:05 +0000 (15:42 -0700)]
Factor out handling of variables populated from the database.

This reorganization is a first step toward handling database compilation separately.

7 years agoRemove debris from the Makefile.
Eric S. Raymond [Sun, 28 May 2017 17:55:41 +0000 (13:55 -0400)]
Remove debris from the Makefile.

7 years agoAdd regression test that gets to reservoir.
Eric S. Raymond [Sun, 28 May 2017 17:53:59 +0000 (13:53 -0400)]
Add regression test that gets to reservoir.

This allows reproduction of the magic-word bug.

7 years agoRestory working seed value for dwarf.log. 13/head
Jason S. Ninneman [Sat, 27 May 2017 16:23:52 +0000 (09:23 -0700)]
Restory working seed value for dwarf.log.

7 years agoRestore regression tests.
Eric S. Raymond [Sat, 27 May 2017 14:51:43 +0000 (10:51 -0400)]
Restore regression tests.

7 years agoMore Makefile simplification.
Eric S. Raymond [Sat, 27 May 2017 14:32:11 +0000 (10:32 -0400)]
More Makefile simplification.

7 years agoSimplify the test makefile.
Eric S. Raymond [Sat, 27 May 2017 14:31:16 +0000 (10:31 -0400)]
Simplify the test makefile.

7 years agoCorrect a dependency.
Eric S. Raymond [Sat, 27 May 2017 14:24:34 +0000 (10:24 -0400)]
Correct a dependency.

7 years agoUpdate the list of changes.
Eric S. Raymond [Sat, 27 May 2017 14:17:18 +0000 (10:17 -0400)]
Update the list of changes.

7 years agoEnsure the ZZZZ magic word is reproducible. 12/head
Jason S. Ninneman [Fri, 26 May 2017 23:34:16 +0000 (16:34 -0700)]
Ensure the ZZZZ magic word is reproducible.

This happens by making the SEED command also regenerate the magic word.

7 years agoUse C99 moode of compiler.
Eric S. Raymond [Fri, 26 May 2017 18:03:17 +0000 (14:03 -0400)]
Use C99 moode of compiler.

7 years agoJust say no to encrypting internal state. 11/head
Jason S. Ninneman [Fri, 26 May 2017 17:21:19 +0000 (10:21 -0700)]
Just say no to encrypting internal state.

7 years agoFlush log on interrupt, just for convenience.
Eric S. Raymond [Fri, 26 May 2017 11:22:24 +0000 (07:22 -0400)]
Flush log on interrupt, just for convenience.

7 years agoCase correction.
Eric S. Raymond [Fri, 26 May 2017 10:33:44 +0000 (06:33 -0400)]
Case correction.

7 years agoDeath by dwarf test.
Eric S. Raymond [Fri, 26 May 2017 10:16:16 +0000 (06:16 -0400)]
Death by dwarf test.

7 years agoFix bug that led to comments bnot being ignored.
Eric S. Raymond [Fri, 26 May 2017 09:14:18 +0000 (05:14 -0400)]
Fix bug that led to comments bnot being ignored.

7 years agoDifferent, correct fix of tests 10/head
NHOrus [Fri, 26 May 2017 06:41:54 +0000 (09:41 +0300)]
Different, correct fix of tests

Now without caching .data and extended cleanup

7 years agoDocument test comment format.
Eric S. Raymond [Fri, 26 May 2017 04:40:35 +0000 (00:40 -0400)]
Document test comment format.

7 years agoRegression-test machinery is now documented.
Eric S. Raymond [Fri, 26 May 2017 04:37:24 +0000 (00:37 -0400)]
Regression-test machinery is now documented.

7 years agoFirst version of regression tests.
Eric S. Raymond [Fri, 26 May 2017 04:22:51 +0000 (00:22 -0400)]
First version of regression tests.

Only one test so far but the framework for more is in place.

7 years agoRepeatable seeding is working.
Eric S. Raymond [Thu, 25 May 2017 22:52:39 +0000 (18:52 -0400)]
Repeatable seeding is working.

7 years agoImplement fallback handler that looks at the raw command buffer.
Eric S. Raymond [Thu, 25 May 2017 22:21:38 +0000 (18:21 -0400)]
Implement fallback handler that looks at the raw command buffer.

With database cinpilation not broken this time...

7 years agoRepair CentOS 6 build (fails due to clock_gettime() being undefined)
Eric S. Raymond [Thu, 25 May 2017 13:09:11 +0000 (09:09 -0400)]
Repair CentOS 6 build (fails due to clock_gettime() being undefined)

GitLab issue #2.

7 years agoStop command-logging from non-stdin sources. 8/head
Jason S. Ninneman [Thu, 25 May 2017 05:31:26 +0000 (22:31 -0700)]
Stop command-logging from non-stdin sources.

7 years agoOnce again, take srand()/random() out of the initialization chain.
Eric S. Raymond [Thu, 25 May 2017 03:36:25 +0000 (23:36 -0400)]
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.

7 years agoRe-enable skipping of #-led comments.
Eric S. Raymond [Thu, 25 May 2017 03:05:19 +0000 (23:05 -0400)]
Re-enable skipping of #-led comments.

7 years agoReapply "Clean up logic for exiting input loop and scoring."
Eric S. Raymond [Thu, 25 May 2017 02:51:36 +0000 (22:51 -0400)]
Reapply "Clean up logic for exiting input loop and scoring."

7 years agoRemove disused label. 7/head
Jason S. Ninneman [Wed, 24 May 2017 22:43:34 +0000 (15:43 -0700)]
Remove disused label.

7 years agoRemove cached data on clean.
Eric S. Raymond [Wed, 24 May 2017 22:29:26 +0000 (18:29 -0400)]
Remove cached data on clean.

We've had two instances now of database compilation getting silently
broken and that not noticed because of the caching. Attempt to
forestall this.

7 years agoRevert SEED handling and comment orocessing. It broke database compilation.
Eric S. Raymond [Wed, 24 May 2017 22:24:09 +0000 (18:24 -0400)]
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.

7 years agoTake srand()/rand() out of the initialization chain...
Eric S. Raymond [Wed, 24 May 2017 15:57:53 +0000 (11:57 -0400)]
Take srand()/rand() out of the initialization chain...

...they're not guatanteed to produce consistent across platforms or
libc versions.

7 years agoClean up logic for exiting input loop and scoring.
Eric S. Raymond [Wed, 24 May 2017 15:16:59 +0000 (11:16 -0400)]
Clean up logic for exiting input loop and scoring.

7 years agoAllow comments in logfiles.
Eric S. Raymond [Wed, 24 May 2017 14:07:05 +0000 (10:07 -0400)]
Allow comments in logfiles.

7 years agoSeed command fully implemented but apparently buggy.
Eric S. Raymond [Wed, 24 May 2017 13:06:41 +0000 (09:06 -0400)]
Seed command fully implemented but apparently buggy.

Dwarf appearance is not yet reproducible.

7 years agoImplement stub handler for SEED command. Not hooked up to PRNG yet.
Eric S. Raymond [Wed, 24 May 2017 12:30:06 +0000 (08:30 -0400)]
Implement stub handler for SEED command. Not hooked up to PRNG yet.

7 years agoRemove a bad use of tv_nsec. 6/head
Jason S. Ninneman [Wed, 24 May 2017 06:46:20 +0000 (23:46 -0700)]
Remove a bad use of tv_nsec.

7 years agoMove a line that got out of place.
Jason S. Ninneman [Wed, 24 May 2017 06:42:54 +0000 (23:42 -0700)]
Move a line that got out of place.

7 years agoAdd seedable PRNG using an adaptation the original LCG algorithm.
Jason S. Ninneman [Wed, 24 May 2017 06:37:56 +0000 (23:37 -0700)]
Add seedable PRNG using an adaptation the original LCG algorithm.

7 years agoFix the slightly broken prompt test.
Eric S. Raymond [Wed, 24 May 2017 04:28:38 +0000 (00:28 -0400)]
Fix the slightly broken prompt test.

7 years agoRevert structurization changes, they broke database compilation...
Eric S. Raymond [Wed, 24 May 2017 04:17:19 +0000 (00:17 -0400)]
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.

7 years agoMore switch reformatting.
Eric S. Raymond [Wed, 24 May 2017 03:17:57 +0000 (23:17 -0400)]
More switch reformatting.

7 years agoReformat a switch statement for readability. No logic changes.
Eric S. Raymond [Wed, 24 May 2017 03:01:34 +0000 (23:01 -0400)]
Reformat a switch statement for readability. No logic changes.

7 years agoRevert a variable name previously changed to be out of the way.
Eric S. Raymond [Wed, 24 May 2017 02:29:24 +0000 (22:29 -0400)]
Revert a variable name previously changed to be out of the way.

Also, make output from replays easier to interpret by adding prompts.

7 years agoMore structurization.
Eric S. Raymond [Wed, 24 May 2017 00:59:21 +0000 (20:59 -0400)]
More structurization.

7 years agoEcho commands to stdout when replaying...
Eric S. Raymond [Wed, 24 May 2017 00:38:46 +0000 (20:38 -0400)]
Echo commands to stdout when replaying...

...makes check loads full transcripts abd more readable.

7 years agoMore globals to the game structure.
Eric S. Raymond [Wed, 24 May 2017 00:34:53 +0000 (20:34 -0400)]
More globals to the game structure.

7 years agoMore global-to-structure moves.
Eric S. Raymond [Wed, 24 May 2017 00:22:35 +0000 (20:22 -0400)]
More global-to-structure moves.

7 years agoMore comment cleanup.
Eric S. Raymond [Tue, 23 May 2017 23:49:49 +0000 (19:49 -0400)]
More comment cleanup.

7 years agoFixed case in a comment.
Eric S. Raymond [Tue, 23 May 2017 23:45:18 +0000 (19:45 -0400)]
Fixed case in a comment.

7 years agoMove more globals into the state structure.
Eric S. Raymond [Tue, 23 May 2017 23:40:34 +0000 (19:40 -0400)]
Move more globals into the state structure.

7 years agoBegin gathering saveable game state into a structure. Not yet complete.
Eric S. Raymond [Tue, 23 May 2017 22:47:04 +0000 (18:47 -0400)]
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.

7 years agoInput source is parametrized all the way down.
Eric S. Raymond [Tue, 23 May 2017 19:57:38 +0000 (15:57 -0400)]
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.

7 years agoBegin factoring out the command interpreter.
Eric S. Raymond [Tue, 23 May 2017 18:48:41 +0000 (14:48 -0400)]
Begin factoring out the command interpreter.

7 years agoDocumentation polishing.
Eric S. Raymond [Tue, 23 May 2017 18:04:42 +0000 (14:04 -0400)]
Documentation polishing.

7 years agoUpdate for TODO items accomplished.
Eric S. Raymond [Tue, 23 May 2017 17:22:18 +0000 (13:22 -0400)]
Update for TODO items accomplished.

7 years agoFix command synopsis on the manual page.
Eric S. Raymond [Tue, 23 May 2017 15:31:10 +0000 (11:31 -0400)]
Fix command synopsis on the manual page.

7 years agoAdded oldstyle option.
Eric S. Raymond [Tue, 23 May 2017 15:28:56 +0000 (11:28 -0400)]
Added oldstyle option.

7 years agoFix capitalization glitches.
Eric S. Raymond [Tue, 23 May 2017 13:18:28 +0000 (09:18 -0400)]
Fix capitalization glitches.

7 years agoAdd -l option to enable command logging.
Eric S. Raymond [Tue, 23 May 2017 12:57:35 +0000 (08:57 -0400)]
Add -l option to enable command logging.

7 years agoFix typos in the history.
Jason S. Ninneman [Tue, 23 May 2017 06:13:28 +0000 (23:13 -0700)]
Fix typos in the history.

7 years agoFix a couple typos. 4/head
Jason S. Ninneman [Tue, 23 May 2017 04:13:15 +0000 (21:13 -0700)]
Fix a couple typos.

7 years agoFix strange inside-out organization of the input routines.
Eric S. Raymond [Tue, 23 May 2017 01:26:14 +0000 (21:26 -0400)]
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.

7 years agoRemove unused labels.
Eric S. Raymond [Tue, 23 May 2017 00:55:21 +0000 (20:55 -0400)]
Remove unused labels.

7 years agoMore magic-number elimination.
Eric S. Raymond [Tue, 23 May 2017 00:51:55 +0000 (20:51 -0400)]
More magic-number elimination.

7 years agoDon't use a magic number when we can use sizeof().
Eric S. Raymond [Tue, 23 May 2017 00:33:23 +0000 (20:33 -0400)]
Don't use a magic number when we can use sizeof().

7 years agoPrototypization.
Eric S. Raymond [Mon, 22 May 2017 22:47:39 +0000 (18:47 -0400)]
Prototypization.

7 years agoCorrect long-size bug that resulted in checksum error.
Eric S. Raymond [Mon, 22 May 2017 13:30:51 +0000 (09:30 -0400)]
Correct long-size bug that resulted in checksum error.

Idea thanks tp Max Ninneman.

7 years agoCorrect history based on code comments.
Eric S. Raymond [Mon, 22 May 2017 13:11:12 +0000 (09:11 -0400)]
Correct history based on code comments.

7 years agoFix up case on all comments to make them more readable. No code changes.
Eric S. Raymond [Sun, 21 May 2017 17:12:24 +0000 (13:12 -0400)]
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.

7 years agoAdd TODO items.
Eric S. Raymond [Fri, 19 May 2017 19:16:39 +0000 (15:16 -0400)]
Add TODO items.

7 years agoDocumentation polishing. Add TODO.
Eric S. Raymond [Fri, 19 May 2017 17:30:12 +0000 (13:30 -0400)]
Documentation polishing. Add TODO.

7 years agoPrepare to initialize public repository.
Eric S. Raymond [Fri, 19 May 2017 17:22:09 +0000 (13:22 -0400)]
Prepare to initialize public repository.

7 years agoMore ANSI prototype conversions.
Eric S. Raymond [Fri, 19 May 2017 05:28:38 +0000 (01:28 -0400)]
More ANSI prototype conversions.

7 years agoDocument ADVENTURE environment variable.
Eric S. Raymond [Fri, 19 May 2017 04:49:23 +0000 (00:49 -0400)]
Document ADVENTURE environment variable.

7 years agoMore boolification.
Eric S. Raymond [Thu, 18 May 2017 21:28:18 +0000 (17:28 -0400)]
More boolification.

Constants and formals have been converted, but not globals yet.

7 years agoReplace fDATIME with ANSI/POSIX clock_gettime(). Rip out DOS/AMIGA shims.
Eric S. Raymond [Thu, 18 May 2017 21:18:16 +0000 (17:18 -0400)]
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.