open-adventure.git
6 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

6 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.

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

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

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

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

6 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.

6 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.

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

6 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).

6 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.

6 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.

6 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.

6 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.

6 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.

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

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

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

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

6 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.

6 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.

6 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.

6 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.

6 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.

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

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

6 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.

6 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

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

6 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.

6 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.

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

6 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...

6 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.

6 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.

6 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.

6 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.

6 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."

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

6 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.

6 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.

6 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.

6 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.

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

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

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

6 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.

6 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.

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

6 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.

6 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.

6 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.

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

6 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.

6 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.

6 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.

6 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.

6 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.

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

6 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.

6 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.

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

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

6 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.

6 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.

6 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.

6 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.

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

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

6 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().

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

6 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.

6 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.

6 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.

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

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

6 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.

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

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

6 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.

6 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.

6 years agoRemove a remnant of the old non-licensing.
Eric S. Raymond [Thu, 18 May 2017 20:54:06 +0000 (16:54 -0400)]
Remove a remnant of the old non-licensing.

6 years agoUse prototypes and bools.
Eric S. Raymond [Thu, 18 May 2017 13:06:32 +0000 (09:06 -0400)]
Use prototypes and bools.

6 years agoPartially ANSIfy C, fix compiler warnings.
Eric S. Raymond [Thu, 18 May 2017 12:55:38 +0000 (08:55 -0400)]
Partially ANSIfy C, fix compiler warnings.

6 years agoTypo fix.
Eric S. Raymond [Thu, 18 May 2017 11:31:10 +0000 (07:31 -0400)]
Typo fix.

6 years agoAdd control file for shipper.
Eric S. Raymond [Thu, 18 May 2017 11:30:04 +0000 (07:30 -0400)]
Add control file for shipper.

6 years agoConsistent use of 'advent' to avoid collision with BSD Games.
Eric S. Raymond [Thu, 18 May 2017 11:18:53 +0000 (07:18 -0400)]
Consistent use of 'advent' to avoid collision with BSD Games.

Manual page added.

6 years agoAdd README. More history.
Eric S. Raymond [Mon, 15 May 2017 08:00:49 +0000 (04:00 -0400)]
Add README.  More history.

6 years agoRelicense to 2-clause BSD. Befin the history document.
Eric S. Raymond [Mon, 15 May 2017 05:57:17 +0000 (01:57 -0400)]
Relicense to 2-clause BSD.  Befin the history document.

7 years agoMinimal forward-port to modern C - just enough to get it to compile.
Eric S. Raymond [Thu, 16 Feb 2017 18:14:57 +0000 (13:14 -0500)]
Minimal forward-port to modern C - just enough to get it to compile.

7 years agoDon Wood's 430-point Adventure 2.5 from 1995, from rec.games.int-fiction.
Eric S. Raymond [Thu, 16 Feb 2017 16:59:50 +0000 (11:59 -0500)]
Don Wood's 430-point Adventure 2.5 from 1995, from rec.games.int-fiction.